UNPKG

@array.inc/sdk

Version:

đź›  An SDK for building applications on top of Array.

1 lines • 109 kB
"use strict";function f(f){return f&&"object"==typeof f&&"default"in f?f.default:f}Object.defineProperty(exports,"__esModule",{value:!0});var e,t,n,r,i,a,o,s,u,c,d,p,h,l,b,y,m,T=f(require("jsbi")),v=require("@ethersproject/bignumber"),A=f(require("tiny-invariant")),E=require("@ethersproject/address"),I=(f(require("tiny-warning")),f(require("big.js"))),x=f(require("decimal.js-light")),C=f(require("toformat")),g=require("@ethersproject/solidity"),O=require("@ethersproject/abi"),N=require("@ethersproject/signing-key"),k=require("eip-712"),_=require("@ethersproject/bytes"),w=require("@ethersproject/contracts"),S=f(require("isomorphic-unfetch"));(e=exports.ChainId||(exports.ChainId={}))[e.MAINNET=1]="MAINNET",e[e.ROPSTEN=3]="ROPSTEN",e[e.RINKEBY=4]="RINKEBY",e[e["GĂ–RLI"]=5]="GĂ–RLI",e[e.KOVAN=42]="KOVAN",e[e.MATIC=137]="MATIC",e[e.MATIC_TESTNET=80001]="MATIC_TESTNET",e[e.FANTOM=250]="FANTOM",e[e.FANTOM_TESTNET=4002]="FANTOM_TESTNET",e[e.XDAI=100]="XDAI",e[e.BSC=56]="BSC",e[e.BSC_TESTNET=97]="BSC_TESTNET",e[e.ARBITRUM=42161]="ARBITRUM",e[e.ARBITRUM_TESTNET=79377087078960]="ARBITRUM_TESTNET",e[e.MOONBEAM_TESTNET=1287]="MOONBEAM_TESTNET",e[e.MOONBEAM=1284]="MOONBEAM",e[e.AVALANCHE=43114]="AVALANCHE",e[e.AVALANCHE_TESTNET=43113]="AVALANCHE_TESTNET",e[e.HECO=128]="HECO",e[e.HECO_TESTNET=256]="HECO_TESTNET",e[e.HARMONY=16666e5]="HARMONY",e[e.HARMONY_TESTNET=16667e5]="HARMONY_TESTNET",e[e.OKEX=66]="OKEX",e[e.OKEX_TESTNET=65]="OKEX_TESTNET",e[e.CELO=42220]="CELO",e[e.PALM=11297108109]="PALM",e[e.PALM_TESTNET=11297108099]="PALM_TESTNET",e[e.MOONRIVER=1285]="MOONRIVER",e[e.FUSE=122]="FUSE",e[e.SHIDEN=336]="SHIDEN",e[e.PLASM_TESTNET=80]="PLASM_TESTNET",(t=exports.Rounding||(exports.Rounding={}))[t.ROUND_DOWN=0]="ROUND_DOWN",t[t.ROUND_HALF_UP=1]="ROUND_HALF_UP",t[t.ROUND_UP=2]="ROUND_UP",(n=exports.TradeType||(exports.TradeType={}))[n.EXACT_INPUT=0]="EXACT_INPUT",n[n.EXACT_OUTPUT=1]="EXACT_OUTPUT",(r=exports.KashiAction||(exports.KashiAction={}))[r.ADD_ASSET=1]="ADD_ASSET",r[r.REPAY=2]="REPAY",r[r.REMOVE_ASSET=3]="REMOVE_ASSET",r[r.REMOVE_COLLATERAL=4]="REMOVE_COLLATERAL",r[r.BORROW=5]="BORROW",r[r.GET_REPAY_SHARE=6]="GET_REPAY_SHARE",r[r.GET_REPAY_PART=7]="GET_REPAY_PART",r[r.ACCRUE=8]="ACCRUE",r[r.ADD_COLLATERAL=10]="ADD_COLLATERAL",r[r.UPDATE_EXCHANGE_RATE=11]="UPDATE_EXCHANGE_RATE",r[r.BENTO_DEPOSIT=20]="BENTO_DEPOSIT",r[r.BENTO_WITHDRAW=21]="BENTO_WITHDRAW",r[r.BENTO_TRANSFER=22]="BENTO_TRANSFER",r[r.BENTO_TRANSFER_MULTIPLE=23]="BENTO_TRANSFER_MULTIPLE",r[r.BENTO_SETAPPROVAL=24]="BENTO_SETAPPROVAL",r[r.CALL=30]="CALL",(i=exports.Fee||(exports.Fee={}))[i.DEFAULT=30]="DEFAULT",(a=exports.OrderStatus||(exports.OrderStatus={})).FILLED="FILLED",a.CANCELLED="CANCELLED",a.EXPIRED="EXPIRED",a.PENDING="PENDING";var R=((o={})[exports.ChainId.AVALANCHE]="0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",o[exports.ChainId.AVALANCHE_TESTNET]="0x5425890298aed601595a70AB815c96711a31Bc65",o),q=((s={})[exports.ChainId.AVALANCHE_TESTNET]="0x6f6C1C188631D1951DcE7A9B83c65747244bF43A",s[exports.ChainId.AVALANCHE]="0x32B304298d5fA82407AA552b864e9a62e3D19528",s),L=((u={})[exports.ChainId.AVALANCHE_TESTNET]="0xEdB76bF8bdBd864ff31c66803712286dc3f0b4F7",u[exports.ChainId.AVALANCHE]="0x7ddf3eCcd19f3a6A1F4e8634BfE0a32978CF038A",u),P=((c={})[exports.ChainId.AVALANCHE]="0xEAf1A8F1BB3929a6f7365E5c38418b9032d7b2B1",c),B=((d={})[exports.ChainId.AVALANCHE]="0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",d[exports.ChainId.AVALANCHE_TESTNET]="0xd00ae08403B9bbb9124bB305C09058E32C39A48c",d),D=((p={})[exports.ChainId.AVALANCHE]=B[exports.ChainId.AVALANCHE],p[exports.ChainId.AVALANCHE_TESTNET]=B[exports.ChainId.AVALANCHE_TESTNET],p),M=((h={})[exports.ChainId.AVALANCHE_TESTNET]="0xd11e75079Ef9AE80D4C18739cF7070ED9678507d",h[exports.ChainId.AVALANCHE]="0xEC8413897e056a7ee79Ab5bDacc116c27b8fF4ec",h),F=((l={})[exports.ChainId.ROPSTEN]="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",l),H=((b={})[exports.ChainId.AVALANCHE]="0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3",b[exports.ChainId.AVALANCHE_TESTNET]="0xA6577666FE76BA7561d2B5edd72152125d8C2891",b),U=((y={})[exports.ChainId.KOVAN]="0xce9365dB1C99897f04B3923C03ba9a5f80E8DB87",y[exports.ChainId.MATIC]="0x1aDb3Bd86bb01797667eC382a0BC6A9854b4005f",y),V=((m={})[exports.ChainId.MAINNET]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.ROPSTEN]="0x6BdD85290001C8Aef74f35A7606065FA15aD5ACF",m[exports.ChainId.RINKEBY]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.GĂ–RLI]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.KOVAN]="0x9A0D9920D92c178a58D99B455898Df2df22A2eE4",m[exports.ChainId.FANTOM]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.MATIC]="0x0319000133d3AdA02600f0875d2cf03D442C3367",m[exports.ChainId.MATIC_TESTNET]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.XDAI]="0xE2d7F5dd869Fc7c126D21b13a9080e75a4bDb324",m[exports.ChainId.BSC]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.BSC_TESTNET]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m[exports.ChainId.ARBITRUM]="0x74c764D41B77DBbb4fe771daB1939B00b146894A",m[exports.ChainId.AVALANCHE]="0x0711B6026068f736bae6B213031fCE978D48E026",m[exports.ChainId.HECO]="0xF5BCE5077908a1b7370B9ae04AdC565EBd643966",m),X=v.BigNumber.from("700000000000000000"),j=v.BigNumber.from("800000000000000000"),W=v.BigNumber.from("1000000000000000000"),G=v.BigNumber.from("1000000000000000000"),Y=G.sub(j),K=v.BigNumber.from(317097920).mul(v.BigNumber.from(60)).mul(v.BigNumber.from(60)).mul(v.BigNumber.from(24)).mul(v.BigNumber.from(365)),Z=v.BigNumber.from(79274480).mul(v.BigNumber.from(60)).mul(v.BigNumber.from(60)).mul(v.BigNumber.from(24)).mul(v.BigNumber.from(365)),z=v.BigNumber.from(31709792e4).mul(v.BigNumber.from(60)).mul(v.BigNumber.from(60)).mul(v.BigNumber.from(24)).mul(v.BigNumber.from(365)),J=v.BigNumber.from("28800000000000000000000000000000000000000"),Q=v.BigNumber.from("1000000000000000000"),$=v.BigNumber.from("10000"),ff=v.BigNumber.from("100000");function ef(f,e,t,n,r,i,a){try{var o=f[i](a),s=o.value}catch(f){return void t(f)}o.done?e(s):Promise.resolve(s).then(n,r)}function tf(f){return function(){var e=this,t=arguments;return new Promise((function(n,r){var i=f.apply(e,t);function a(f){ef(i,n,r,a,o,"next",f)}function o(f){ef(i,n,r,a,o,"throw",f)}a(void 0)}))}}function nf(f,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(f,n.key,n)}}function rf(f,e,t){return e&&nf(f.prototype,e),t&&nf(f,t),f}function af(){return(af=Object.assign||function(f){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(f[n]=t[n])}return f}).apply(this,arguments)}function of(f,e){f.prototype=Object.create(e.prototype),f.prototype.constructor=f,uf(f,e)}function sf(f){return(sf=Object.setPrototypeOf?Object.getPrototypeOf:function(f){return f.__proto__||Object.getPrototypeOf(f)})(f)}function uf(f,e){return(uf=Object.setPrototypeOf||function(f,e){return f.__proto__=e,f})(f,e)}function cf(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(f){return!1}}function df(f,e,t){return(df=cf()?Reflect.construct:function(f,e,t){var n=[null];n.push.apply(n,e);var r=new(Function.bind.apply(f,n));return t&&uf(r,t.prototype),r}).apply(null,arguments)}function pf(f){var e="function"==typeof Map?new Map:void 0;return(pf=function(f){if(null===f||-1===Function.toString.call(f).indexOf("[native code]"))return f;if("function"!=typeof f)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(f))return e.get(f);e.set(f,t)}function t(){return df(f,arguments,sf(this).constructor)}return t.prototype=Object.create(f.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),uf(t,f)})(f)}function hf(f){if(void 0===f)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return f}function lf(f,e){(null==e||e>f.length)&&(e=f.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=f[t];return n}function bf(f,e){var t="undefined"!=typeof Symbol&&f[Symbol.iterator]||f["@@iterator"];if(t)return(t=t.call(f)).next.bind(t);if(Array.isArray(f)||(t=function(f,e){if(f){if("string"==typeof f)return lf(f,void 0);var t=Object.prototype.toString.call(f).slice(8,-1);return"Object"===t&&f.constructor&&(t=f.constructor.name),"Map"===t||"Set"===t?Array.from(f):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?lf(f,void 0):void 0}}(f))||e&&f&&"number"==typeof f.length){t&&(f=t);var n=0;return function(){return n>=f.length?{done:!0}:{done:!1,value:f[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var yf=function(){function f(f,e,t,n){Number.isSafeInteger(f)||A(!1),e>=0&&e<255&&Number.isInteger(e)||A(!1),this.chainId=f,this.decimals=e,this.symbol=t,this.name=n}return f.prototype.serialize=function(){return this.wrapped.address},f}(),mf=function(f){function e(){var e;return(e=f.apply(this,arguments)||this).isNative=!0,e.isToken=!1,e}return of(e,f),e}(yf);function Tf(f){try{return E.getAddress(f)}catch(f){A(!1)}}var vf,Af,Ef,If=function(f){function e(e,t,n,r,i){var a;return(a=f.call(this,e,n,r,i)||this).isNative=!1,a.isToken=!0,a.chainId=e,a.address=Tf(t),a}of(e,f);var t=e.prototype;return t.equals=function(f){return f.isToken&&this.chainId===f.chainId&&this.address===f.address},t.sortsBefore=function(f){return this.chainId!==f.chainId&&A(!1),this.address===f.address&&A(!1),this.address.toLowerCase()<f.address.toLowerCase()},rf(e,[{key:"wrapped",get:function(){return this}}]),e}(yf),xf=((vf={})[exports.ChainId.AVALANCHE]=new If(exports.ChainId.AVALANCHE,R[exports.ChainId.AVALANCHE],6,"USDC","USD Coin"),vf[exports.ChainId.AVALANCHE_TESTNET]=new If(exports.ChainId.AVALANCHE_TESTNET,R[exports.ChainId.AVALANCHE_TESTNET],6,"USDC","USD Coin"),vf),Cf=((Af={})[exports.ChainId.AVALANCHE]=new If(exports.ChainId.AVALANCHE,D[exports.ChainId.AVALANCHE],18,"WAVAX","Wrapped AVAX"),Af[exports.ChainId.AVALANCHE_TESTNET]=new If(exports.ChainId.AVALANCHE_TESTNET,D[exports.ChainId.AVALANCHE_TESTNET],18,"WAVAX","Wrapped AVAX"),Af),gf=((Ef={})[exports.ChainId.AVALANCHE]=Cf[exports.ChainId.AVALANCHE],Ef[exports.ChainId.AVALANCHE_TESTNET]=Cf[exports.ChainId.AVALANCHE_TESTNET],Ef),Of=function(f){function e(e){return f.call(this,e,18,"AVAX","Avalanche")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Of._cache={};var Nf=function(f){function e(e){return f.call(this,e,18,"BNB","Binance Coin")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Nf._cache={};var kf=function(f){function e(e){return f.call(this,e,18,"CELO","Celo")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);kf._cache={};var _f=function(f){function e(e){return f.call(this,e,18,"ETH","Ether")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._etherCache[f])?t:this._etherCache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=Cf[this.chainId];return f||A(!1),f}}]),e}(mf);_f._etherCache={};var wf=function(f){function e(e){return f.call(this,e,18,"FTM","Fantom")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);wf._cache={};var Sf=function(f){function e(e){return f.call(this,e,18,"ONE","Harmony")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Sf._cache={};var Rf=function(f){function e(e){return f.call(this,e,18,"HT","Huobi Token")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Rf._cache={};var qf=function(f){function e(e){return f.call(this,e,18,"MATIC","Matic")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);qf._cache={};var Lf=function(f){function e(e){return f.call(this,e,18,"MOVR","Moonriver")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Lf._cache={};var Pf=function(f){function e(e){return f.call(this,e,18,"DEV","Moonbeam")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Pf._cache={};var Bf=function(f){function e(e){return f.call(this,e,18,"GLMR","GLMR")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Bf._cache={};var Df=function(f){function e(e){return f.call(this,e,18,"OKT","OKExChain")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Df._cache={};var Mf=function(f){function e(e){return f.call(this,e,18,"XDAI","xDai")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Mf._cache={};var Ff=function(f){function e(e){return f.call(this,e,18,"PALM","Palm")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Ff._cache={};var Hf=function(f){function e(e){return f.call(this,e,18,"FUSE","Fuse")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=gf[this.chainId];return f||A(!1),f}}]),e}(mf);Hf._cache={};var Uf=function(f){function e(e){return f.call(this,e,18,"SDN","Shiden")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=Cf[this.chainId];return f||A(!1),f}}]),e}(mf);Uf._cache={};var Vf,Xf=function(f){function e(e){return f.call(this,e,18,"PLD","Plasm")||this}return of(e,f),e.onChain=function(f){var t;return null!=(t=this._cache[f])?t:this._cache[f]=new e(f)},e.prototype.equals=function(f){return f.isNative&&f.chainId===this.chainId},rf(e,[{key:"wrapped",get:function(){var f=Cf[this.chainId];return f||A(!1),f}}]),e}(mf);Xf._cache={};var jf,Wf,Gf,Yf=((Vf={})[exports.ChainId.MAINNET]=_f.onChain(exports.ChainId.MAINNET),Vf[exports.ChainId.ROPSTEN]=_f.onChain(exports.ChainId.ROPSTEN),Vf[exports.ChainId.RINKEBY]=_f.onChain(exports.ChainId.RINKEBY),Vf[exports.ChainId.GĂ–RLI]=_f.onChain(exports.ChainId.GĂ–RLI),Vf[exports.ChainId.KOVAN]=_f.onChain(exports.ChainId.KOVAN),Vf[exports.ChainId.FANTOM]=wf.onChain(exports.ChainId.FANTOM),Vf[exports.ChainId.FANTOM_TESTNET]=wf.onChain(exports.ChainId.FANTOM_TESTNET),Vf[exports.ChainId.MATIC]=qf.onChain(exports.ChainId.MATIC),Vf[exports.ChainId.MATIC_TESTNET]=qf.onChain(exports.ChainId.MATIC_TESTNET),Vf[exports.ChainId.XDAI]=Mf.onChain(exports.ChainId.XDAI),Vf[exports.ChainId.BSC]=Nf.onChain(exports.ChainId.BSC),Vf[exports.ChainId.BSC_TESTNET]=Nf.onChain(exports.ChainId.BSC_TESTNET),Vf[exports.ChainId.MOONBEAM_TESTNET]=Pf.onChain(exports.ChainId.MOONBEAM_TESTNET),Vf[exports.ChainId.MOONBEAM]=Bf.onChain(exports.ChainId.MOONBEAM),Vf[exports.ChainId.ARBITRUM]=_f.onChain(exports.ChainId.ARBITRUM),Vf[exports.ChainId.AVALANCHE]=Of.onChain(exports.ChainId.AVALANCHE),Vf[exports.ChainId.AVALANCHE_TESTNET]=Of.onChain(exports.ChainId.AVALANCHE_TESTNET),Vf[exports.ChainId.HECO]=Rf.onChain(exports.ChainId.HECO),Vf[exports.ChainId.HECO_TESTNET]=Rf.onChain(exports.ChainId.HECO_TESTNET),Vf[exports.ChainId.HARMONY]=Sf.onChain(exports.ChainId.HARMONY),Vf[exports.ChainId.HARMONY_TESTNET]=Sf.onChain(exports.ChainId.HARMONY_TESTNET),Vf[exports.ChainId.OKEX]=Df.onChain(exports.ChainId.OKEX),Vf[exports.ChainId.OKEX_TESTNET]=Df.onChain(exports.ChainId.OKEX_TESTNET),Vf[exports.ChainId.CELO]=kf.onChain(exports.ChainId.CELO),Vf[exports.ChainId.PALM]=Ff.onChain(exports.ChainId.PALM),Vf[exports.ChainId.MOONRIVER]=Lf.onChain(exports.ChainId.MOONRIVER),Vf[exports.ChainId.FUSE]=Hf.onChain(exports.ChainId.FUSE),Vf[exports.ChainId.SHIDEN]=Uf.onChain(exports.ChainId.SHIDEN),Vf[exports.ChainId.PLASM_TESTNET]=Xf.onChain(exports.ChainId.PLASM_TESTNET),Vf),Kf=T.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Zf=T.BigInt(0),zf=T.BigInt(1),Jf=T.BigInt(2),Qf=T.BigInt(3),$f=T.BigInt(5),fe=T.BigInt(10),ee=T.BigInt(100),te=T.BigInt(997),ne=T.BigInt(1e3),re=((jf={})[exports.ChainId.AVALANCHE_TESTNET]="0xa8661c96efb76d829721e6476502121629dc935e644b75e8e011cf077ac1f3c5",jf[exports.ChainId.AVALANCHE]="0x6c945f0d3cca1b6eb1c2a50f18c53a069882569cf19adb5dc04596c050ffdda3",jf),ie=T.BigInt(1e3);(Gf=exports.SolidityType||(exports.SolidityType={})).uint8="uint8",Gf.uint256="uint256";var ae,oe,se=((Wf={})[exports.SolidityType.uint8]=T.BigInt("0xff"),Wf[exports.SolidityType.uint256]=T.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Wf),ue="https://9epjsvomc4.execute-api.us-east-1.amazonaws.com/dev",ce="setPrototypeOf"in Object,de=function(f){function e(){var t;return(t=f.call(this)||this).isInsufficientReservesError=!0,t.name=t.constructor.name,ce&&Object.setPrototypeOf(hf(t),(this instanceof e?this.constructor:void 0).prototype),t}return of(e,f),e}(pf(Error)),pe=function(f){function e(){var t;return(t=f.call(this)||this).isInsufficientInputAmountError=!0,t.name=t.constructor.name,ce&&Object.setPrototypeOf(hf(t),(this instanceof e?this.constructor:void 0).prototype),t}return of(e,f),e}(pf(Error)),he=C(x),le=C(I);le.strict=!0;var be=((ae={})[exports.Rounding.ROUND_DOWN]=he.ROUND_DOWN,ae[exports.Rounding.ROUND_HALF_UP]=he.ROUND_HALF_UP,ae[exports.Rounding.ROUND_UP]=he.ROUND_UP,ae),ye=((oe={})[exports.Rounding.ROUND_DOWN]=0,oe[exports.Rounding.ROUND_HALF_UP]=1,oe[exports.Rounding.ROUND_UP]=3,oe),me=function(){function f(f,e){void 0===e&&(e=T.BigInt(1)),this.numerator=T.BigInt(f),this.denominator=T.BigInt(e)}f.tryParseFraction=function(e){if(e instanceof T||"number"==typeof e||"string"==typeof e)return new f(e);if("numerator"in e&&"denominator"in e)return e;throw new Error("Could not parse fraction")};var e=f.prototype;return e.invert=function(){return new f(this.denominator,this.numerator)},e.add=function(e){var t=f.tryParseFraction(e);return T.equal(this.denominator,t.denominator)?new f(T.add(this.numerator,t.numerator),this.denominator):new f(T.add(T.multiply(this.numerator,t.denominator),T.multiply(t.numerator,this.denominator)),T.multiply(this.denominator,t.denominator))},e.subtract=function(e){var t=f.tryParseFraction(e);return T.equal(this.denominator,t.denominator)?new f(T.subtract(this.numerator,t.numerator),this.denominator):new f(T.subtract(T.multiply(this.numerator,t.denominator),T.multiply(t.numerator,this.denominator)),T.multiply(this.denominator,t.denominator))},e.lessThan=function(e){var t=f.tryParseFraction(e);return T.lessThan(T.multiply(this.numerator,t.denominator),T.multiply(t.numerator,this.denominator))},e.equalTo=function(e){var t=f.tryParseFraction(e);return T.equal(T.multiply(this.numerator,t.denominator),T.multiply(t.numerator,this.denominator))},e.greaterThan=function(e){var t=f.tryParseFraction(e);return T.greaterThan(T.multiply(this.numerator,t.denominator),T.multiply(t.numerator,this.denominator))},e.multiply=function(e){var t=f.tryParseFraction(e);return new f(T.multiply(this.numerator,t.numerator),T.multiply(this.denominator,t.denominator))},e.divide=function(e){var t=f.tryParseFraction(e);return new f(T.multiply(this.numerator,t.denominator),T.multiply(this.denominator,t.numerator))},e.toSignificant=function(f,e,t){void 0===e&&(e={groupSeparator:""}),void 0===t&&(t=exports.Rounding.ROUND_HALF_UP),Number.isInteger(f)||A(!1),f>0||A(!1),he.set({precision:f+1,rounding:be[t]});var n=new he(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(f);return n.toFormat(n.decimalPlaces(),e)},e.toFixed=function(f,e,t){return void 0===e&&(e={groupSeparator:""}),void 0===t&&(t=exports.Rounding.ROUND_HALF_UP),Number.isInteger(f)||A(!1),f>=0||A(!1),le.DP=f,le.RM=ye[t],new le(this.numerator.toString()).div(this.denominator.toString()).toFormat(f,e)},rf(f,[{key:"quotient",get:function(){return T.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new f(T.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new f(this.numerator,this.denominator)}}]),f}(),Te=C(I);Te.strict=!0;var ve=function(f){function e(e,t,n){var r;return r=f.call(this,t,n)||this,T.lessThanOrEqual(r.quotient,Kf)||A(!1),r.currency=e,r.decimalScale=T.exponentiate(T.BigInt(10),T.BigInt(e.decimals)),r}of(e,f),e.fromRawAmount=function(f,t){return new e(f,t)},e.fromFractionalAmount=function(f,t,n){return new e(f,t,n)};var t=e.prototype;return t.add=function(t){this.currency.equals(t.currency)||A(!1);var n=f.prototype.add.call(this,t);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},t.subtract=function(t){this.currency.equals(t.currency)||A(!1);var n=f.prototype.subtract.call(this,t);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},t.multiply=function(t){var n=f.prototype.multiply.call(this,t);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},t.divide=function(t){var n=f.prototype.divide.call(this,t);return e.fromFractionalAmount(this.currency,n.numerator,n.denominator)},t.toSignificant=function(e,t,n){return void 0===e&&(e=6),void 0===n&&(n=exports.Rounding.ROUND_DOWN),f.prototype.divide.call(this,this.decimalScale).toSignificant(e,t,n)},t.toFixed=function(e,t,n){return void 0===e&&(e=this.currency.decimals),void 0===n&&(n=exports.Rounding.ROUND_DOWN),e<=this.currency.decimals||A(!1),f.prototype.divide.call(this,this.decimalScale).toFixed(e,t,n)},t.toExact=function(f){return void 0===f&&(f={groupSeparator:""}),Te.DP=this.currency.decimals,new Te(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(f)},t.serialize=function(){return"["+this.currency.wrapped.address+" - "+this.toExact()+"]"},rf(e,[{key:"wrapped",get:function(){return this.currency.isToken?this:e.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),e}(me),Ae=function(f){function e(){for(var e,t,n,r,i,a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];if(4===o.length)t=o[0],n=o[1],r=o[2],i=o[3];else{var u=o[0].quoteAmount.divide(o[0].baseAmount),c=[o[0].baseAmount.currency,o[0].quoteAmount.currency,u.denominator,u.numerator];t=c[0],n=c[1],r=c[2],i=c[3]}return(e=f.call(this,i,r)||this).baseCurrency=t,e.quoteCurrency=n,e.scalar=new me(T.exponentiate(T.BigInt(10),T.BigInt(t.decimals)),T.exponentiate(T.BigInt(10),T.BigInt(n.decimals))),e}of(e,f);var t=e.prototype;return t.invert=function(){return new e(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},t.multiply=function(t){this.quoteCurrency.equals(t.baseCurrency)||A(!1);var n=f.prototype.multiply.call(this,t);return new e(this.baseCurrency,t.quoteCurrency,n.denominator,n.numerator)},t.quote=function(e){e.currency.equals(this.baseCurrency)||A(!1);var t=f.prototype.multiply.call(this,e);return ve.fromFractionalAmount(this.quoteCurrency,t.numerator,t.denominator)},t.toSignificant=function(f,e,t){return void 0===f&&(f=6),this.adjustedForDecimals.toSignificant(f,e,t)},t.toFixed=function(f,e,t){return void 0===f&&(f=4),this.adjustedForDecimals.toFixed(f,e,t)},rf(e,[{key:"adjustedForDecimals",get:function(){return f.prototype.multiply.call(this,this.scalar)}}]),e}(me),Ee=function(f){return g.keccak256(["bytes"],[g.pack(["bytes","bytes"],[f.creationCode,O.defaultAbiCoder.encode(["bytes","address"],[f.deployData,f.masterDeployerAddress])])])},Ie=function(f){var e=f.factoryAddress,t=f.tokenA,n=f.tokenB,r=f.fee,i=f.twap,a=t.sortsBefore(n)?[t,n]:[n,t],o=O.defaultAbiCoder.encode(["address","address","uint256","bool"],[].concat([a[0].address,a[1].address].sort(),[r,i])),s=Ee({creationCode:"0x6101806040523480156200001257600080fd5b5060405162004195380380620041958339810160408190526200003591620005d2565b604080518082018252600e81526d29bab9b434902628102a37b5b2b760911b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527fc2bf45081e840722410522aa366600d7fe4da5bfb5a5b417f4d5125b4ed180a4918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246608082018190523060a08301529060c0016040516020818303038152906040528051906020012060808181525050506000806000808580602001905181019062000132919062000572565b929650909450925090506001600160a01b038416620001875760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064015b60405180910390fd5b826001600160a01b0316846001600160a01b03161415620001eb5760405162461bcd60e51b815260206004820152601360248201527f4944454e544943414c5f4144445245535345530000000000000000000000000060448201526064016200017e565b6001600160a01b038416301415620002365760405162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22faa27a5a2a760991b60448201526064016200017e565b6001600160a01b038316301415620002815760405162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22faa27a5a2a760991b60448201526064016200017e565b612710821115620002c85760405162461bcd60e51b815260206004820152601060248201526f494e56414c49445f535741505f46454560801b60448201526064016200017e565b60408051600481526024810182526020810180516001600160e01b03166360a56c0160e11b17905290516000916001600160a01b038816916200030c9190620006b9565b600060405180830381855afa9150503d806000811462000349576040519150601f19603f3d011682016040523d82523d6000602084013e6200034e565b606091505b5060408051600481526024810182526020810180516001600160e01b0316630605066960e11b1790529051919350600092506001600160a01b03891691620003979190620006b9565b600060405180830381855afa9150503d8060008114620003d4576040519150601f19603f3d011682016040523d82523d6000602084013e620003d9565b606091505b5060408051600481526024810182526020810180516001600160e01b0316634da3182760e01b1790529051919350600092506001600160a01b038a1691620004229190620006b9565b600060405180830381855afa9150503d80600081146200045f576040519150601f19603f3d011682016040523d82523d6000602084013e62000464565b606091505b506001600160601b031960608a811b82166101405289901b166101605260a087905261271087900360c0528451909250620004aa9150840160209081019085016200069f565b6004558151620004c490830160209081019084016200054b565b60601b6001600160601b03191660e0528051620004eb90602090830181019083016200054b565b6001600160601b0319606091821b8116610100529089901b1661012052600160095583156200052a57600880546001600160e01b0316600160e01b1790555b50505050505050505062000739565b8051620005468162000720565b919050565b6000602082840312156200055e57600080fd5b81516200056b8162000720565b9392505050565b600080600080608085870312156200058957600080fd5b8451620005968162000720565b6020860151909450620005a98162000720565b6040860151606087015191945092508015158114620005c757600080fd5b939692955090935050565b60008060408385031215620005e657600080fd5b82516001600160401b0380821115620005fe57600080fd5b818501915085601f8301126200061357600080fd5b8151818111156200062857620006286200070a565b604051601f8201601f19908116603f011681019083821181831017156200065357620006536200070a565b816040528281528860208487010111156200066d57600080fd5b62000680836020830160208801620006d7565b8096505050505050620006966020840162000539565b90509250929050565b600060208284031215620006b257600080fd5b5051919050565b60008251620006cd818460208701620006d7565b9190910192915050565b60005b83811015620006f4578181015183820152602001620006da565b8381111562000704576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200073657600080fd5b50565b60805160a05160c05160e05160601c6101005160601c6101205160601c6101405160601c6101605160601c61390062000895600039600081816105b301528181610791015281816108c00152818161096e01528181610ff6015281816110fe01528181611336015281816113a5015281816115e701528181611fc30152818161204a01526129e701526000818161032e0152818161070d01528181610a5301528181610b8201528181610fca01528181611095015281816112e2015281816114860152818161157901528181611d24015281816120830152818161216e01526128e801526000818161058c015281816118070152611c240152600081816103f901528181612650015281816127c6015281816128ac0152612a900152600081816102e20152612eb3015260006125520152600081816104200152818161315501526131c00152600081816103d2015261233901526139006000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c8063627dd56a1161012a578063a69840a8116100bd578063c14ad8021161008c578063d21220a711610071578063d21220a7146105ae578063d505accf146105d5578063dd62ed3e146105e857600080fd5b8063c14ad8021461057e578063cf58879a1461058757600080fd5b8063a69840a81461051e578063a8f1f52e14610545578063a9059cbb14610558578063af8c09bf1461056b57600080fd5b80637ba0e2e7116100f95780637ba0e2e7146104a55780637ecebe00146104b857806392bc3219146104d857806395d89b41146104e257600080fd5b8063627dd56a1461045457806367e4ac2c1461046757806370a082311461047c5780637464fc3d1461049c57600080fd5b80632a07b6c7116101a25780634da31827116101715780634da31827146103f457806354cf2aeb1461041b5780635909c0d5146104425780635a3d54931461044b57600080fd5b80632a07b6c71461036c57806330adf81f1461038c578063313ce567146103b35780633644e515146103cd57600080fd5b80630c0a0cd2116101de5780630c0a0cd2146102dd5780630dfe16811461032957806318160ddd1461035057806323b872dd1461035957600080fd5b8063053da1c81461021057806306fdde03146102365780630902f1ac1461027f578063095ea7b3146102ba575b600080fd5b61022361021e366004613566565b610613565b6040519081526020015b60405180910390f35b6102726040518060400160405280600e81526020017f5375736869204c5020546f6b656e00000000000000000000000000000000000081525081565b60405161022d9190613716565b610287610c3e565b604080516dffffffffffffffffffffffffffff948516815293909216602084015263ffffffff169082015260600161022d565b6102cd6102c8366004613449565b610ca7565b604051901515815260200161022d565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161022d565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b61022360005481565b6102cd6103673660046134ae565b610d20565b61037f61037a366004613566565b610e6c565b60405161022d91906136b1565b6102237f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6103bb601281565b60405160ff909116815260200161022d565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b61022360055481565b61022360065481565b610223610462366004613566565b6111e1565b61046f611557565b60405161022d9190613657565b61022361048a36600461327d565b60016020526000908152604090205481565b61022360075481565b6102236104b3366004613566565b611656565b6102236104c636600461327d565b60036020526000908152604090205481565b6104e0611bb2565b005b6102726040518060400160405280600381526020017f534c50000000000000000000000000000000000000000000000000000000000081525081565b6102237f54726964656e743a436f6e7374616e7450726f6475637400000000000000000081565b610223610553366004613566565b611cad565b6102cd610566366004613449565b611de0565b610223610579366004613566565b611e65565b61022360045481565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6104e06105e33660046134ef565b61220e565b6102236105f6366004613475565b600260209081526000928352604080842090915290825290205481565b6000600954600114610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f4c4f434b4544000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600260095560008080808061069d87890189613305565b9450945094509450945060008060006107056008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b9250925092507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561096c5761078a85846dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff1661254a565b98506107b87f00000000000000000000000000000000000000000000000000000000000000008a89896125ad565b6040517fbd50c7b1000000000000000000000000000000000000000000000000000000008152339063bd50c7b1906107f4908790600401613716565b600060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506000806108316128a5565b9150915086856dffffffffffffffffffffffffffff16830310156108b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f494e53554646494349454e545f414d4f554e545f494e00000000000000000000604482015260640161067d565b6108be8282878787612b1d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e460628a8f60405161095d929190918252602082015260400190565b60405180910390a45050610c2a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e56414c49445f494e5055545f544f4b454e00000000000000000000000000604482015260640161067d565b610a4c85836dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff1661254a565b9850610a7a7f00000000000000000000000000000000000000000000000000000000000000008a89896125ad565b6040517fbd50c7b1000000000000000000000000000000000000000000000000000000008152339063bd50c7b190610ab6908790600401613716565b600060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b50505050600080610af36128a5565b9150915086846dffffffffffffffffffffffffffff1682031015610b73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f494e53554646494349454e545f414d4f554e545f494e00000000000000000000604482015260640161067d565b610b808282878787612b1d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e460628a8f604051610c1f929190918252602082015260400190565b60405180910390a450505b505060016009555094979650505050505050565b6000806000610c9c6008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b925092509250909192565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d0f9086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610dbd5773ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832033845290915281208054849290610db7908490613792565b90915550505b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604081208054849290610df2908490613792565b909155505073ffffffffffffffffffffffffffffffffffffffff808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e5a9086815260200190565b60405180910390a35060019392505050565b6060600954600114610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f4c4f434b45440000000000000000000000000000000000000000000000000000604482015260640161067d565b6002600955600080610eee84860186613414565b915091506000806000610f506008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b925092509250600080610f616128a5565b60008054308252600160205260409091205492945090925090610f85878784612e33565b90910190600082610f968684613755565b610fa09190613741565b9050600083610faf8685613755565b610fb99190613741565b9050610fc53084612ee2565b610ff17f0000000000000000000000000000000000000000000000000000000000000000838d8d6125ad565b61101d7f0000000000000000000000000000000000000000000000000000000000000000828d8d6125ad565b8186039550808503945061103486868b8b8b612b1d565b6110466110418688613755565b612f75565b6007556040805160028082526060820190925290816020015b604080518082019091526000808252602082015281526020019060019003908161105f579050509b5060405180604001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168152602001838152508c6000815181106110e6576110e6613847565b602002602001018190525060405180604001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168152602001828152508c60018151811061114f5761114f613847565b60200260200101819052508a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d8193649684846040516111c2929190918252602082015260400190565b60405180910390a35050600160095550979a9950505050505050505050565b600060095460011461124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f4c4f434b45440000000000000000000000000000000000000000000000000000604482015260640161067d565b600260095560008080611264858701876132be565b92509250925060008060006112c86008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b9250925092506000806112d96128a5565b915091506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614156113a3577f00000000000000000000000000000000000000000000000000000000000000009050866dffffffffffffffffffffffffffff168403915061139782886dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff1661254a565b9a508a830392506114bf565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e56414c49445f494e5055545f544f4b454e00000000000000000000000000604482015260640161067d565b50506008546dffffffffffffffffffffffffffff6e01000000000000000000000000000090910481168203907f0000000000000000000000000000000000000000000000000000000000000000906114b7908390888116908a1661254a565b9a508a840393505b6114cb818c8b8b6125ad565b6114d88484898989612b1d565b8073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e46062858f604051610c1f929190918252602082015260400190565b60408051600280825260608083018452926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106115ab576115ab613847565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061161957611619613847565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505090565b60006009546001146116c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f4c4f434b45440000000000000000000000000000000000000000000000000000604482015260640161067d565b600260095560006116d78385018561327d565b905060008060006117376008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b9250925092506000806117486128a5565b600054919350915061175b868683612e33565b0160006117786dffffffffffffffffffffffffffff881685613792565b905060006117966dffffffffffffffffffffffffffff881685613792565b90506000806117c784848c6dffffffffffffffffffffffffffff168c6dffffffffffffffffffffffffffff166130fa565b909250905060006117ef6117db8389613792565b6117e5858b613792565b6110419190613755565b905085611a705761180360006103e86131fd565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637cd07e476040518163ffffffff1660e01b815260040160206040518083038186803b15801561186b57600080fd5b505afa15801561187f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a391906132a1565b90503373ffffffffffffffffffffffffffffffffffffffff821614156119dd578073ffffffffffffffffffffffffffffffffffffffff166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b15801561190957600080fd5b505afa15801561191d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194191906135d8565b9d508d1580159061197257507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8e14155b6119d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4241445f444553495245445f4c49515549444954590000000000000000000000604482015260640161067d565b611a6a565b73ffffffffffffffffffffffffffffffffffffffff811615611a5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4f4e4c595f4d49475241544f5200000000000000000000000000000000000000604482015260640161067d565b611a676103e883613792565b9d505b50611ab8565b6000611a926110416dffffffffffffffffffffffffffff808e16908f16613755565b90508087611aa08285613792565b611aaa9190613755565b611ab49190613741565b9d50505b8c611b1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f494e53554646494349454e545f4c49515549444954595f4d494e544544000000604482015260640161067d565b611b298c8e6131fd565b611b3688888d8d8d612b1d565b611b43611041888a613755565b600755604080518681526020810186905273ffffffffffffffffffffffffffffffffffffffff8e169133917fdbba30eb0402b389513e87f51f4db2db80bed454384ec6925a24097c3548a02a91015b60405180910390a35050600160095550989b9a5050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc14ad80200000000000000000000000000000000000000000000000000000000179052905160009173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691611c4f919061363b565b600060405180830381855afa9150503d8060008114611c8a576040519150601f19603f3d011682016040523d82523d6000602084013e611c8f565b606091505b5091505080806020019051810190611ca791906135d8565b60045550565b60008080611cbd84860186613449565b91509150600080611d1d6008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b50915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611da857611da183836dffffffffffffffffffffffffffff16836dffffffffffffffffffffffffffff1661254a565b9450611dd6565b611dd383826dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff1661254a565b94505b5050505092915050565b33600090815260016020526040812080548391908390611e01908490613792565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260016020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0f9086815260200190565b6000600954600114611ed3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f4c4f434b45440000000000000000000000000000000000000000000000000000604482015260640161067d565b600260095560008080611ee8858701876132be565b9250925092506000806000611f4c6008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b925092509250600080611f5d6128a5565b60008054308252600160205260409091205492945090925090611f81878784612e33565b90910190600082611f928684613755565b611f9c9190613741565b9050600083611fab8685613755565b611fb59190613741565b9050611fc13084612ee2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614156120815761204482838b6dffffffffffffffffffffffffffff1603838b6dffffffffffffffffffffffffffff160361254a565b016120717f0000000000000000000000000000000000000000000000000000000000000000828d8d6125ad565b9b5050918a90039160008b6121a1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f494e56414c49445f4f55545055545f544f4b454e000000000000000000000000604482015260640161067d565b61216581828a6dffffffffffffffffffffffffffff1603848c6dffffffffffffffffffffffffffff160361254a565b820191506121957f0000000000000000000000000000000000000000000000000000000000000000838d8d6125ad565b509a50928a9003928a60005b6121ae86868b8b8b612b1d565b6121bb6110418688613755565b600755604080518381526020810183905273ffffffffffffffffffffffffffffffffffffffff8d169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364969101611b92565b42841015612278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161067d565b73ffffffffffffffffffffffffffffffffffffffff878116600081815260036020908152604080832080546001810190915581517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98185015280830195909552948b166060850152608084018a905260a084019490945260c08084018990528451808503909101815260e0840190945283519301929092207f19010000000000000000000000000000000000000000000000000000000000006101008301527f000000000000000000000000000000000000000000000000000000000000000061010283015261012282015261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156123f1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061246c57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6124d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f494e56414c49445f5045524d49545f5349474e41545552450000000000000000604482015260640161067d565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526002602090815260408083208b8516808552908352928190208a905551898152919350918a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000806125777f000000000000000000000000000000000000000000000000000000000000000086613755565b90508061258661271086613755565b6125909190613729565b61259a8483613755565b6125a491906137415