@requestnetwork/request-client.js 0.39.1-next.1583 → 0.39.1-next.1584

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -109,5 +109,5 @@
109
109
  }
110
110
  }
111
111
  }
112
- `},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadCurrencyFromContract=void 0;const n=r(15),i=r(6),f=r(72),o=r(4),a=r(544),s=r(51);t.loadCurrencyFromContract=e=>(0,n.__awaiter)(void 0,void 0,void 0,(function*(){if(!e.network||!i.utils.isAddress(e.value))return null;try{const t=a.ERC20__factory.connect(e.value,(0,s.getDefaultProvider)(e.network)),r=yield t.decimals();if(!r)return null;const n=yield t.symbol();if(!n)return null;const i={address:e.value,decimals:r,symbol:n,network:e.network,type:o.RequestLogicTypes.CURRENCY.ERC20};return Object.assign(Object.assign({},i),{id:f.CurrencyManager.currencyId(i),hash:(0,f.getCurrencyHash)(f.CurrencyManager.toStorageCurrency(i)),meta:null})}catch(e){return null}}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedNetworks=void 0;const n=r(495),i=r(496),f=r(499),o=r(500),a=r(501),s=r(502),c=r(503),u=r(504);t.supportedNetworks={celo:f.supportedCeloERC20,rinkeby:n.supportedRinkebyERC20,mainnet:i.supportedMainnetERC20,matic:o.supportedMaticERC20,fantom:a.supportedFantomTokens,bsctest:s.supportedBSCTestERC20,bsc:c.supportedBSCERC20,xdai:u.supportedXDAIERC20}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedRinkebyERC20=void 0,t.supportedRinkebyERC20={"0x995d6A8C21F24be1Dd04E105DD0d83758343E258":{decimals:18,name:"Central Bank Token",symbol:"CTBK"},"0xFab46E002BbF0b4509813474841E0716E6730136":{decimals:18,name:"Faucet Token",symbol:"FAU"}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedMainnetERC20=t.extraERC20Tokens=void 0;const n=(0,r(73).__importStar)(r(497));t.extraERC20Tokens={"0x433d86336dB759855A66cCAbe4338313a8A7fc77":{name:"Indacoin",symbol:"INDA",decimals:2},"0x8888801aF4d980682e47f1A9036e589479e835C5":{name:"88mph.app",symbol:"MPH",decimals:18},"0x967da4048cD07aB37855c090aAF366e4ce1b9F48":{name:"Ocean Token",symbol:"OCEAN",decimals:18},"0x8290333ceF9e6D528dD5618Fb97a76f268f3EDD4":{name:"Ankr Network",symbol:"ANKR",decimals:18},"0x70e8dE73cE538DA2bEEd35d14187F6959a8ecA96":{name:"XSGD",symbol:"XSGD",decimals:6},"0x6595b8fD9C920C81500dCa94e53Cdc712513Fb1f":{name:"Olyseum",symbol:"OLY",decimals:18},"0x8Ab7404063Ec4DBcfd4598215992DC3F8EC853d7":{name:"Akropolis",symbol:"AKRO",decimals:18},"0xf1f955016EcbCd7321c7266BccFB96c68ea5E49b":{name:"Rally",symbol:"RLY",decimals:18},"0x7815bDa662050D84718B988735218CFfd32f75ea":{name:"YEL Token",symbol:"YEL",decimals:18}},t.supportedMainnetERC20=Object.assign(Object.assign({},Object.entries(n).filter((([,e])=>e.erc20)).reduce(((e,[t,r])=>Object.assign(Object.assign({},e),{[t]:{name:r.name,symbol:r.symbol,decimals:r.decimals}})),{})),t.extraERC20Tokens)},function(e,t,r){e.exports=r(498)},function(e){e.exports=JSON.parse('{"0x10633216E7E8281e33c86F02Bf8e565a635D9770":{"name":"Dvision Network","logo":"dvision.svg","erc20":true,"symbol":"DVI","decimals":18},"0x898BAD2774EB97cF6b94605677F43b41871410B1":{"name":"vEth2","logo":"vEth2.svg","erc20":true,"symbol":"vEth2","decimals":18},"0x853d955aCEf822Db058eb8505911ED77F175b99e":{"name":"Frax","logo":"frax.svg","erc20":true,"symbol":"FRAX","decimals":18},"0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0":{"name":"Frax Share","logo":"fxs.svg","erc20":true,"symbol":"FXS","decimals":18},"0x84810bcF08744d5862B8181f12d17bfd57d3b078":{"name":"SharedStake","logo":"sharedstake.svg","erc20":true,"symbol":"SGT","decimals":18},"0x75387e1287Dd85482aB66102DA9f6577E027f609":{"name":"MindsyncAI","logo":"MAI.svg","erc20":true,"symbol":"MAI","decimals":18},"0x196f4727526eA7FB1e17b2071B3d8eAA38486988":{"name":"Reserve","logo":"rsv.svg","erc20":true,"symbol":"RSV","decimals":18},"0x8762db106B2c2A0bccB3A80d1Ed41273552616E8":{"name":"Reserve Rights","logo":"rsr.svg","erc20":true,"symbol":"RSR","decimals":18},"0x1cF4592ebfFd730c7dc92c1bdFFDfc3B9EfCf29a":{"name":"WAVES","logo":"waves.svg","erc20":true,"symbol":"WAVES","decimals":18},"0x62A6738d887F47e297676FaB05b902709B106C64":{"name":"ArCoin","logo":"ArCoin.svg","erc20":true,"symbol":"ARCA","decimals":18},"0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998":{"name":"Audius","logo":"audius.svg","erc20":true,"symbol":"AUDIO","decimals":18},"0x8E3BCC334657560253B83f08331d85267316e08a":{"name":"Rubic","logo":"brbc.svg","erc20":true,"symbol":"BRBC","decimals":18},"0xca1207647Ff814039530D7d35df0e1Dd2e91Fa84":{"name":"dHEDGE DAO Token","logo":"DHT.svg","erc20":true,"symbol":"DHT","decimals":18},"0x6243d8CEA23066d098a15582d81a598b4e8391F4":{"name":"Reflexer Ungovernance Token","logo":"flx.svg","erc20":true,"symbol":"FLX","decimals":18},"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919":{"name":"Rai Reflex Index","logo":"rai.svg","erc20":true,"symbol":"RAI","decimals":18},"0xF25c91C87e0B1fd9B4064Af0F427157AaB0193A7":{"name":"BASIC Token","logo":"basic.svg","erc20":true,"symbol":"BASIC","decimals":18},"0x53C8395465A84955c95159814461466053DedEDE":{"name":"DeGate Token","logo":"DG.svg","erc20":true,"symbol":"DG","decimals":18},"0xBCf9dBf8B14eD096B2BA08b7269356197fDd1b5D":{"name":"Avaluse","logo":"avaluse.svg","erc20":true,"symbol":"AVAL","decimals":18},"0x6E765D26388A17A6e86c49A8E41DF3F58aBcd337":{"name":"Kangal","logo":"kangal.svg","erc20":true,"symbol":"KANGAL","decimals":18},"0x9AF4f26941677C706cfEcf6D3379FF01bB85D5Ab":{"name":"DomRaiderToken","logo":"drt.svg","erc20":true,"symbol":"DRT","decimals":8},"0x06B179e292f080871825beD5D722162fD96B4c95":{"name":"10x.gg","logo":"xgg.svg","erc20":true,"symbol":"XGG","decimals":18},"0xF29992D7b589A0A6bD2de7Be29a97A6EB73EaF85":{"name":"DMScript","logo":"dmst.svg","erc20":true,"symbol":"DMST","decimals":18},"0xDd1Ad9A21Ce722C151A836373baBe42c868cE9a4":{"name":"Universal Basic Income","logo":"ubi.svg","erc20":true,"symbol":"UBI","decimals":18},"0xf293d23BF2CDc05411Ca0edDD588eb1977e8dcd4":{"name":"Sylo","logo":"SYLO.svg","erc20":true,"symbol":"SYLO","decimals":18},"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84":{"name":"Liquid staked Ether 2.0","logo":"stETH.svg","erc20":true,"symbol":"stETH","decimals":18},"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0":{"name":"Wrapped liquid staked Ether 2.0","logo":"wstETH.svg","erc20":true,"symbol":"wstETH","decimals":18},"0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32":{"name":"Lido DAO Token","logo":"LDO.svg","erc20":true,"symbol":"LDO","decimals":18},"0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9":{"name":"Wrapped LUNA Token","logo":"Luna.svg","erc20":true,"symbol":"LUNA","decimals":18},"0xa47c8bf37f92aBed4A126BDA807A7b7498661acD":{"name":"Wrapped UST Token","logo":"UST.svg","erc20":true,"symbol":"UST","decimals":18},"0xcAAfF72A8CbBfc5Cf343BA4e26f65a257065bFF1":{"name":"Wrapped KRT Token","logo":"KRT.svg","erc20":true,"symbol":"KRT","decimals":18},"0x676Ad1b33ae6423c6618C1AEcf53BAa29cf39EE5":{"name":"Wrapped SDT Token","logo":"SDT.svg","erc20":true,"symbol":"SDT","decimals":18},"0x156B36ec68FdBF84a925230BA96cb1Ca4c4bdE45":{"name":"Wrapped MNT Token","logo":"MNT.svg","erc20":true,"symbol":"MNT","decimals":18},"0x09a3EcAFa817268f77BE1283176B946C4ff2E608":{"name":"Wrapped MIR Token","logo":"MIR.svg","erc20":true,"symbol":"MIR","decimals":18},"0xd36932143F6eBDEDD872D5Fb0651f4B72Fd15a84":{"name":"Wrapped Mirror AAPL Token","logo":"mAAPL.svg","erc20":true,"symbol":"mAAPL","decimals":18},"0x59A921Db27Dd6d4d974745B7FfC5c33932653442":{"name":"Wrapped Mirror GOOGL Token","logo":"mGOOGL.svg","erc20":true,"symbol":"mGOOGL","decimals":18},"0x21cA39943E91d704678F5D00b6616650F066fD63":{"name":"Wrapped Mirror TSLA Token","logo":"mTSLA.svg","erc20":true,"symbol":"mTSLA","decimals":18},"0xC8d674114bac90148d11D3C1d33C61835a0F9DCD":{"name":"Wrapped Mirror NFLX Token","logo":"mNFLX.svg","erc20":true,"symbol":"mNFLX","decimals":18},"0x13B02c8dE71680e71F0820c996E4bE43c2F57d15":{"name":"Wrapped Mirror QQQ Token","logo":"mQQQ.svg","erc20":true,"symbol":"mQQQ","decimals":18},"0xEdb0414627E6f1e3F082DE65cD4F9C693D78CCA9":{"name":"Wrapped Mirror TWTR Token","logo":"mTWTR.svg","erc20":true,"symbol":"mTWTR","decimals":18},"0x41BbEDd7286dAab5910a1f15d12CBda839852BD7":{"name":"Wrapped Mirror MSFT Token","logo":"mMSFT.svg","erc20":true,"symbol":"mMSFT","decimals":18},"0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7":{"name":"Wrapped Mirror AMZN Token","logo":"mAMZN.svg","erc20":true,"symbol":"mAMZN","decimals":18},"0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72":{"name":"Wrapped Mirror BABA Token","logo":"mBABA.svg","erc20":true,"symbol":"mBABA","decimals":18},"0x1d350417d9787E000cc1b95d70E9536DcD91F373":{"name":"Wrapped Mirror IAU Token","logo":"mIAU.svg","erc20":true,"symbol":"mIAU","decimals":18},"0x9d1555d8cB3C846Bb4f7D5B1B1080872c3166676":{"name":"Wrapped Mirror SLV Token","logo":"mSLV.svg","erc20":true,"symbol":"mSLV","decimals":18},"0x31c63146a635EB7465e5853020b39713AC356991":{"name":"Wrapped Mirror USO Token","logo":"mUSO.svg","erc20":true,"symbol":"mUSO","decimals":18},"0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86":{"name":"Wrapped Mirror VIXY Token","logo":"mVIXY.svg","erc20":true,"symbol":"mVIXY","decimals":18},"0x21BfBDa47A0B4B5b1248c767Ee49F7caA9B23697":{"name":"OVR","logo":"OVR.svg","erc20":true,"symbol":"OVR","decimals":18},"0x4691937a7508860F876c9c0a2a617E7d9E945D4B":{"name":"Wootrade Network","logo":"wootrade.svg","erc20":true,"symbol":"WOO","decimals":18},"0x40FD72257597aA14C7231A7B1aaa29Fce868F677":{"name":"Sora Token","logo":"xor.svg","erc20":true,"symbol":"XOR","decimals":18},"0xe88f8313e61A97cEc1871EE37fBbe2a8bf3ed1E4":{"name":"Sora Validator Token","logo":"val.svg","erc20":true,"symbol":"VAL","decimals":18},"0xaf9f549774ecEDbD0966C52f250aCc548D3F36E5":{"name":"RFUEL","logo":"RFUEL.svg","erc20":true,"symbol":"RFUEL","decimals":18},"0x7420B4b9a0110cdC71fB720908340C03F9Bc03EC":{"name":"JasmyCoin","logo":"JASMY.svg","erc20":true,"symbol":"JASMY","decimals":18},"0x947AEb02304391f8fbE5B25D7D98D649b57b1788":{"name":"Mandala Exchange Token","logo":"mandala.svg","erc20":true,"symbol":"MDX","decimals":18},"0xCdeee767beD58c5325f68500115d4B722b3724EE":{"name":"Carbon","logo":"CRBN.svg","erc20":true,"symbol":"CRBN","decimals":18},"0xA4EED63db85311E22dF4473f87CcfC3DaDCFA3E3":{"name":"Rubic","logo":"Rubic.svg","erc20":true,"symbol":"RBC","decimals":18},"0x3A880652F47bFaa771908C07Dd8673A787dAEd3A":{"name":"DerivaDAO","logo":"DDX.svg","erc20":true,"symbol":"DDX","decimals":18},"0xbC396689893D065F41bc2C6EcbeE5e0085233447":{"name":"Perpetual","logo":"PERP.svg","erc20":true,"symbol":"PERP","decimals":18},"0xeca82185adCE47f39c684352B0439f030f860318":{"name":"Perlin","logo":"PERL.svg","erc20":true,"symbol":"PERL","decimals":18},"0xA1AFFfE3F4D611d252010E3EAf6f4D77088b0cd7":{"name":"Reflect Finance","logo":"RFI.svg","erc20":true,"symbol":"RFI","decimals":9},"0xC0bA369c8Db6eB3924965e5c4FD0b4C1B91e305F":{"name":"DLP Duck Token","logo":"dlpducktoken.svg","erc20":true,"symbol":"DUCK","decimals":18},"0xFbEEa1C75E4c4465CB2FCCc9c6d6afe984558E20":{"name":"DuckDaoDime","logo":"ddim.svg","erc20":true,"symbol":"DDIM","decimals":18},"0xB4d930279552397bbA2ee473229f89Ec245bc365":{"name":"MahaDAO","logo":"MAHA.svg","erc20":true,"symbol":"MAHA","decimals":18},"0x3231Cb76718CDeF2155FC47b5286d82e6eDA273f":{"name":"Monerium EUR","logo":"EURe.svg","erc20":true,"symbol":"EURe","decimals":18},"0x7ba92741Bf2A568abC6f1D3413c58c6e0244F8fD":{"name":"Monerium GBP","logo":"GBPe.svg","erc20":true,"symbol":"GBPe","decimals":18},"0xBc5142e0CC5eB16b47c63B0f033d4c2480853a52":{"name":"Monerium USD","logo":"USDe.svg","erc20":true,"symbol":"USDe","decimals":18},"0xC642549743A93674cf38D6431f75d6443F88E3E2":{"name":"Monerium ISK","logo":"ISKe.svg","erc20":true,"symbol":"ISKe","decimals":18},"0x66a0f676479Cee1d7373f3DC2e2952778BfF5bd6":{"name":"WISE Token","logo":"wise.svg","erc20":true,"symbol":"WISE","decimals":18},"0x72F020f8f3E8fd9382705723Cd26380f8D0c66Bb":{"name":"PlotX","logo":"plotx.svg","erc20":true,"symbol":"PLOT","decimals":18},"0x44197A4c44D6A059297cAf6be4F7e172BD56Caaf":{"name":"ELTCOIN","logo":"ELTCOIN.svg","erc20":true,"symbol":"ELT","decimals":8},"0x6781a0F84c7E9e846DCb84A9a5bd49333067b104":{"name":"ZAP TOKEN","logo":"zapicon.svg","erc20":true,"symbol":"ZAP","decimals":18},"0x00c83aeCC790e8a4453e5dD3B0B4b3680501a7A7":{"name":"SKALE","logo":"skl.svg","erc20":true,"symbol":"SKL","decimals":18},"0x674C6Ad92Fd080e4004b2312b45f796a192D27a0":{"name":"Neutrino USD","logo":"usdn.svg","erc20":true,"symbol":"USDN","decimals":18},"0xE5CAeF4Af8780E59Df925470b050Fb23C43CA68C":{"name":"Ferrum Network Token","logo":"frm.svg","erc20":true,"symbol":"FRM","decimals":6},"0x998FFE1E43fAcffb941dc337dD0468d52bA5b48A":{"name":"Rupiah Token","logo":"idrt.svg","erc20":true,"symbol":"IDRT","decimals":2},"0x4E15361FD6b4BB609Fa63C81A2be19d873717870":{"name":"Fantom","logo":"ftm.svg","erc20":true,"symbol":"FTM","decimals":18},"0x557B933a7C2c45672B610F8954A3deB39a51A8Ca":{"name":"REVV","logo":"revv.svg","erc20":true,"symbol":"REVV","decimals":18},"0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B":{"name":"Aave AAVE","logo":"aAAVE.svg","erc20":true,"symbol":"aAAVE","decimals":18},"0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1":{"name":"Aave BAT","logo":"aBAT.svg","erc20":true,"symbol":"aBAT","decimals":18},"0xA361718326c15715591c299427c62086F69923D9":{"name":"Aave BUSD","logo":"aBUSD.svg","erc20":true,"symbol":"aBUSD","decimals":18},"0x028171bCA77440897B824Ca71D1c56caC55b68A3":{"name":"Aave DAI","logo":"aDAI.svg","erc20":true,"symbol":"aDAI","decimals":18},"0xaC6Df26a590F08dcC95D5a4705ae8abbc88509Ef":{"name":"Aave ENJ","logo":"aENJ.svg","erc20":true,"symbol":"aENJ","decimals":18},"0xD37EE7e4f452C6638c96536e68090De8cBcdb583":{"name":"Aave GUSD","logo":"aGUSD.svg","erc20":true,"symbol":"aGUSD","decimals":2},"0x39C6b3e42d6A679d7D776778Fe880BC9487C2EDA":{"name":"Aave KNC","logo":"aKNC.svg","erc20":true,"symbol":"aKNC","decimals":18},"0xa06bC25B5805d5F8d82847D191Cb4Af5A3e873E0":{"name":"Aave LINK","logo":"aLINK.svg","erc20":true,"symbol":"aLINK","decimals":18},"0xa685a61171bb30d4072B338c80Cb7b2c865c873E":{"name":"Aave MANA","logo":"aMANA.svg","erc20":true,"symbol":"aMANA","decimals":18},"0xc713e5E149D5D0715DcD1c156a020976e7E56B88":{"name":"Aave MKR","logo":"aMKR.svg","erc20":true,"symbol":"aMKR","decimals":18},"0xCC12AbE4ff81c9378D670De1b57F8e0Dd228D77a":{"name":"Aave REN","logo":"aREN.svg","erc20":true,"symbol":"aREN","decimals":18},"0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2":{"name":"Aave SNX","logo":"aSNX.svg","erc20":true,"symbol":"aSNX","decimals":18},"0x6C5024Cd4F8A59110119C56f8933403A539555EB":{"name":"Aave SUSD","logo":"aSUSD.svg","erc20":true,"symbol":"aSUSD","decimals":18},"0x101cc05f4A51C0319f570d5E146a8C625198e636":{"name":"Aave TUSD","logo":"aTUSD.svg","erc20":true,"symbol":"aTUSD","decimals":18},"0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1":{"name":"Aave UNI","logo":"aUNI.svg","erc20":true,"symbol":"aUNI","decimals":18},"0xBcca60bB61934080951369a648Fb03DF4F96263C":{"name":"Aave USDC","logo":"aUSDC.svg","erc20":true,"symbol":"aUSDC","decimals":6},"0x3Ed3B47Dd13EC9a98b44e6204A523E766B225811":{"name":"Aave USDT","logo":"aUSDT.svg","erc20":true,"symbol":"aUSDT","decimals":6},"0x9ff58f4fFB29fA2266Ab25e75e2A8b3503311656":{"name":"Aave WBTC","logo":"aWBTC.svg","erc20":true,"symbol":"aWBTC","decimals":8},"0x030bA81f1c18d280636F32af80b9AAd02Cf0854e":{"name":"Aave WETH","logo":"aWETH.svg","erc20":true,"symbol":"aWETH","decimals":18},"0x5165d24277cD063F5ac44Efd447B27025e888f37":{"name":"Aave YFI","logo":"aYFI.svg","erc20":true,"symbol":"aYFI","decimals":18},"0xdef1fac7Bf08f173D286BbBDcBeeADe695129840":{"name":"Defi Factory Token","logo":"DEFT.svg","erc20":true,"symbol":"DEFT","decimals":18},"0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e":{"name":"Aave ZRX","logo":"aZRX.svg","erc20":true,"symbol":"aZRX","decimals":18},"0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9":{"name":"Aave","logo":"AAVE.svg","erc20":true,"symbol":"AAVE","decimals":18},"0x1Da87b114f35E1DC91F72bF57fc07A768Ad40Bb0":{"name":"Equalizer","logo":"EQZ.svg","erc20":true,"symbol":"EQZ","decimals":18},"0x4da27a545c0c5B758a6BA100e3a049001de870f5":{"name":"Staked Aave","logo":"stkAAVE.svg","erc20":true,"symbol":"stAAVE","decimals":18},"0xba9d4199faB4f26eFE3551D490E3821486f135Ba":{"name":"SwissBorg","logo":"chsb.svg","erc20":true,"symbol":"CHSB","decimals":8},"0x7DD9c5Cba05E151C895FDe1CF355C9A1D5DA6429":{"name":"Golem Network Token","logo":"glm.svg","erc20":true,"symbol":"GLM","decimals":18},"0x7240aC91f01233BaAf8b064248E80feaA5912BA3":{"name":"OctoFi","logo":"octo.svg","erc20":true,"symbol":"OCTO","decimals":18},"0xff56Cc6b1E6dEd347aA0B7676C85AB0B3D08B0FA":{"name":"Orbs","logo":"orbs.svg","erc20":true,"symbol":"ORBS","decimals":18},"0x63f88A2298a5c4AEE3c216Aa6D926B184a4b2437":{"name":"GAME Credits","logo":"GAMECreditsLogo.svg","erc20":true,"symbol":"GAME","decimals":18},"0x5150956E082C748Ca837a5dFa0a7C10CA4697f9c":{"name":"Zeedex","logo":"zdex.svg","erc20":true,"symbol":"ZDEX","decimals":18},"0x84cA8bc7997272c7CfB4D0Cd3D55cd942B3c9419":{"name":"DIAdata","logo":"dia.svg","erc20":true,"symbol":"DIA","decimals":18},"0xb78B3320493a4EFaa1028130C5Ba26f0B6085Ef8":{"name":"Dracula","logo":"dracula.svg","erc20":true,"symbol":"DRC","decimals":18},"0xF433089366899D83a9f26A773D59ec7eCF30355e":{"name":"Metal","logo":"mtl.svg","erc20":true,"symbol":"MTL","decimals":8},"0x85Eee30c52B0b379b046Fb0F85F4f3Dc3009aFEC":{"name":"KEEP","logo":"keep.svg","erc20":true,"symbol":"KEEP","decimals":18},"0x8dAEBADE922dF735c38C80C7eBD708Af50815fAa":{"name":"tBTC","logo":"tbtc.svg","erc20":true,"symbol":"TBTC","decimals":18},"0xD7EFB00d12C2c13131FD319336Fdf952525dA2af":{"name":"Proton","logo":"proton.svg","erc20":true,"symbol":"XPR","decimals":4},"0x178c820f862B14f316509ec36b13123DA19A6054":{"name":"Energy Web Token Bridged","logo":"ewtb.svg","erc20":true,"symbol":"EWTB","decimals":18},"0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39":{"name":"HEX","logo":"hex.svg","erc20":true,"symbol":"HEX","decimals":8},"0xFca59Cd816aB1eaD66534D82bc21E7515cE441CF":{"name":"Rarible","logo":"rari.svg","erc20":true,"symbol":"RARI","decimals":18},"0x7865af71cf0b288b4E7F654f4F7851EB46a2B7F8":{"name":"Sentivate","logo":"sentivate.svg","erc20":true,"symbol":"SNTVT","decimals":18},"0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e":{"name":"Metronome","logo":"metronome.svg","erc20":true,"symbol":"MET","decimals":18},"0x49d716DFe60b37379010A75329ae09428f17118d":{"name":"PoolTogether Dai","logo":"pldai.svg","erc20":true,"symbol":"PLDAI","decimals":18},"0xfE6892654CBB05eB73d28DCc1Ff938f59666Fe9f":{"name":"PoolTogether Sai","logo":"plsai.svg","erc20":true,"symbol":"PLSAI","decimals":18},"0x5732046A883704404F284Ce41FfADd5b007FD668":{"name":"Bluzelle Token","logo":"Bluzelle.svg","erc20":true,"symbol":"BLZ","decimals":18},"0xBD87447F48ad729C5c4b8bcb503e1395F62e8B98":{"name":"PoolTogether USDC","logo":"plusdc.svg","erc20":true,"symbol":"PLUSDC","decimals":6},"0x69A95185ee2a045CDC4bCd1b1Df10710395e4e23":{"name":"$Poolz Finance","logo":"Poolz.svg","erc20":true,"symbol":"POOLZ","decimals":18},"0x0adA190c81b814548ddC2F6AdC4a689ce7C1FE73":{"name":"yAxis","logo":"yaxis.svg","erc20":true,"symbol":"YAXIS","decimals":18},"0xb1dC9124c395c1e97773ab855d66E879f053A289":{"name":"yAxis","logo":"yaxis.svg","erc20":true,"symbol":"YAX","decimals":18},"0xeF31Cb88048416E301Fee1eA13e7664b887BA7e8":{"name":"Staked yAxis","logo":"yaxis.svg","erc20":true,"symbol":"sYAX","decimals":18},"0x28cb7e841ee97947a86B06fA4090C8451f64c0be":{"name":"YF Link","logo":"YFL.svg","erc20":true,"symbol":"YFL","decimals":18},"0x75D1aA733920b14fC74c9F6e6faB7ac1EcE8482E":{"name":"YFLink Staking Share","logo":"YFL.svg","erc20":true,"symbol":"yYFL","decimals":18},"0x7b760D06E401f85545F3B50c44bf5B05308b7b62":{"name":"YFLink USD","logo":"YFLUSD.svg","erc20":true,"symbol":"YFLUSD","decimals":18},"0x8282df223AC402d04B2097d16f758Af4F70e7Db0":{"name":"YFLink Synthetic","logo":"sYFL.svg","erc20":true,"symbol":"sYFL","decimals":18},"0x008377EB0C62cE8e0BA3D7Bb4A5638591f21588E":{"name":"YFLink Bond","logo":"bYFL.svg","erc20":true,"symbol":"bYFL","decimals":18},"0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e":{"name":"yearn.finance","logo":"yfi.svg","erc20":true,"symbol":"YFI","decimals":18},"0x261b45D85cCFeAbb11F022eBa346ee8D1cd488c0":{"name":"rDAI","logo":"rdai.svg","erc20":true,"symbol":"rDAI","decimals":18},"0xea8b224eDD3e342DEb514C4176c2E72Bcce6fFF9":{"name":"rSAI","logo":"rsai.svg","erc20":true,"symbol":"rSAI","decimals":18},"0x12B19D3e2ccc14Da04FAe33e63652ce469b3F2FD":{"name":"GridPlus","logo":"GridPlus.svg","erc20":true,"symbol":"GRID","decimals":12},"0xDb05EA0877A2622883941b939f0bb11d1ac7c400":{"name":"Opacity","logo":"opct.svg","erc20":true,"symbol":"OPCT","decimals":18},"0x4575f41308EC1483f3d399aa9a2826d74Da13Deb":{"name":"Orchid","logo":"OXT.svg","erc20":true,"symbol":"OXT","decimals":18},"0x4CC19356f2D37338b9802aa8E8fc58B0373296E7":{"name":"Selfkey","logo":"KEY.svg","erc20":true,"symbol":"KEY","decimals":18},"0x92A5B04D0ED5D94D7a193d1d334D3D16996f4E13":{"name":"Eristica","logo":"Eristica.svg","erc20":true,"symbol":"ERT","decimals":18},"0xdAC17F958D2ee523a2206206994597C13D831ec7":{"name":"Tether USD","logo":"usdt.svg","erc20":true,"symbol":"USDT","decimals":6},"0x06AF07097C9Eeb7fD685c692751D5C66dB49c215":{"name":"Chai","logo":"CHAI.svg","erc20":true,"symbol":"CHAI","decimals":18},"0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828":{"name":"UMA","logo":"UMA.png","erc20":true,"symbol":"UMA","decimals":18},"0x5f778ec4B31a506c1Dfd8b06F131E9B451a61D39":{"name":"UPX Token","logo":"UPX.svg","erc20":true,"symbol":"UPX","decimals":18},"0xb1CD6e4153B2a390Cf00A6556b0fC1458C4A5533":{"name":"ETHBNT Liquidity Pool","logo":"ETHBNT.svg","erc20":true,"symbol":"ETHBNT","decimals":18},"0xf0Ee6b27b759C9893Ce4f094b49ad28fd15A23e4":{"name":"Enigma","logo":"enigma.svg","erc20":true,"symbol":"ENG","decimals":18},"0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d":{"name":"Celsius","logo":"celsius.svg","erc20":true,"symbol":"CEL","decimals":4},"0xb683D83a532e2Cb7DFa5275eED3698436371cc9f":{"name":"BTU","logo":"BTU.svg","erc20":true,"symbol":"BTU","decimals":18},"0x746DdA2ea243400D5a63e0700F190aB79f06489e":{"name":"BOSAGORA","logo":"BOA.svg","erc20":true,"symbol":"BOA","decimals":7},"0x5D858bcd53E085920620549214a8b27CE2f04670":{"name":"POP Network Token","logo":"POP.svg","erc20":true,"symbol":"POP","decimals":18},"0x048Fe49BE32adfC9ED68C37D32B5ec9Df17b3603":{"name":"Skrumble Network V2","logo":"skm.svg","erc20":true,"symbol":"SKM","decimals":18},"0x16EA01aCB4b0Bca2000ee5473348B6937ee6f72F":{"name":"Enecuum","logo":"ENQ-logo.svg","erc20":true,"symbol":"ENQ","decimals":10},"0xE5B826Ca2Ca02F09c1725e9bd98d9a8874C30532":{"name":"ZEON Network","logo":"ZEON_logo.png","erc20":true,"symbol":"ZEON","decimals":18},"0x13cb85823f78Cff38f0B0E90D3e975b8CB3AAd64":{"name":"REMIIT REMI Token","logo":"remi.svg","erc20":true,"symbol":"REMI","decimals":18},"0x93a7174dafd31d13400cD9fa01f4e5B5BAa00D39":{"name":"Shaka","logo":"hak.svg","erc20":true,"symbol":"HAK","decimals":18},"0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69":{"name":"IoTeX","logo":"iotex.svg","erc20":true,"symbol":"IOTX","decimals":18},"0xE5a3229CCb22b6484594973A03a3851dCd948756":{"name":"RAE Token","logo":"rae.svg","erc20":true,"symbol":"RAE","decimals":18},"0x4470BB87d77b963A013DB939BE332f927f2b992e":{"name":"AdEx Legacy Token","logo":"adex.svg","erc20":true,"symbol":"ADXL","decimals":4},"0xADE00C28244d5CE17D72E40330B1c318cD12B7c3":{"name":"AdEx Token","logo":"adex.svg","erc20":true,"symbol":"ADX","decimals":18},"0xDc5864eDe28BD4405aa04d93E05A0531797D9D59":{"name":"Falcon","logo":"fnt.svg","erc20":true,"symbol":"FNT","decimals":6},"0x1966d718A565566e8E202792658D7b5Ff4ECe469":{"name":"nDEX","logo":"nDEX.png","erc20":true,"symbol":"NDX","decimals":18},"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599":{"name":"Wrapped BTC","logo":"wbtc.svg","erc20":true,"symbol":"WBTC","decimals":8},"0x150b0b96933B75Ce27af8b92441F8fB683bF9739":{"name":"Dragonereum Gold","logo":"gold.svg","erc20":true,"symbol":"GOLD","decimals":18},"0x82f4dED9Cec9B5750FBFf5C2185AEe35AfC16587":{"name":"DreamTeam Token","logo":"dream.svg","erc20":true,"symbol":"DREAM","decimals":6},"0x5d60d8d7eF6d37E16EBABc324de3bE57f135e0BC":{"name":"MyBit","logo":"MYB.svg","erc20":true,"symbol":"MYB","decimals":18},"0x01FA555c97D7958Fa6f771f3BbD5CCD508f81e22":{"name":"Civil Token","logo":"CVL_token.svg","erc20":true,"symbol":"CVL","decimals":18},"0x5adc961D6AC3f7062D2eA45FEFB8D8167d44b190":{"name":"Dether","logo":"dether.svg","erc20":true,"symbol":"DTH","decimals":18},"0x3F17Dd476faF0a4855572F0B6ed5115D9bBA22AD":{"name":"Wibson","logo":"wibson-logo.png","erc20":true,"symbol":"WIB","decimals":9},"0xDF347911910b6c9A4286bA8E2EE5ea4a39eB2134":{"name":"Bob\'s Repair","logo":"bobsrepair.png","erc20":true,"symbol":"BOB","decimals":18},"0x3505F494c3f0fed0B594E01Fa41Dd3967645ca39":{"name":"SWARM","logo":"swarm.svg","erc20":true,"symbol":"SWM","decimals":18},"0x6863bE0e7CF7ce860A574760e9020D519a8bDC47":{"name":"On.Live","logo":"onlive.svg","erc20":true,"symbol":"ONL","decimals":18},"0xea5f88E54d982Cbb0c441cde4E79bC305e5b43Bc":{"name":"Pareto","logo":"ParetoLogo.png","erc20":true,"symbol":"PARETO","decimals":18},"0x2e91E3e54C5788e9FdD6A181497FDcEa1De1bcc1":{"name":"Hercules","logo":"herc.png","erc20":true,"symbol":"HERC","decimals":18},"0x4946Fcea7C692606e8908002e55A582af44AC121":{"name":"FOAM","logo":"FOAM.svg","erc20":true,"symbol":"FOAM","decimals":18},"0x4D807509aECe24C0fa5A102b6a3B059Ec6E14392":{"name":"Menlo One","logo":"Menlo_One.png","erc20":true,"symbol":"ONE","decimals":18},"0xDDD460bBD9F79847ea08681563e8A9696867210C":{"name":"Spendcoin","logo":"spnd.png","erc20":true,"symbol":"SPND","decimals":18},"0x27054b13b1B798B345b591a4d22e6562d47eA75a":{"name":"AirSwap Token","logo":"AST.png","erc20":true,"symbol":"AST","decimals":4},"0x8D5682941cE456900b12d47ac06a88b47C764CE1":{"name":"RightMesh Token","logo":"Rmesh.png","erc20":true,"symbol":"RMESH","decimals":18},"0xDDe12a12A6f67156e0DA672be05c374e1B0a3e57":{"name":"JOYSO","logo":"JOY.png","erc20":true,"symbol":"JOY","decimals":6},"0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4":{"name":"JET8 Token","logo":"J8T.svg","erc20":true,"symbol":"J8T","decimals":8},"0x4a220E6096B25EADb88358cb44068A3248254675":{"name":"Quant Network","logo":"quant-network.svg","erc20":true,"symbol":"QNT","decimals":18},"0xBC86727E770de68B1060C91f6BB6945c73e10388":{"name":"Ink Protocol","logo":"ink_protocol.svg","erc20":true,"symbol":"XNK","decimals":18},"0x4CEdA7906a5Ed2179785Cd3A40A69ee8bc99C466":{"name":"Aion Network","logo":"Aion.png","erc20":true,"symbol":"AION","decimals":8},"0xa95592DCFfA3C080B4B40E459c5f5692F67DB7F8":{"name":"ELY Token","logo":"ely.png","erc20":true,"symbol":"ELY","decimals":18},"0x9E46A38F5DaaBe8683E10793b06749EEF7D733d1":{"name":"PolySwarm Nectar","logo":"polyswarm_nectar.svg","erc20":true,"symbol":"NCT","decimals":18},"0xe1A178B681BD05964d3e3Ed33AE731577d9d96dD":{"name":"BOX Token","logo":"box_token.png","erc20":true,"symbol":"BOX","decimals":18},"0x82BD526bDB718C6d4DD2291Ed013A5186cAE2DCa":{"name":"dutyof.care Token","logo":"dutyof.care-square.png","erc20":true,"symbol":"VDOC","decimals":18},"0x168296bb09e24A88805CB9c33356536B980D3fC5":{"name":"Rhoc","logo":"rchain.png","erc20":true,"symbol":"RHOC","decimals":8},"0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf":{"name":"DAOstack","logo":"DAOstack.png","erc20":true,"symbol":"GEN","decimals":18},"0x6aEDbF8dFF31437220dF351950Ba2a3362168d1b":{"name":"Dragonglass","logo":"dragonglass.svg","erc20":true,"symbol":"DGS","decimals":8},"0xd26114cd6EE289AccF82350c8d8487fedB8A0C07":{"name":"OmiseGO","logo":"omg.jpg","erc20":true,"symbol":"OMG","decimals":18},"0x99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d":{"name":"Quantstamp","logo":"qsp.svg","erc20":true,"symbol":"QSP","decimals":18},"0x4162178B78D6985480A308B2190EE5517460406D":{"name":"Colu Local Network","logo":"cln.png","erc20":true,"symbol":"CLN","decimals":18},"0xB64ef51C888972c908CFacf59B47C1AfBC0Ab8aC":{"name":"Storj","logo":"storj.jpg","erc20":true,"symbol":"STORJ","decimals":8},"0xD8E3FB3b08eBA982F2754988d70D57eDc0055ae6":{"name":"Zoracles","logo":"ZORA.svg","erc20":true,"symbol":"ZORA","decimals":9},"0xF938424F7210f31dF2Aee3011291b658f872e91e":{"name":"VISOR","logo":"VISR.svg","erc20":true,"symbol":"VISR","decimals":18},"0x0F5D2fB29fb7d3CFeE444a200298f468908cC942":{"name":"Decentraland","logo":"mana.svg","erc20":true,"symbol":"MANA","decimals":18},"0x0F513fFb4926ff82D7F60A05069047AcA295C413":{"name":"CrowdstartCoin","logo":"XSC_Logo.svg","erc20":true,"symbol":"XSC","decimals":18},"0x5BC7e5f0Ab8b2E10D2D0a3F21739FCe62459aeF3":{"name":"Hut34 Entropy Token","logo":"ENTRP.png","symbol":"ENTRP","erc20":true,"decimals":18},"0xEBBdf302c940c6bfd49C6b165f457fdb324649bc":{"name":"Hydro","logo":"hydro.png","erc20":true,"symbol":"HYDRO","decimals":18},"0x2604FA406Be957E542BEb89E6754fCdE6815e83f":{"name":"Playkey Token","logo":"playkey.svg","erc20":true,"symbol":"PKT","decimals":18},"0xE41d2489571d322189246DaFA5ebDe1F4699F498":{"name":"0x","logo":"zrx.svg","erc20":true,"symbol":"ZRX","decimals":18},"0xB563300A3BAc79FC09B93b6F84CE0d4465A2AC27":{"name":"RedCab","logo":"redcab.png","erc20":true,"symbol":"REDC","decimals":18},"0x957c30aB0426e0C93CD8241E2c60392d08c6aC8e":{"name":"Modum Token","logo":"modum.svg","erc20":true,"symbol":"MOD","decimals":0},"0x1a7a8BD9106F2B8D977E08582DC7d24c723ab0DB":{"name":"AppCoins","logo":"appcoins.png","erc20":true,"decimals":18,"symbol":"APPC"},"0xdB25f211AB05b1c97D595516F45794528a807ad8":{"name":"STASIS EURS Token","logo":"stasis-eurs.svg","erc20":true,"decimals":2,"symbol":"EURS"},"0xCA0e7269600d353F70b14Ad118A49575455C0f2f":{"name":"AMLT","logo":"amlt.png","erc20":true,"decimals":18,"symbol":"AMLT"},"0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F":{"name":"Synthetix Network Token","logo":"synthetix.svg","erc20":true,"decimals":18,"symbol":"SNX"},"0x57Ab1ec28D129707052df4dF418D58a2D46d5f51":{"name":"Synth sUSD","logo":"synthetix_susd.svg","erc20":true,"decimals":18,"symbol":"SUSD"},"0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb":{"name":"Synth sETH","logo":"synthetix_seth.svg","erc20":true,"decimals":18,"symbol":"SETH"},"0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6":{"name":"Synth sBTC","logo":"synthetix_sbtc.svg","erc20":true,"decimals":18,"symbol":"SBTC"},"0x0DB8D8b76BC361bAcbB72E2C491E06085A97Ab31":{"name":"IQeon","logo":"iqeon.svg","erc20":true,"decimals":18,"symbol":"IQN"},"0x000C100050E98C91f9114fa5Dd75CE6869Bf4F53":{"name":"CRYPTO10 Hedged","logo":"c10.svg","erc20":true,"symbol":"C10","decimals":18},"0x26E75307Fc0C021472fEb8F727839531F112f317":{"name":"Crypto20","logo":"c20.svg","erc20":true,"symbol":"C20","decimals":18},"0x06012c8cf97BEaD5deAe237070F9587f8E7A266d":{"name":"Crypto Kitties","logo":"CryptoKitties-Kitty-13733.svg","erc20":false,"erc721":true,"symbol":"CK","decimals":0},"0xE477292f1B3268687A29376116B0ED27A9c76170":{"name":"Herocoin","logo":"herocoin_logo.png","erc20":true,"symbol":"PLAY","decimals":18},"0x4F4f0Db4de903B88f2B1a2847971E231D54F8fd3":{"name":"Geens Platform Token","logo":"gee-icon.svg","erc20":true,"symbol":"GEE","decimals":8},"0xec67005c4E498Ec7f55E092bd1d35cbC47C91892":{"name":"Melon","logo":"mln.jpg","erc20":true,"symbol":"MLN","decimals":18},"0xba2184520A1cC49a6159c57e61E1844E085615B6":{"name":"HelloGold Token","logo":"hgt.png","erc20":true,"symbol":"HGT","decimals":8},"0xeAb43193CF0623073Ca89DB9B712796356FA7414":{"name":"GOLDX","logo":"goldx.png","erc20":true,"symbol":"GOLDX","decimals":18},"0x8727c112C712c4a03371AC87a74dD6aB104Af768":{"name":"Jetcoin Institute Token","logo":"JETCOIN28.png","erc20":true,"symbol":"JET","decimals":18},"0xf8e386EDa857484f5a12e4B5DAa9984E06E73705":{"name":"Indorse Token","logo":"indorseLogo.jpg","erc20":true,"symbol":"IND","decimals":18},"0xA54ddC7B3CcE7FC8b1E3Fa0256D0DB80D2c10970":{"name":"NEVERDIE Coin","logo":"ndc.png","erc20":true,"symbol":"NDC","decimals":18},"0x1c4481750daa5Ff521A2a7490d9981eD46465Dbd":{"name":"BlockMason Credit Protocol Token","logo":"bcpt.svg","erc20":true,"symbol":"BCPT","decimals":18},"0x20F7A3DdF244dc9299975b4Da1C39F8D5D75f05A":{"name":"Sapien Network Token","logo":"spn.svg","erc20":true,"symbol":"SPN","decimals":6},"0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0":{"name":"Loom Network Token","logo":"loom.svg","erc20":true,"symbol":"LOOM","decimals":18},"0x4F9254C83EB525f9FCf346490bbb3ed28a81C667":{"name":"Celer Network Token","logo":"CELR.svg","erc20":true,"symbol":"CELR","decimals":18},"0x71D01dB8d6a2fBEa7f8d434599C237980C234e4C":{"name":"Gladius","logo":"gladius.svg","erc20":true,"symbol":"GLA","decimals":8},"0xdd974D5C2e2928deA5F71b9825b8b646686BD200":{"name":"Kyber Network Crystal","logo":"kyber.svg","erc20":true,"symbol":"KNC","decimals":18},"0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C":{"name":"Bancor Network Token","logo":"bancor.png","erc20":true,"symbol":"BNT","decimals":18},"0xfa05A73FfE78ef8f1a739473e462c54bae6567D9":{"name":"Lunyr Token","logo":"lun.png","erc20":true,"symbol":"LUN","decimals":18},"0xC741f06082AA47F93729070aD0dD95E223Bda091":{"name":"LEDU Token","logo":"edu.svg","erc20":true,"symbol":"LEDU","decimals":8},"0x5c543e7AE0A1104f78406C340E9C64FD9fCE5170":{"name":"vSlice","logo":"vslice.png","erc20":true,"symbol":"VSL","decimals":18},"0x1f41E42D0a9e3c0Dd3BA15B527342783B43200A9":{"name":"Blockchain Capital","logo":"bcap.svg","erc20":true,"symbol":"BCAP","decimals":0},"0x6531f133e6DeeBe7F2dcE5A0441aA7ef330B4e53":{"name":"Chronobank TIME","logo":"chronobank.png","erc20":true,"symbol":"TIME","decimals":8},"0xE7775A6e9Bcf904eb39DA2b68c5efb4F9360e08C":{"name":"Token-as-a-Service","logo":"taas-ico.png","erc20":true,"symbol":"TAAS","decimals":6},"0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a":{"name":"Monolith TKN","logo":"tkn.svg","erc20":true,"symbol":"TKN","decimals":8},"0x08711D3B02C8758F2FB3ab4e80228418a7F8e39c":{"name":"Edgeless","logo":"edgeless.jpg","erc20":true,"symbol":"EDG","decimals":0},"0xf7B098298f7C69Fc14610bf71d5e02c60792894C":{"name":"Guppy","logo":"guppy.png","erc20":true,"symbol":"GUP","decimals":3},"0x4DF812F6064def1e5e029f1ca858777CC98D2D81":{"name":"Xaurum","logo":"xaurum_logo.svg","erc20":true,"symbol":"XAUR","decimals":8},"0xB9e7F8568e08d5659f5D29C4997173d84CdF2607":{"name":"Swarm City Token","logo":"swt.jpg","erc20":true,"symbol":"SWT","decimals":18},"0xCb94be6f13A1182E4A4B6140cb7bf2025d28e41B":{"name":"Trustcoin","logo":"trustcoin.jpg","erc20":true,"symbol":"TRST","decimals":6},"0x960b236A07cf122663c4303350609A66A7B288C0":{"name":"Aragon Network Token v1","logo":"antv1.svg","erc20":true,"symbol":"ANTv1","decimals":18},"0x667088b212ce3d06a1b553a7221E1fD19000d9aF":{"name":"WINGS","logo":"wings_logo.svg","erc20":true,"symbol":"WINGS","decimals":18},"0x16484d73Ac08d2355F466d448D2b79D2039F6EBB":{"name":"KnoxsterCoin","logo":"FortKnoxster.svg","erc20":true,"symbol":"FKX","decimals":18},"0xAf30D2a7E90d7DC361c8C4585e9BB7D2F6f15bc7":{"name":"FirstBlood Token","logo":"1st.svg","erc20":true,"symbol":"1ST","decimals":18},"0x607F4C5BB672230e8672085532f7e901544a7375":{"name":"iExec RLC Token","logo":"rlc.svg","erc20":true,"symbol":"RLC","decimals":9},"0xaeC2E87E0A235266D9C5ADc9DEb4b2E29b54D009":{"name":"SingularDTV","logo":"singulardtv.svg","erc20":true,"symbol":"SNGLS","decimals":0},"0x888666CA69E0f178DED6D75b5726Cee99A87D698":{"name":"ICONOMI","logo":"iconomi.png","erc20":true,"symbol":"ICN","decimals":18},"0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A":{"name":"Digix","logo":"DGD.png","erc20":true,"symbol":"DGD","decimals":9},"0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2":{"name":"Maker","logo":"mkr.svg","erc20":true,"symbol":"MKR","decimals":18},"0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359":{"name":"Sai Stablecoin v1.0","logo":"sai.svg","erc20":true,"symbol":"SAI","decimals":18},"0x6B175474E89094C44Da98b954EedeAC495271d0F":{"name":"Dai Stablecoin","logo":"dai.svg","erc20":true,"symbol":"DAI","decimals":18},"0xC477D038d5420C6A9e0b031712f61c5120090de9":{"name":"Boson Token","logo":"boson.svg","erc20":true,"symbol":"BOSON","decimals":18},"0xD46bA6D942050d489DBd938a2C909A5d5039A161":{"name":"Ampleforth","logo":"ampl.svg","erc20":true,"symbol":"AMPL","decimals":9},"0xDF2C7238198Ad8B389666574f2d8bc411A4b7428":{"name":"Mainframe Token","logo":"Mainframe.png","erc20":true,"symbol":"MFT","decimals":18},"0x0D8775F648430679A709E98d2b0Cb6250d2887EF":{"name":"Basic Attention Token","logo":"bat.svg","erc20":true,"symbol":"BAT","decimals":18},"0x4D8fc1453a0F359e99c9675954e656D80d996FbF":{"name":"BEE Token","logo":"bee_token.svg","erc20":true,"symbol":"BEE","decimals":18},"0x6810e776880C02933D47DB1b9fc05908e5386b96":{"name":"Gnosis Token","logo":"gnosis.svg","erc20":true,"symbol":"GNO","decimals":18},"0x514910771AF9Ca656af840dff83E8264EcF986CA":{"name":"Chainlink Token","logo":"chainlink.svg","erc20":true,"symbol":"LINK","decimals":18},"0xD8912C10681D8B21Fd3742244f44658dBA12264E":{"name":"Pluton","logo":"plutus-god.svg","erc20":true,"symbol":"PLU","decimals":18},"0x1985365e9f78359a9B6AD760e32412f4a445E862":{"name":"Reputation Old","logo":"rep.svg","erc20":true,"symbol":"REP","decimals":18},"0x221657776846890989a759BA2973e427DfF5C9bB":{"name":"Reputation","logo":"repv2.svg","erc20":true,"symbol":"REPv2","decimals":18},"0xd0929d411954c47438dc1d871dd6081F5C5e149c":{"name":"Refereum","logo":"rfr.svg","erc20":true,"symbol":"RFR","decimals":4},"0xb0866289e870D2efc282406cF4123Df6E5BcB652":{"name":"NoFakeCoin","logo":"nfticon.png","erc20":true,"symbol":"NFC","decimals":18},"0x2C4e8f2D746113d0696cE89B35F0d8bF88E0AEcA":{"name":"Open Simple Token","logo":"OST.svg","erc20":true,"symbol":"OST","decimals":18},"0x408e41876cCCDC0F92210600ef50372656052a38":{"name":"Republic Token","logo":"ren.svg","erc20":true,"symbol":"REN","decimals":18},"0xEB4C2781e4ebA804CE9a9803C67d0893436bB27D":{"name":"renBTC","logo":"renBTC.svg","erc20":true,"symbol":"renBTC","decimals":8},"0x1C5db575E2Ff833E46a2E9864C22F4B22E0B37C2":{"name":"renZEC","logo":"renZEC.svg","erc20":true,"symbol":"renZEC","decimals":8},"0x459086F2376525BdCebA5bDDA135e4E9d3FeF5bf":{"name":"renBCH","logo":"renBCH.svg","erc20":true,"symbol":"renBCH","decimals":8},"0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5":{"name":"renFIL","logo":"renFIL.svg","erc20":true,"symbol":"renFIL","decimals":18},"0xa74476443119A942dE498590Fe1f2454d7D4aC0d":{"name":"Golem Network Token","logo":"golem.svg","erc20":true,"symbol":"GNT","decimals":18},"0x6888a16eA9792c15A4DCF2f6C623D055c8eDe792":{"name":"Spectiv Signal Token","logo":"spectiv.svg","erc20":true,"symbol":"SIG","decimals":18},"0x9a642d6b3368ddc662CA244bAdf32cDA716005BC":{"name":"Qtum","logo":"qtum_28.png","erc20":true,"decimals":18,"symbol":"QTUM"},"0x1234567461d3f8Db7496581774Bd869C83D51c93":{"name":"BitClave","logo":"bitclave.svg","erc20":true,"decimals":18,"symbol":"CAT"},"0x7d4b8Cce0591C9044a22ee543533b72E976E36C3":{"name":"Change","logo":"change.svg","erc20":true,"decimals":18,"symbol":"CAG"},"0x1d462414fe14cf489c7A21CaC78509f4bF8CD7c0":{"name":"CanYaCoin","logo":"CanYa.svg","erc20":true,"decimals":6,"symbol":"CAN"},"0x6090A6e47849629b7245Dfa1Ca21D94cd15878Ef":{"name":"ENS Registrar","logo":"ens.svg"},"0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244":{"name":"Rivetz","logo":"rivetz.png","erc20":true,"decimals":18,"symbol":"RVT"},"0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff":{"name":"Project Wyvern Token","logo":"wyvern-logo.svg","erc20":true,"symbol":"WYV","decimals":18},"0xfec0cF7fE078a500abf15F1284958F22049c2C7e":{"name":"Maecenas ART Token","logo":"Maecenas.jpg","erc20":true,"symbol":"ART","decimals":18},"0x05f4a42e251f2d52b8ed15E9FEdAacFcEF1FAD27":{"name":"Zilliqa","logo":"zilliqa.svg","erc20":true,"symbol":"ZIL","decimals":12},"0x986EE2B944c42D017F52Af21c4c69B84DBeA35d8":{"name":"BitMartToken","logo":"bitmart.png","erc20":true,"symbol":"BMX","decimals":18},"0x2af47a65da8CD66729b4209C22017d6A5C2d2400":{"name":"StandardBounties","logo":"StandardBounties.png"},"0xF03f8D65BaFA598611C3495124093c56e8F638f0":{"name":"Viewly","logo":"viewly.svg","erc20":true,"symbol":"VIEW","decimals":18},"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2":{"name":"Wrapped Ether","logo":"weth.png","erc20":true,"symbol":"WETH","decimals":18},"0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E":{"name":"Compound Basic Attention Token","logo":"ctoken-bat.svg","erc20":true,"symbol":"cBAT","decimals":8},"0x70e36f6BF80a52b3B46b3aF8e106CC0ed743E8e4":{"name":"Compound Collateral","logo":"ctoken-comp.svg","erc20":true,"symbol":"cCOMP","decimals":8},"0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643":{"name":"Compound Dai","logo":"ctoken-dai.svg","erc20":true,"symbol":"cDAI","decimals":8},"0xF5DCe57282A584D2746FaF1593d3121Fcac444dC":{"name":"Compound Sai (Legacy Dai)","logo":"ctoken-sai.svg","erc20":true,"symbol":"cSAI","decimals":8},"0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5":{"name":"Compound Ether","logo":"ctoken-eth.svg","erc20":true,"symbol":"cETH","decimals":8},"0x158079Ee67Fce2f58472A96584A73C7Ab9AC95c1":{"name":"Compound Augur","logo":"ctoken-rep.svg","erc20":true,"symbol":"cREP","decimals":8},"0x39AA39c021dfbaE8faC545936693aC917d5E7563":{"name":"Compound USD Coin","logo":"ctoken-usdc.svg","erc20":true,"symbol":"cUSDC","decimals":8},"0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9":{"name":"Compound Tether","logo":"ctoken-usdt.svg","erc20":true,"symbol":"cUSDT","decimals":8},"0xC11b1268C1A384e55C48c2391d8d480264A3A7F4":{"name":"Compound Wrapped BTC","logo":"ctoken-wbtc.svg","erc20":true,"symbol":"cWBTC","decimals":8},"0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407":{"name":"Compound 0x","logo":"ctoken-zrx.svg","erc20":true,"symbol":"cZRX","decimals":8},"0xc00e94Cb662C3520282E6f5717214004A7f26888":{"name":"Compound","logo":"comp.svg","erc20":true,"symbol":"COMP","decimals":18},"0xFFE02ee4C69eDf1b340fCaD64fbd6b37a7b9e265":{"name":"NANJCOIN","logo":"nanjcoin.svg","erc20":true,"symbol":"NANJ","decimals":8},"0xB6eD7644C69416d67B522e20bC294A9a9B405B31":{"name":"0xBitcoin Token","logo":"0xbitcoin.svg","erc20":true,"symbol":"0xBTC","decimals":8},"0x744d70FDBE2Ba4CF95131626614a1763DF805B9E":{"name":"Status Network Token","logo":"snt.svg","erc20":true,"symbol":"SNT","decimals":18},"0x42d6622deCe394b54999Fbd73D108123806f6a18":{"name":"SPANK","logo":"SPANK.png","erc20":true,"symbol":"SPANK","decimals":18},"0x6B01c3170ae1EFEBEe1a3159172CB3F7A5ECf9E5":{"name":"BOOTY","logo":"booty.png","erc20":true,"symbol":"BOOTY","decimals":18},"0x4a6058666cf1057eaC3CD3A5a614620547559fc9":{"name":"Brickblock","logo":"Brickblock.svg","erc20":true,"symbol":"BBK","decimals":18},"0x80fB784B7eD66730e8b1DBd9820aFD29931aab03":{"name":"ETHLend Token","logo":"lend.svg","erc20":true,"symbol":"LEND","decimals":18},"0x48FF53777F747cFB694101222a944dE070c15D36":{"name":"Ether Kingdoms Token","logo":"IMP.svg","erc20":true,"symbol":"IMP","decimals":7},"0x02F61Fd266DA6E8B102D4121f5CE7b992640CF98":{"name":"LikeCoin","logo":"like.svg","erc20":true,"symbol":"LIKE","decimals":18},"0xB8c77482e45F1F44dE1745F52C74426C631bDD52":{"name":"Binance Coin","logo":"bnb.png","erc20":true,"symbol":"BNB","decimals":18},"0xD850942eF8811f2A866692A623011bDE52a462C1":{"name":"VeChain","logo":"ven.svg","erc20":true,"symbol":"VEN","decimals":18},"0xb5A5F22694352C15B00323844aD545ABb2B11028":{"name":"ICON","logo":"icon-icx-logo.png","erc20":true,"symbol":"ICX","decimals":18},"0x91Af0fBB28ABA7E31403Cb457106Ce79397FD4E6":{"name":"Aergo","logo":"Aergo.svg","erc20":true,"symbol":"AERGO","decimals":18},"0x5CA9a71B1d01849C0a95490Cc00559717fCF0D1d":{"name":"Aeternity","logo":"aeternity.svg","erc20":true,"symbol":"AE","decimals":18},"0xd4fa1460F537bb9085d22C7bcCB5DD450Ef28e3a":{"name":"Populous","logo":"FEATURED.POP_.png","erc20":true,"symbol":"PPT","decimals":8},"0xFA1a856Cfa3409CFa145Fa4e20Eb270dF3EB21ab":{"name":"IOST","logo":"iost.png","erc20":true,"symbol":"IOST","decimals":18},"0x039B5649A59967e3e936D7471f9c3700100Ee1ab":{"name":"Kucoin Shares","logo":"kucoin.svg","erc20":true,"symbol":"KCS","decimals":6},"0x3893b9422Cd5D70a81eDeFfe3d5A1c6A978310BB":{"name":"Mithril","logo":"mithril-featured.png","erc20":true,"symbol":"MITH","decimals":18},"0xb7cB1C96dB6B22b0D3d9536E0108d062BD488F74":{"name":"Walton","logo":"waltonchain.png","erc20":true,"symbol":"WTC","decimals":18},"0x1776e1F26f98b1A5dF9cD347953a26dd3Cb46671":{"name":"Numeraire","logo":"nmr.png","erc20":true,"symbol":"NMR","decimals":18},"0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd":{"name":"Gemini Dollar","logo":"gusd.svg","erc20":true,"symbol":"GUSD","decimals":2},"0xA4Bdb11dc0a2bEC88d24A3aa1E6Bb17201112eBe":{"name":"StableUSD","logo":"usds.svg","erc20":true,"symbol":"USDS","decimals":6},"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":{"name":"USD Coin","logo":"usdc.svg","erc20":true,"symbol":"USDC","decimals":6},"0x93ED3FBe21207Ec2E8f2d3c3de6e058Cb73Bc04d":{"name":"Pinakion Token","logo":"pinakion.svg","erc20":true,"symbol":"PNK","decimals":18},"0x419D0d8BdD9aF5e606Ae2232ed285Aff190E711b":{"name":"FunFair","logo":"fun.svg","erc20":true,"symbol":"FUN","decimals":8},"0xcA2796F9F61dc7b238Aab043971e49c6164DF375":{"name":"YGGDRASH YEED Token","logo":"yggdrash.svg","erc20":true,"symbol":"YEED","decimals":18},"0x03e3f0c25965f13DbbC58246738C183E27b26a56":{"name":"Disciplina Token","logo":"disciplina.svg","erc20":true,"symbol":"DSCP","decimals":18},"0xE814aeE960a85208C3dB542C53E7D4a6C8D5f60F":{"name":"Chronologic DAY Token","logo":"DAY.png","erc20":true,"symbol":"DAY","decimals":18},"0x7E43581b19ab509BCF9397a2eFd1ab10233f27dE":{"name":"PLATINUM","logo":"plat.png","erc20":true,"symbol":"PLAT","decimals":18},"0x8E870D67F660D95d5be530380D0eC0bd388289E1":{"name":"PAX Stablecoin","logo":"pax.svg","erc20":true,"symbol":"PAX","decimals":18},"0x45804880De22913dAFE09f4980848ECE6EcbAf78":{"name":"PAX Gold","logo":"paxg.svg","erc20":true,"symbol":"PAXG","decimals":18},"0x0000000000085d4780B73119b644AE5ecd22b376":{"name":"TrueUSD","logo":"TUSD.svg","erc20":true,"symbol":"TUSD","decimals":18},"0x4Fabb145d64652a948d72533023f6E7A623C7C53":{"name":"Binance USD","logo":"busd.svg","erc20":true,"symbol":"BUSD","decimals":18},"0x23Ccc43365D9dD3882eab88F43d515208f832430":{"name":"MidasProtocol","logo":"MAS.png","erc20":true,"symbol":"MAS","decimals":18},"0xC16b542ff490e01fcc0DC58a60e1EFdc3e357cA6":{"name":"ICE ROCK MINING","logo":"rock2.png","erc20":true,"symbol":"ROCK2","decimals":0},"0x6758B7d441a9739b98552B373703d8d3d14f9e62":{"name":"POA20 Token","logo":"POA20.png","erc20":true,"symbol":"POA20","decimals":18},"0x3DB6Ba6ab6F95efed1a6E794caD492fAAabF294D":{"name":"LTO Network Token","logo":"LTO.svg","erc20":true,"symbol":"LTO","decimals":8},"0xfeF4185594457050cC9c23980d301908FE057Bb1":{"name":"VIDT Datalink","logo":"VIDT.svg","erc20":true,"symbol":"VIDT","decimals":18},"0x7064aAb39A0Fcf7221c3396719D0917a65E35515":{"name":"Cpollo","logo":"Cpollo.svg","erc20":true,"symbol":"CPLO","decimals":18},"0xd8446236FA95b9b5f9fd0f8E7Df1a944823c683d":{"name":"NEEO","logo":"neeo.png","erc20":true,"symbol":"NEEO","decimals":18},"0xA823E6722006afe99E91c30FF5295052fe6b8E32":{"name":"Neumark","logo":"neu.svg","erc20":true,"symbol":"NEU","decimals":18},"0x0Cf0Ee63788A0849fE5297F3407f701E122cC023":{"name":"Streamr","logo":"streamr.svg","erc20":true,"symbol":"DATA","decimals":18},"0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b":{"name":"Crypto.com Chain","logo":"CRO.png","erc20":true,"symbol":"CRO","decimals":8},"0xF70a642bD387F94380fFb90451C2c81d4Eb82CBc":{"name":"STAR","logo":"starbase.png","erc20":true,"symbol":"STAR","decimals":18},"0x7C5A0CE9267ED19B22F8cae653F198e3E8daf098":{"name":"Santiment","logo":"santiment.svg","erc20":true,"symbol":"SAN","decimals":18},"0x58b6A8A3302369DAEc383334672404Ee733aB239":{"name":"Livepeer","logo":"livepeer.png","erc20":true,"symbol":"LPT","decimals":18},"0x6fe56C0bcdD471359019FcBC48863d6c3e9d4F41":{"name":"Props","logo":"props.png","erc20":true,"symbol":"PROPS","decimals":18},"0x6c6EE5e31d828De241282B9606C8e98Ea48526E2":{"name":"HoloToken","logo":"holotoken.png","erc20":true,"symbol":"HOT","decimals":18},"0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c":{"name":"Enjin Coin","logo":"enj.svg","erc20":true,"symbol":"ENJ","decimals":18},"0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e":{"name":"AELF","logo":"aelf.png","erc20":true,"symbol":"ELF","decimals":18},"0x39Bb259F66E1C59d5ABEF88375979b4D20D98022":{"name":"Wax","logo":"wax.png","erc20":true,"symbol":"WAX","decimals":8},"0x595832F8FC6BF59c85C527fEC3740A1b7a361269":{"name":"PowerLedger","logo":"power.png","erc20":true,"symbol":"POWR","decimals":6},"0x28dee01D53FED0Edf5f6E310BF8Ef9311513Ae40":{"name":"BlitzPredict","logo":"blitzpredict.svg","erc20":true,"symbol":"XBP","decimals":18},"0xFBeef911Dc5821886e1dda71586d90eD28174B7d":{"name":"KnownOrigin","logo":"knownorigin.svg","erc20":true,"symbol":"KODA","decimals":0},"0x8207c1FfC5B6804F6024322CcF34F29c3541Ae26":{"name":"Origin Protocol","logo":"originprotocol.png","erc20":true,"symbol":"OGN","decimals":18},"0x2A8e1E676Ec238d8A992307B495b45B3fEAa5e86":{"name":"Origin Dollar","logo":"ousd.svg","erc20":true,"symbol":"OUSD","decimals":18},"0x8f8221aFbB33998d8584A2B05749bA73c37a938a":{"name":"Request","logo":"request.svg","erc20":true,"symbol":"REQ","decimals":18},"0x2aEa4Add166EBf38b63d09a75dE1a7b94Aa24163":{"name":"Kudos","logo":"kudos.svg","erc20":false,"erc721":true,"symbol":"KDO","decimals":0},"0x14C926F2290044B647e1Bf2072e67B495eff1905":{"name":"Bethereum","logo":"bether.jpg","erc20":true,"symbol":"BETHER","decimals":18},"0x9AAb071B4129B083B01cB5A0Cb513Ce7ecA26fa5":{"name":"Hunt Token","logo":"hunt.png","erc20":true,"symbol":"HUNT","decimals":18},"0xFEF3884b603C33EF8eD4183346E093A173C94da6":{"name":"Metamorph","logo":"metamorph.svg","erc20":true,"symbol":"METM","decimals":18},"0x0AbdAce70D3790235af448C88547603b945604ea":{"name":"district0x","logo":"district0x.svg","erc20":true,"symbol":"DNT","decimals":18},"0x0C6144c16af288948C8fdB37fD8fEc94bfF3d1d9":{"name":"Neutral Dollar","logo":"neutraldollar.png","erc20":true,"symbol":"NUSD","decimals":6},"0xB26631c6dda06aD89B93C71400D25692de89c068":{"name":"Minds","logo":"minds.svg","erc20":true,"symbol":"MINDS","decimals":18},"0xBb1f24C0c1554b9990222f036b0AaD6Ee4CAec29":{"name":"CryptoSoul","logo":"SOUL.svg","erc20":true,"symbol":"SOUL","decimals":18},"0xFF0E5e014cf97e0615cb50F6f39Da6388E2FaE6E":{"name":"Origo","logo":"origo.svg","erc20":true,"symbol":"OGO","decimals":18},"0x0cB8D0B37C7487b11d57F1f33dEfA2B1d3cFccfE":{"name":"DANKToken","logo":"dank-logo.svg","erc20":true,"symbol":"DANK","decimals":18},"0x3a4f40631a4f906c2BaD353Ed06De7A5D3fCb430":{"name":"PlayDapp Token","logo":"playdapp.svg","erc20":true,"symbol":"PLA","decimals":18},"0xE9e3F9cfc1A64DFca53614a0182CFAD56c10624F":{"name":"Su Squares","logo":"Su-Squares.svg","erc20":false,"erc721":true,"symbol":"SU","decimals":0},"0xfA5047c9c78B8877af97BDcb85Db743fD7313d4a":{"name":"ROOK","logo":"Rook.svg","erc20":true,"symbol":"ROOK","decimals":18},"0xbE9375C6a420D2eEB258962efB95551A5b722803":{"name":"StormX Token","logo":"stormx.svg","erc20":true,"symbol":"STMX","decimals":18},"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0":{"name":"Matic Network Token","logo":"matic-network-logo.svg","erc20":true,"symbol":"MATIC","decimals":18},"0x9992eC3cF6A55b00978cdDF2b27BC6882d88D1eC":{"name":"Polymath","logo":"polymath_logo.svg","erc20":true,"symbol":"POLY","decimals":18},"0x0a50C93c762fDD6E56D86215C24AaAD43aB629aa":{"name":"LGO Token","logo":"lgo.png","erc20":true,"symbol":"LGO","decimals":8},"0xc8Cac7672f4669685817cF332a33Eb249F085475":{"name":"LivenCoin","logo":"LVN.svg","erc20":true,"symbol":"LVN","decimals":18},"0xBBbbCA6A901c926F240b89EacB641d8Aec7AEafD":{"name":"Loopring","logo":"LRC.svg","erc20":true,"symbol":"LRC","decimals":18},"0x255Aa6DF07540Cb5d3d297f0D0D4D84cb52bc8e6":{"name":"Raiden Network Token","logo":"raiden.svg","erc20":true,"symbol":"RDN","decimals":18},"0x66fD97a78d8854fEc445cd1C80a07896B0b4851f":{"name":"Lunch Money","logo":"LMY.svg","erc20":true,"symbol":"LMY","decimals":18},"0x679131F591B4f369acB8cd8c51E68596806c3916":{"name":"Trustlines Network Token","logo":"TLN128.png","erc20":true,"symbol":"TLN","decimals":18},"0xdcD85914b8aE28c1E62f1C488E1D968D5aaFfE2b":{"name":"TOP Network Token","logo":"TOP.svg","erc20":true,"symbol":"TOP","decimals":18},"0xaea46A60368A7bD060eec7DF8CBa43b7EF41Ad85":{"name":"Fetch","logo":"fetch.svg","erc20":true,"symbol":"FET","decimals":18},"0x2e1E15C44Ffe4Df6a0cb7371CD00d5028e571d14":{"name":"Mettalex","logo":"mettalex.svg","erc20":true,"symbol":"MTLX","decimals":18},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984":{"name":"Uniswap","logo":"uni.svg","erc20":true,"symbol":"UNI","decimals":18},"0x2e6539edc3b76f1E21B71d214527FAbA875F70F3":{"name":"Yearn Finance Dot","logo":"YFDOT.svg","erc20":true,"symbol":"YFDOT","decimals":18},"0x9F284E1337A815fe77D2Ff4aE46544645B20c5ff":{"name":"Darwinia Commitment Token","logo":"kton.svg","erc20":true,"symbol":"KTON","decimals":18},"0xE48972fCd82a274411c01834e2f031D4377Fa2c0":{"name":"TwoKeyEconomy","logo":"2key.svg","erc20":true,"symbol":"2KEY","decimals":18},"0x970B9bB2C0444F5E81e9d0eFb84C8ccdcdcAf84d":{"name":"Fuse Token","logo":"fuse.svg","erc20":true,"symbol":"FUSE","decimals":18},"0x0Ae055097C6d159879521C384F1D2123D1f195e6":{"name":"STAKE Token","logo":"stake.png","erc20":true,"symbol":"STAKE","decimals":18},"0x5dc60C4D5e75D22588FA17fFEB90A63E535efCE0":{"name":"dKargo","logo":"DKA.svg","erc20":true,"symbol":"DKA","decimals":18},"0x9469D013805bFfB7D3DEBe5E7839237e535ec483":{"name":"Darwinia Network Native Token","logo":"ring.svg","erc20":true,"symbol":"RING","decimals":18},"0xA31B1767e09f842ECFd4bc471Fe44F830E3891AA":{"name":"ROOBEE","logo":"ROOBEE.svg","erc20":true,"symbol":"ROOBEE","decimals":18},"0xC7e43A1c8E118aA2965F5EAbe0e718D83DB7A63C":{"name":"ZCore Token","logo":"zcrt.svg","erc20":true,"symbol":"ZCRT","decimals":18},"0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6":{"name":"Dentacoin Token","logo":"dcn.svg","erc20":true,"symbol":"DCN","decimals":0},"0xe2f2a5C287993345a840Db3B0845fbC70f5935a5":{"name":"mStable USD","logo":"mUSD.svg","erc20":true,"symbol":"mUSD","decimals":18},"0xa3BeD4E1c75D00fa6f4E5E6922DB7261B5E9AcD2":{"name":"Meta","logo":"MTA.svg","erc20":true,"symbol":"MTA","decimals":18},"0xe3818504c1B32bF1557b16C238B2E01Fd3149C17":{"name":"Pillar","logo":"plr.svg","erc20":true,"symbol":"PLR","decimals":18},"0xba100000625a3754423978a60c9317c58a424e3D":{"name":"Balancer (BAL)","logo":"balancer.svg","erc20":true,"symbol":"BAL","decimals":18},"0x8a854288a5976036A725879164Ca3e91d30c6A1B":{"name":"Guaranteed Entrance Token","logo":"get-logo.svg","erc20":true,"symbol":"GET","decimals":18},"0x2781246fe707bB15CeE3e5ea354e2154a2877B16":{"name":"Elysia","logo":"el.svg","erc20":true,"symbol":"EL","decimals":18},"0xc12d099be31567add4e4e4d0D45691C3F58f5663":{"name":"Auctus","logo":"auc.svg","erc20":true,"symbol":"AUC","decimals":18},"0xdF574c24545E5FfEcb9a659c229253D4111d87e1":{"name":"HUSD","logo":"HUSD.svg","erc20":true,"symbol":"HUSD","decimals":8},"0x2ecB13A8c458c379c4d9a7259e202De03c8F3D19":{"name":"Block-Chain.com Token","logo":"block-chain.svg","erc20":true,"symbol":"BC","decimals":18},"0x38e4adB44ef08F22F5B5b76A8f0c2d0dCbE7DcA1":{"name":"Concentrated Voting Power","logo":"PowerPool.svg","erc20":true,"symbol":"CVP","decimals":18},"0xa117000000f279D81A1D3cc75430fAA017FA5A2e":{"name":"Aragon Network Token","logo":"antv2.svg","erc20":true,"symbol":"ANT","decimals":18},"0xDecade1c6Bf2cD9fb89aFad73e4a519C867adcF5":{"name":"Experty Wisdom Token","logo":"wisdom-token.svg","erc20":true,"symbol":"WIS","decimals":18},"0x7D85e23014F84E6E21d5663aCD8751bEF3562352":{"name":"Axion Old","logo":"obsolete.svg","erc20":true,"symbol":"AXNv1","decimals":18},"0x358AA737e033F34df7c54306960a38d09AaBd523":{"name":"Ares Token","logo":"ares.svg","erc20":true,"symbol":"ARES","decimals":18},"0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206":{"name":"NEXO","logo":"NEXO.svg","erc20":true,"symbol":"NEXO","decimals":18},"0xE9E73E1aE76D17A16cC53E3e87a9a7dA78834d37":{"name":"Camp","logo":"Camp.svg","erc20":true,"symbol":"CAMP","decimals":18},"0xdacD69347dE42baBfAEcD09dC88958378780FB62":{"name":"Atari Token","logo":"atrilast.svg","erc20":true,"symbol":"ATRI","decimals":0},"0x71F85B2E46976bD21302B64329868fd15eb0D127":{"name":"Axion","logo":"axion.svg","erc20":true,"symbol":"AXN","decimals":18},"0xc944E90C64B2c07662A292be6244BDf05Cda44a7":{"name":"Graph Token","logo":"graphToken.svg","erc20":true,"symbol":"GRT","decimals":18},"0xFE3E6a25e6b192A42a44ecDDCd13796471735ACf":{"name":"Reef Finance","logo":"reef.svg","erc20":true,"symbol":"REEF","decimals":18},"0x43Dfc4159D86F3A37A5A4B3D4580b888ad7d4DDd":{"name":"DODO bird","logo":"DODO.svg","erc20":true,"symbol":"DODO","decimals":18},"0x4a615bB7166210CCe20E6642a6f8Fb5d4D044496":{"name":"NAOS Finance","logo":"naos.svg","erc20":true,"symbol":"NAOS","decimals":18},"0x111111111117dC0aa78b770fA6A738034120C302":{"name":"1INCH Token","logo":"1inch.svg","erc20":true,"symbol":"1INCH","decimals":18},"0x27702a26126e0B3702af63Ee09aC4d1A084EF628":{"name":"Aleph.im Token","logo":"aleph.svg","erc20":true,"symbol":"ALEPH","decimals":18},"0x32a7C02e79c4ea1008dD6564b35F131428673c41":{"name":"CRUST","logo":"crust.svg","erc20":true,"symbol":"CRU","decimals":18},"0x3472A5A71965499acd81997a54BBA8D852C6E53d":{"name":"BADGER","logo":"badger.svg","erc20":true,"symbol":"BADGER","decimals":18},"0xDcB01cc464238396E213a6fDd933E36796eAfF9f":{"name":"Yield","logo":"yield-logo.svg","erc20":true,"symbol":"YLD","decimals":18},"0xeb269732ab75A6fD61Ea60b06fE994cD32a83549":{"name":"dForce USDx","logo":"USDx.svg","erc20":true,"symbol":"USDx","decimals":18},"0x6e0daDE58D2d89eBBe7aFc384e3E4f15b70b14D8":{"name":"QuiverX","logo":"quiverx.svg","erc20":true,"symbol":"QRX","decimals":18},"0x9F9c8ec3534c3cE16F928381372BfbFBFb9F4D24":{"name":"GraphLinq","logo":"glq.svg","erc20":true,"symbol":"GLQ","decimals":18},"0xEB58343b36C7528F23CAAe63a150240241310049":{"name":"NBU","logo":"NBU.svg","erc20":true,"symbol":"NBU","decimals":18},"0x16ECCfDbb4eE1A85A33f3A9B21175Cd7Ae753dB4":{"name":"Route","logo":"route.svg","erc20":true,"symbol":"ROUTE","decimals":18},"0x75739d5944534115d7C54ee8C73F186D793BAE02":{"name":"Collective","logo":"CO2.svg","erc20":true,"symbol":"CO2","decimals":18},"0x35bD01FC9d6D5D81CA9E055Db88Dc49aa2c699A8":{"name":"FWB Pro","logo":"FWB.svg","erc20":true,"symbol":"FWB","decimals":18},"0x1C9491865a1DE77C5b6e19d2E6a5F1D7a6F2b25F":{"name":"Antimatter","logo":"antimatter.svg","erc20":true,"symbol":"MATTER","decimals":18},"0x6De037ef9aD2725EB40118Bb1702EBb27e4Aeb24":{"name":"Render Token","logo":"RNDR.svg","erc20":true,"symbol":"RNDR","decimals":18},"0xDf49C9f599A0A9049D97CFF34D0C30E468987389":{"name":"SaTT","logo":"SaTT.svg","erc20":true,"symbol":"SATT","decimals":18},"0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0":{"name":"dForce","logo":"DF.svg","erc20":true,"symbol":"DF","decimals":18},"0x6e1A19F235bE7ED8E3369eF73b196C07257494DE":{"name":"Wrapped Filecoin","logo":"WFIL.svg","erc20":true,"symbol":"WFIL","decimals":18},"0xE452E6Ea2dDeB012e20dB73bf5d3863A3Ac8d77a":{"name":"Wrapped Celo","logo":"WCELO.svg","erc20":true,"symbol":"wCELO","decimals":18},"0x4A64515E5E1d1073e83f30cB97BEd20400b66E10":{"name":"Wrapped ZEC","logo":"WZEC.svg","erc20":true,"symbol":"WZEC","decimals":18},"0xA3865E64121537b5b59B5e239Db4aCBe6F36aa74":{"name":"Wrapped Tezos","logo":"WXTZ.svg","erc20":true,"symbol":"WXTZ","decimals":18},"0x53c4871322Bb47e7A24136fce291a6dcC832a294":{"name":"Wrapped Litecoin","logo":"WLTC.svg","erc20":true,"symbol":"WLTC","decimals":18},"0xad3E3Fc59dff318BecEaAb7D00EB4F68b1EcF195":{"name":"Wrapped Celo USD","logo":"WCUSD.svg","erc20":true,"symbol":"wCUSD","decimals":18},"0xBBC7f7A6AADAc103769C66CBC69AB720f7F9Eae3":{"name":"INX Token","logo":"INX.svg","erc20":true,"symbol":"INX","decimals":18},"0x1b40183EFB4Dd766f11bDa7A7c3AD8982e998421":{"name":"Vesper","logo":"Vesper-VSP-Token.svg","erc20":true,"symbol":"VSP","decimals":18},"0x544c42fBB96B39B21DF61cf322b5EDC285EE7429":{"name":"InsurAce","logo":"INSUR.svg","erc20":true,"symbol":"INSUR","decimals":18},"0x3B73c1B2ea59835cbfcADade5462b6aB630D9890":{"name":"ChainSwap.com Governance Token","logo":"chainswap.svg","erc20":true,"symbol":"TOKEN","decimals":18},"0x182F4c4C97cd1c24E1Df8FC4c053E5C47bf53Bef":{"name":"keyTango Token","logo":"keyTango.svg","erc20":true,"symbol":"TANGO","decimals":18},"0xDe30da39c46104798bB5aA3fe8B9e0e1F348163F":{"name":"Gitcoin","logo":"gtc.svg","erc20":true,"symbol":"GTC","decimals":18},"0x1796ae0b0fa4862485106a0de9b654eFE301D0b2":{"name":"Polychain Monsters","logo":"PMON.svg","erc20":true,"symbol":"PMON","decimals":18},"0x5218E472cFCFE0b64A064F055B43b4cdC9EfD3A6":{"name":"unFederalReserve Token","logo":"eRSDL.svg","erc20":true,"symbol":"eRSDL","decimals":18},"0xE4cC5A22B39fFB0A56d67F94f9300db20D786a5F":{"name":"unFederal eRSDL","logo":"uneRSDL.svg","erc20":true,"symbol":"uneRSDL","decimals":8},"0x2dbA05B51eF5A7DE3E7c3327201CA2F8a25C2414":{"name":"unFederal DAI","logo":"unDAI.svg","erc20":true,"symbol":"unDAI","decimals":8},"0xFaCecE87e14B50eafc85C44C01702F5f485CA460":{"name":"unFederal ETH","logo":"unETH.svg","erc20":true,"symbol":"unETH","decimals":8},"0x6b576972de33BebDe3A703BfF52a091e79f8c87A":{"name":"unFederal USDC","logo":"unUSDC.svg","erc20":true,"symbol":"unUSDC","decimals":8},"0x6e2aA5bB90ac37D9006685AFc651ef067E1c7b44":{"name":"unFederal USDT","logo":"unUSDT.svg","erc20":true,"symbol":"unUSDT","decimals":8},"0x5D446FC8DBd10EBAcfE9A427aB5402586af98cD4":{"name":"unFederal WBTC","logo":"unWBTC.svg","erc20":true,"symbol":"unWBTC","decimals":8},"0xD837eCa6C91c67D98461A411BA2f00bdA9960a9D":{"name":"unFederal AAVE","logo":"unAAVE.svg","erc20":true,"symbol":"unAAVE","decimals":8},"0x9e29Ce9cD25F4141dF6BB85b27Ef6933a16A5824":{"name":"unFederal YFI","logo":"unYFI.svg","erc20":true,"symbol":"unYFI","decimals":8},"0x031002d15B0D0Cd7c9129d6F644446368deaE391":{"name":"unFederal LINK","logo":"unLINK.svg","erc20":true,"symbol":"unLINK","decimals":8},"0xB8E2e2101eD11e9138803cd3e06e16dd19910647":{"name":"ArdCoin","logo":"ardcoin.svg","erc20":true,"symbol":"ARDX","decimals":2},"0x6D0F5149c502faf215C89ab306ec3E50b15e2892":{"name":"Portion Token","logo":"PRT.svg","erc20":true,"symbol":"PRT","decimals":18},"0x3845badAde8e6dFF049820680d1F14bD3903a5d0":{"name":"SAND","logo":"SAND.svg","erc20":true,"symbol":"SAND","decimals":18},"0xcc7ab8d78dBA187dC95bF3bB86e65E0C26d0041f":{"name":"Spacelens","logo":"SPACE.svg","erc20":true,"symbol":"SPACE","decimals":18},"0x50f5474724e0Ee42D9a4e711ccFB275809Fd6d4a":{"name":"Sandbox\'s LANDs","logo":"SAND.svg","erc20":false,"erc721":true,"symbol":"LAND","decimals":0},"0x362bc847A3a9637d3af6624EeC853618a43ed7D2":{"name":"PARSIQ","logo":"parsiq.svg","erc20":true,"symbol":"PRQ","decimals":18},"0x21381e026Ad6d8266244f2A583b35F9E4413FA2a":{"name":"Formation Finance","logo":"form.svg","erc20":true,"symbol":"FORM","decimals":18},"0x2ba592F78dB6436527729929AAf6c908497cB200":{"name":"Cream","logo":"cream.svg","erc20":true,"symbol":"CREAM","decimals":18},"0x46576e20EC5F25586A6Fa2E0d6B6058354B72E72":{"name":"Cryptomind","logo":"CR.svg","erc20":true,"erc721":false,"symbol":"CR","decimals":8},"0x5ab21Ec0bfa0B29545230395e3Adaca7d552C948":{"name":"PUNKS Comic","logo":"punks-comic.svg","erc20":false,"erc721":true,"symbol":"COMIC","decimals":0},"0x9C2dc0c3CC2BADdE84B0025Cf4df1c5aF288D835":{"name":"Coreto","logo":"coreto.svg","erc20":true,"symbol":"COR","decimals":18}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedCeloERC20=void 0,t.supportedCeloERC20={"0x765DE816845861e75A25fCA122bb6898B8B1282a":{symbol:"cUSD",decimals:18,name:"Celo Dollar"},"0x471EcE3750Da237f93B8E339c536989b8978a438":{symbol:"cGLD",decimals:18,name:"Celo Gold"},"0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73":{symbol:"cEUR",decimals:18,name:"Celo Euro"}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedMaticERC20=void 0,t.supportedMaticERC20={"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063":{name:"(PoS) Dai Stablecoin",symbol:"DAI",decimals:18},"0x282d8efCe846A88B159800bd4130ad77443Fa1A1":{name:"Ocean Token (PoS)",symbol:"mOCEAN",decimals:18},"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174":{name:"USD Coin (PoS)",symbol:"USDC",decimals:6},"0xc2132D05D31c914a87C6611C10748AEb04B58e8F":{name:"(PoS) Tether USD",symbol:"USDT",decimals:6},"0xD3b71117E6C1558c1553305b44988cd944e97300":{name:"YEL Token",symbol:"YEL",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedFantomTokens=void 0,t.supportedFantomTokens={"0xD3b71117E6C1558c1553305b44988cd944e97300":{name:"YEL Token",symbol:"YEL",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedBSCTestERC20=void 0,t.supportedBSCTestERC20={"0xEC5dCb5Dbf4B114C9d0F65BcCAb49EC54F6A0867":{name:"DAI Token",symbol:"DAI",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedBSCERC20=void 0,t.supportedBSCERC20={"0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3":{name:"Binance-Peg Dai Token",symbol:"DAI",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedXDAIERC20=void 0,t.supportedXDAIERC20={"0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83":{name:"USDC token on xDai",symbol:"USDC",decimals:6}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getPath=t.chainlinkCurrencyPairs=void 0;const n=(0,r(73).__importDefault)(r(506));t.chainlinkCurrencyPairs={private:{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0x8acee021a27779d8e98b9650722676b850b25e11":1},"0x8acee021a27779d8e98b9650722676b850b25e11":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}},rinkeby:{"0xfab46e002bbf0b4509813474841e0716e6730136":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfab46e002bbf0b4509813474841e0716e6730136":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}},mainnet:{"0x4f99f266506be1475e943b2f097827011bfa4e93":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0x4f99f266506be1475e943b2f097827011bfa4e93":1,"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c":1,"0x8290333cef9e6d528dd5618fb97a76f268f3edd4":1,"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":1,"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":1,"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0xdac17f958d2ee523a2206206994597c13d831ec7":1,"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x6b175474e89094c44da98b954eedeac495271d0f":1,"0x3845badade8e6dff049820680d1f14bd3903a5d0":1,"0x8ab7404063ec4dbcfd4598215992dc3f8ec853d7":1},"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c":1,"0xa117000000f279d81a1d3cc75430faa017fa5a2e":1,"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":1,"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2":1,"0x4e15361fd6b4bb609fa63c81a2be19d873717870":1,"0xdac17f958d2ee523a2206206994597c13d831ec7":1,"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":1,"0x6b175474e89094c44da98b954eedeac495271d0f":1,"0xc944e90c64b2c07662a292be6244bdf05cda44a7":1,"0x967da4048cd07ab37855c090aaf366e4ce1b9f48":1,"0x0f5d2fb29fb7d3cfee444a200298f468908cc942":1},"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xa117000000f279d81a1d3cc75430faa017fa5a2e":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x8290333cef9e6d528dd5618fb97a76f268f3edd4":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x4e15361fd6b4bb609fa63c81a2be19d873717870":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xdac17f958d2ee523a2206206994597c13d831ec7":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x6b175474e89094c44da98b954eedeac495271d0f":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xc944e90c64b2c07662a292be6244bdf05cda44a7":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x967da4048cd07ab37855c090aaf366e4ce1b9f48":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x3845badade8e6dff049820680d1f14bd3903a5d0":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8ab7404063ec4dbcfd4598215992dc3f8ec853d7":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x0f5d2fb29fb7d3cfee444a200298f468908cc942":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}},matic:{"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":1,"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x4f99f266506be1475e943b2f097827011bfa4e93":1,"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x4f99f266506be1475e943b2f097827011bfa4e93":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x831753dd7087cac61ab5644b308642cc1c33dc13":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}},fantom:{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":1,"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":1,"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":1,"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":1,"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":1,"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":1,"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":1,"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":1,"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":1,"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":1,"0x04068da6c83afcfa0e13ba15a6696662335d5b75":1},"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x04068da6c83afcfa0e13ba15a6696662335d5b75":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}},t.getPath=function(e,r,i="mainnet"){if(!t.chainlinkCurrencyPairs[i])throw Error(`network ${i} not supported`);return new n.default(t.chainlinkCurrencyPairs[i]).path(e.hash.toLowerCase(),r.hash.toLowerCase())}},function(e,t,r){const n=r(507),i=r(508),f=r(509),o=r(510);e.exports=class{constructor(e){e instanceof Map?(o(e),this.graph=e):this.graph=e?f(e):new Map}addNode(e,t){let r;return t instanceof Map?(o(t),r=t):r=f(t),this.graph.set(e,r),this}addVertex(e,t){return this.addNode(e,t)}removeNode(e){return this.graph=i(this.graph,e),this}path(e,t,r={}){if(!this.graph.size)return r.cost?{path:null,cost:0}:null;const i=new Set,f=new n,o=new Map;let a=[],s=0,c=[];if(r.avoid&&(c=[].concat(r.avoid)),c.includes(e))throw new Error(`Starting node (${e}) cannot be avoided`);if(c.includes(t))throw new Error(`Ending node (${t}) cannot be avoided`);for(f.set(e,0);!f.isEmpty();){const e=f.next();if(e.key===t){s=e.priority;let t=e.key;for(;o.has(t);)a.push(t),t=o.get(t);break}i.add(e.key);(this.graph.get(e.key)||new Map).forEach(((t,r)=>{if(i.has(r)||c.includes(r))return null;if(!f.has(r))return o.set(r,e.key),f.set(r,e.priority+t);const n=f.get(r).priority,a=e.priority+t;return a<n?(o.set(r,e.key),f.set(r,a)):null}))}return a.length?(r.trim?a.shift():a=a.concat([e]),r.reverse||(a=a.reverse()),r.cost?{path:a,cost:s}:a):r.cost?{path:null,cost:0}:null}shortestPath(...e){return this.path(...e)}}},function(e,t){e.exports=class{constructor(){this.keys=new Set,this.queue=[]}sort(){this.queue.sort(((e,t)=>e.priority-t.priority))}set(e,t){const r=Number(t);if(isNaN(r))throw new TypeError('"priority" must be a number');return this.keys.has(e)?this.queue.map((t=>(t.key===e&&Object.assign(t,{priority:r}),t))):(this.keys.add(e),this.queue.push({key:e,priority:r})),this.sort(),this.queue.length}next(){const e=this.queue.shift();return this.keys.delete(e.key),e}isEmpty(){return Boolean(0===this.queue.length)}has(e){return this.keys.has(e)}get(e){return this.queue.find((t=>t.key===e))}}},function(e,t){e.exports=function e(t,r){const n=new Map;for(const[i,f]of t)i!==r&&f instanceof Map?n.set(i,e(f,r)):i!==r&&n.set(i,f);return n}},function(e,t){e.exports=function e(t){const r=new Map;return Object.keys(t).forEach((n=>{const i=t[n];if(null!==i&&"object"==typeof i&&!Array.isArray(i))return r.set(n,e(i));if(!function(e){const t=Number(e);return!(isNaN(t)||t<=0)}(i))throw new Error(`Could not add node at key "${n}", make sure it's a valid node`,i);return r.set(n,Number(i))})),r}},function(e,t){e.exports=function e(t){if(!(t instanceof Map))throw new Error("Invalid graph: Expected Map instead found "+typeof t);t.forEach(((t,r)=>{if("object"==typeof t&&t instanceof Map)e(t);else if("number"!=typeof t||t<=0)throw new Error(`Values must be numbers greater than 0. Found value ${t} at ${r}`)}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CurrencyManager=void 0;const n=r(73),i=r(4),f=r(6),o=(0,n.__importDefault)(r(512)),a=r(216),s=r(217),c=(0,n.__importDefault)(r(220)),u=r(541),l=r(542),{BTC:d,ERC20:h,ETH:p,ISO4217:b}=i.RequestLogicTypes.CURRENCY;class y{constructor(e,t){this.knownCurrencies=[];for(const t of e){const e=y.fromInput(t);if(this.knownCurrencies.some((t=>t.id===e.id)))throw new Error(`Duplicate found: ${e.id}`);this.knownCurrencies.push(e)}this.legacyTokens=t||y.getDefaultLegacyTokens()}from(e,t){if(!e)return;if(f.utils.isAddress(e))return this.fromAddress(e,t);const r=e.split("-"),n=this.fromSymbol(r[0],t||r[1])||this.fromSymbol(e,t);return n||this.fromId(e)}fromId(e){return this.knownCurrencies.find((t=>t.id===e))}fromAddress(e,t){e=f.utils.getAddress(e);const r=this.knownCurrencies.filter((r=>r.type===h&&r.address===e&&(!t||r.network===t)));if(!(r.length>1))return r[0];{const t=r.map((e=>e.network)).join(", ");console.warn(`${e} has several matches on ${t}. To avoid errors, specify a network.`)}}fromSymbol(e,t){var r;e=null==e?void 0:e.toUpperCase();const n=(t=null==t?void 0:t.toLowerCase())?null===(r=this.legacyTokens[t])||void 0===r?void 0:r[e]:void 0;return n&&([e,t]=n),this.knownCurrencies.find((r=>r.symbol.toUpperCase()===e&&(r.type===b&&!t||"network"in r&&r.network===t||!t)))}fromStorageCurrency(e){if(!e)return;if(!e.type)throw new Error("Invalid format");const t=e.network||"mainnet";return this.knownCurrencies.find((r=>r.type===e.type&&(r.type===h&&e.value===r.address&&r.network===t||(r.type===p||r.type===d)&&r.network===t||r.symbol===e.value&&!e.network)))}getNativeCurrency(e,t){return this.knownCurrencies.find((r=>r.type===e&&r.network===t))}static fromInput(e){var{id:t,hash:r,meta:i}=e,f=(0,n.__rest)(e,["id","hash","meta"]);return Object.assign({id:t||y.currencyId(f),hash:r||(0,s.getHash)(y.toStorageCurrency(f)),meta:i},f)}static currencyId(e){return"network"in e?`${e.symbol}-${e.network}`:e.symbol}static toStorageCurrency(e){return{type:e.type,value:e.type===h?e.address:e.symbol,network:e.type===b?void 0:e.network}}static validateAddress(e,t){switch(t.type){case i.RequestLogicTypes.CURRENCY.ISO4217:throw new Error("Could not validate an address for an ISO4217 currency");case i.RequestLogicTypes.CURRENCY.ETH:case i.RequestLogicTypes.CURRENCY.ERC20:switch(t.symbol){case"NEAR":case"NEAR-testnet":return(0,l.isValidNearAddress)(e,t.network);default:return o.default.validate(e,"ETH")}case i.RequestLogicTypes.CURRENCY.BTC:return o.default.validate(e,"BTC","testnet"===t.network?"testnet":"prod");default:throw new Error("Could not validate an address for an unknown currency type")}}static getDefaultList(){const e=c.default.map((e=>({decimals:e.digits,name:e.currency,symbol:e.code,type:b}))),t=u.nativeCurrencies.ETH.map((e=>Object.assign(Object.assign({},e),{type:p}))),r=u.nativeCurrencies.BTC.map((e=>Object.assign(Object.assign({},e),{type:d}))),n=(0,a.getSupportedERC20Tokens)().map((e=>Object.assign(Object.assign({},e),{type:h})));return e.concat(n).concat(t).concat(r).map(y.fromInput)}static getDefaultLegacyTokens(){return{near:{NEAR:["NEAR","aurora"]}}}static getDefault(){return new y(y.getDefaultList(),y.getDefaultLegacyTokens())}}t.CurrencyManager=y},function(e,t,r){var n=r(513);e.exports={validate:function(e,t,r){var i=n.getByNameOrSymbol(t||"bitcoin");if(i&&i.validator)return r&&"string"==typeof r?i.validator.isValidAddress(e,i,{networkType:r}):i.validator.isValidAddress(e,i,r);throw new Error("Missing validator for currency: "+t)},getCurrencies:function(){return n.getAll()},findCurrency:function(e){return n.getByNameOrSymbol(e)||null}}},function(e,t,r){var n=r(514),i=r(218),f=r(121),o=r(523),a=r(525),s=r(528),c=r(529),u=r(531),l=r(532),d=r(533),h=r(534),p=r(535),b=r(536),y=r(537),m=r(538),g=r(539),v=r(540),_=[{name:"Bitcoin",symbol:"btc",addressTypes:{prod:["00","05"],testnet:["6f","c4","3c","26"]},bech32Hrp:{prod:["bc"],testnet:["tb"]},validator:f},{name:"BitcoinCash",symbol:"bch",regexp:"^[qQpP]{1}[0-9a-zA-Z]{41}$",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:h},{name:"Bitcoin SV",symbol:"bsv",regexp:"^[qQ]{1}[0-9a-zA-Z]{41}$",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:h},{name:"LiteCoin",symbol:"ltc",addressTypes:{prod:["30","05","32"],testnet:["6f","c4","3a"]},bech32Hrp:{prod:["ltc"],testnet:["tltc"]},validator:f},{name:"PeerCoin",symbol:"ppc",addressTypes:{prod:["37","75"],testnet:["6f","c4"]},validator:f},{name:"DogeCoin",symbol:"doge",addressTypes:{prod:["1e","16"],testnet:["71","c4"]},validator:f},{name:"BeaverCoin",symbol:"bvc",addressTypes:{prod:["19","05"],testnet:["6f","c4"]},validator:f},{name:"FreiCoin",symbol:"frc",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:f},{name:"ProtoShares",symbol:"pts",addressTypes:{prod:["38","05"],testnet:["6f","c4"]},validator:f},{name:"MegaCoin",symbol:"mec",addressTypes:{prod:["32","05"],testnet:["6f","c4"]},validator:f},{name:"PrimeCoin",symbol:"xpm",addressTypes:{prod:["17","53"],testnet:["6f","c4"]},validator:f},{name:"AuroraCoin",symbol:"aur",addressTypes:{prod:["17","05"],testnet:["6f","c4"]},validator:f},{name:"NameCoin",symbol:"nmc",addressTypes:{prod:["34"],testnet:[]},validator:f},{name:"BioCoin",symbol:"bio",addressTypes:{prod:["19","14"],testnet:["6f","c4"]},validator:f},{name:"GarliCoin",symbol:"grlc",addressTypes:{prod:["26","05"],testnet:["6f","c4"]},validator:f},{name:"VertCoin",symbol:"vtc",addressTypes:{prod:["0x","47","71","05"],testnet:["6f","c4"]},validator:f},{name:"BitcoinGold",symbol:"btg",addressTypes:{prod:["26","17"],testnet:["6f","c4"]},validator:f},{name:"Komodo",symbol:"kmd",addressTypes:{prod:["3c","55"],testnet:["0","5"]},validator:f},{name:"BitcoinZ",symbol:"btcz",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"BitcoinPrivate",symbol:"btcp",expectedLength:26,addressTypes:{prod:["1325","13af"],testnet:["1957","19e0"]},validator:f},{name:"Hush",symbol:"hush",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"SnowGem",symbol:"sng",expectedLength:26,addressTypes:{prod:["1c28","1c2d"],testnet:["1d25","1cba"]},validator:f},{name:"ZCash",symbol:"zec",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"ZClassic",symbol:"zcl",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"ZenCash",symbol:"zen",expectedLength:26,addressTypes:{prod:["2089","2096"],testnet:["2092","2098"]},validator:f},{name:"VoteCoin",symbol:"vot",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"Decred",symbol:"dcr",addressTypes:{prod:["073f","071a"],testnet:["0f21","0efc"]},hashFunction:"blake256",expectedLength:26,validator:f},{name:"GameCredits",symbol:"game",addressTypes:{prod:["26","05"],testnet:[]},validator:i},{name:"PIVX",symbol:"pivx",addressTypes:{prod:["1e","0d"],testnet:[]},validator:f},{name:"SolarCoin",symbol:"slr",addressTypes:{prod:["12","05"],testnet:[]},validator:f},{name:"MonaCoin",symbol:"mona",addressTypes:{prod:["32","37"],testnet:[]},validator:f},{name:"DigiByte",symbol:"dgb",addressTypes:{prod:["1e","3f"],testnet:[]},bech32Hrp:{prod:["dgb","S"],testnet:[]},validator:f},{name:"Tether",symbol:"usdt",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:m},{name:"Ripple",symbol:"xrp",validator:n},{name:"Dash",symbol:"dash",addressTypes:{prod:["4c","10"],testnet:["8c","13"]},validator:f},{name:"Neo",symbol:"neo",addressTypes:{prod:["17"],testnet:[]},validator:f},{name:"NeoGas",symbol:"gas",addressTypes:{prod:["17"],testnet:[]},validator:f},{name:"Qtum",symbol:"qtum",addressTypes:{prod:["3a","32"],testnet:["78","6e"]},validator:f},{name:"Waves",symbol:"waves",addressTypes:{prod:["0157"],testnet:["0154"]},expectedLength:26,hashFunction:"blake256keccak256",regex:/^[a-zA-Z0-9]{35}$/,validator:f},{name:"Ethereum",symbol:"eth",validator:i},{name:"EtherZero",symbol:"etz",validator:i},{name:"EthereumClassic",symbol:"etc",validator:i},{name:"Callisto",symbol:"clo",validator:i},{name:"Bankex",symbol:"bkx",validator:i},{name:"Cardano",symbol:"ada",bech32Hrp:{prod:["addr"],testnet:["addr"]},validator:o},{name:"Monero",symbol:"xmr",addressTypes:{prod:["18","42"],testnet:["53","63"],stagenet:["24"]},iAddressTypes:{prod:["19"],testnet:["54"],stagenet:["25"]},validator:a},{name:"Aragon",symbol:"ant",validator:i},{name:"Basic Attention Token",symbol:"bat",validator:i},{name:"Bancor",symbol:"bnt",validator:i},{name:"Civic",symbol:"cvc",validator:i},{name:"District0x",symbol:"dnt",validator:i},{name:"Gnosis",symbol:"gno",validator:i},{name:"Golem (GNT)",symbol:"gnt",validator:i},{name:"Golem",symbol:"glm",validator:i},{name:"Matchpool",symbol:"gup",validator:i},{name:"Melon",symbol:"mln",validator:i},{name:"Numeraire",symbol:"nmr",validator:i},{name:"OmiseGO",symbol:"omg",validator:i},{name:"TenX",symbol:"pay",validator:i},{name:"Ripio Credit Network",symbol:"rcn",validator:i},{name:"Augur",symbol:"rep",validator:i},{name:"iExec RLC",symbol:"rlc",validator:i},{name:"Salt",symbol:"salt",validator:i},{name:"Status",symbol:"snt",validator:i},{name:"Storj",symbol:"storj",validator:i},{name:"Swarm City",symbol:"swt",validator:i},{name:"TrueUSD",symbol:"tusd",validator:i},{name:"Wings",symbol:"wings",validator:i},{name:"0x",symbol:"zrx",validator:i},{name:"Expanse",symbol:"exp",validator:i},{name:"Viberate",symbol:"vib",validator:i},{name:"Odyssey",symbol:"ocn",validator:i},{name:"Polymath",symbol:"poly",validator:i},{name:"Storm",symbol:"storm",validator:i},{name:"Nano",symbol:"nano",validator:s},{name:"RaiBlocks",symbol:"xrb",validator:s},{name:"Siacoin",symbol:"sc",validator:c},{name:"HyperSpace",symbol:"xsc",validator:c},{name:"loki",symbol:"loki",addressTypes:{prod:["114","115","116"],testnet:[]},iAddressTypes:{prod:["115"],testnet:[]},validator:a},{name:"LBRY Credits",symbol:"lbc",addressTypes:{prod:["55"],testnet:[]},validator:f},{name:"Tron",symbol:"trx",addressTypes:{prod:[65],testnet:[160]},validator:u},{name:"Nem",symbol:"xem",validator:l},{name:"Lisk",symbol:"lsk",validator:d},{name:"Stellar",symbol:"xlm",validator:p},{name:"BTU Protocol",symbol:"btu",validator:i},{name:"Crypto.com Coin",symbol:"cro",bech32Hrp:{prod:["cro"],testnet:["tcro"]},validator:r(219)},{name:"Multi-collateral DAI",symbol:"dai",validator:i},{name:"Enjin Coin",symbol:"enj",validator:i},{name:"HedgeTrade",symbol:"hedg",validator:i},{name:"Cred",symbol:"lba",validator:i},{name:"Chainlink",symbol:"link",validator:i},{name:"Loom Network",symbol:"loom",validator:i},{name:"Maker",symbol:"mkr",validator:i},{name:"Metal",symbol:"mtl",validator:i},{name:"Ocean Protocol",symbol:"ocean",validator:i},{name:"Quant",symbol:"qnt",validator:i},{name:"Synthetix Network",symbol:"snx",validator:i},{name:"SOLVE",symbol:"solve",validator:i},{name:"Spendcoin",symbol:"spnd",validator:i},{name:"TEMCO",symbol:"temco",validator:i},{name:"EOS",symbol:"eos",validator:b},{name:"Tezos",symbol:"xtz",validator:y},{name:"VeChain",symbol:"vet",validator:i},{name:"StormX",symbol:"stmx",validator:i},{name:"AugurV2",symbol:"repv2",validator:i},{name:"FirmaChain",symbol:"fct",validator:i},{name:"BlockTrade",symbol:"btt",validator:i},{name:"Quantum Resistant Ledger",symbol:"qrl",validator:i},{name:"Serve",symbol:"serv",validator:i},{name:"Tap",symbol:"xtp",validator:i},{name:"Compound",symbol:"comp",validator:i},{name:"Paxos",symbol:"pax",validator:i},{name:"USD Coin",symbol:"usdc",validator:i},{name:"CUSD",symbol:"cusd",validator:i},{name:"Algorand",symbol:"algo",validator:g},{name:"Polkadot",symbol:"dot",validator:v},{name:"Uniswap Coin",symbol:"uni",validator:i},{name:"Aave Coin",symbol:"aave",validator:i},{name:"Matic",symbol:"matic",validator:i},{name:"Decentraland",symbol:"mana",validator:i}];e.exports={getByNameOrSymbol:function(e){var t=e.toLowerCase();return _.find((function(e){return e.name.toLowerCase()===t||e.symbol.toLowerCase()===t}))},getAll:function(){return _}}},function(e,t,r){var n=r(19),i="rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",f=r(120)(i),o=new RegExp("^r["+i+"]{27,35}$");e.exports={isValidAddress:function(e){return!!o.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=f.decode(e);return n.sha256Checksum(n.toHex(t.slice(0,-4)))===n.toHex(t.slice(-4))}}},function(e,t,r){"use strict";var n;!function(i){function f(e,t,r){var n,i,f,o,a,b,y,m,g,v=0,_=[],w=0,E=!1,A=[],S=[],T=!1,x=!1,P=-1;if(n=(r=r||{}).encoding||"UTF8",(g=r.numRounds||1)!==parseInt(g,10)||1>g)throw Error("numRounds must a integer >= 1");if("SHA-1"===e)a=512,b=U,y=q,o=160,m=function(e){return e.slice()};else if(0===e.lastIndexOf("SHA-",0))if(b=function(t,r){return z(t,r,e)},y=function(t,r,n,i){var f,o;if("SHA-224"===e||"SHA-256"===e)f=15+(r+65>>>9<<4),o=16;else{if("SHA-384"!==e&&"SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");f=31+(r+129>>>10<<5),o=32}for(;t.length<=f;)t.push(0);for(t[r>>>5]|=128<<24-r%32,r+=n,t[f]=4294967295&r,t[f-1]=r/4294967296|0,n=t.length,r=0;r<n;r+=o)i=z(t.slice(r,r+o),i,e);if("SHA-224"===e)t=[i[0],i[1],i[2],i[3],i[4],i[5],i[6]];else if("SHA-256"===e)t=i;else if("SHA-384"===e)t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b];else{if("SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b,i[6].a,i[6].b,i[7].a,i[7].b]}return t},m=function(e){return e.slice()},"SHA-224"===e)a=512,o=224;else if("SHA-256"===e)a=512,o=256;else if("SHA-384"===e)a=1024,o=384;else{if("SHA-512"!==e)throw Error("Chosen SHA variant is not supported");a=1024,o=512}else{if(0!==e.lastIndexOf("SHA3-",0)&&0!==e.lastIndexOf("SHAKE",0))throw Error("Chosen SHA variant is not supported");var R=6;if(b=H,m=function(e){var t,r=[];for(t=0;5>t;t+=1)r[t]=e[t].slice();return r},P=1,"SHA3-224"===e)a=1152,o=224;else if("SHA3-256"===e)a=1088,o=256;else if("SHA3-384"===e)a=832,o=384;else if("SHA3-512"===e)a=576,o=512;else if("SHAKE128"===e)a=1344,o=-1,R=31,x=!0;else{if("SHAKE256"!==e)throw Error("Chosen SHA variant is not supported");a=1088,o=-1,R=31,x=!0}y=function(e,t,r,n,i){var f,o=R,s=[],c=(r=a)>>>5,u=0,l=t>>>5;for(f=0;f<l&&t>=r;f+=c)n=H(e.slice(f,f+c),n),t-=r;for(e=e.slice(f),t%=r;e.length<c;)e.push(0);for(e[(f=t>>>3)>>2]^=o<<f%4*8,e[c-1]^=2147483648,n=H(e,n);32*s.length<i&&(e=n[u%5][u/5|0],s.push(e.b),!(32*s.length>=i));)s.push(e.a),0==64*(u+=1)%r&&(H(null,n),u=0);return s}}f=p(t,n,P),i=L(e),this.setHMACKey=function(t,r,f){var s;if(!0===E)throw Error("HMAC key already set");if(!0===T)throw Error("Cannot set HMAC key after calling update");if(!0===x)throw Error("SHAKE is not supported for HMAC");for(t=(r=p(r,n=(f||{}).encoding||"UTF8",P)(t)).binLen,r=r.value,f=(s=a>>>3)/4-1,s<t/8&&(r=y(r,t,0,L(e),o));r.length<=f;)r.push(0);for(t=0;t<=f;t+=1)A[t]=909522486^r[t],S[t]=1549556828^r[t];i=b(A,i),v=a,E=!0},this.update=function(e){var t,r,n,o=0,s=a>>>5;for(e=(t=f(e,_,w)).binLen,r=t.value,t=e>>>5,n=0;n<t;n+=s)o+a<=e&&(i=b(r.slice(n,n+s),i),o+=a);v+=o,_=r.slice(o>>>5),w=e%a,T=!0},this.getHash=function(t,r){var n,f,a,p;if(!0===E)throw Error("Cannot call getHash after setting HMAC key");if(a=h(r),!0===x){if(-1===a.shakeLen)throw Error("shakeLen must be specified in options");o=a.shakeLen}switch(t){case"HEX":n=function(e){return s(e,o,P,a)};break;case"B64":n=function(e){return c(e,o,P,a)};break;case"BYTES":n=function(e){return u(e,o,P)};break;case"ARRAYBUFFER":try{f=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return l(e,o,P)};break;case"UINT8ARRAY":try{f=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return d(e,o,P)};break;default:throw Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}for(p=y(_.slice(),w,v,m(i),o),f=1;f<g;f+=1)!0===x&&0!=o%32&&(p[p.length-1]&=16777215>>>24-o%32),p=y(p,o,0,L(e),o);return n(p)},this.getHMAC=function(t,r){var n,f,p,g;if(!1===E)throw Error("Cannot call getHMAC without first setting HMAC key");switch(p=h(r),t){case"HEX":n=function(e){return s(e,o,P,p)};break;case"B64":n=function(e){return c(e,o,P,p)};break;case"BYTES":n=function(e){return u(e,o,P)};break;case"ARRAYBUFFER":try{n=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return l(e,o,P)};break;case"UINT8ARRAY":try{n=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return d(e,o,P)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}return f=y(_.slice(),w,v,m(i),o),g=b(S,L(e)),n(g=y(f,o,a,g,o))}}function o(e,t){this.a=e,this.b=t}function a(e,t,r,n){var i,f,o,a,s;for(t=t||[0],f=(r=r||0)>>>3,s=-1===n?3:0,i=0;i<e.length;i+=1)o=(a=i+f)>>>2,t.length<=o&&t.push(0),t[o]|=e[i]<<8*(s+a%4*n);return{value:t,binLen:8*e.length+r}}function s(e,t,r,n){var i,f,o,a="";for(t/=8,o=-1===r?3:0,i=0;i<t;i+=1)f=e[i>>>2]>>>8*(o+i%4*r),a+="0123456789abcdef".charAt(f>>>4&15)+"0123456789abcdef".charAt(15&f);return n.outputUpper?a.toUpperCase():a}function c(e,t,r,n){var i,f,o,a,s="",c=t/8;for(a=-1===r?3:0,i=0;i<c;i+=3)for(f=i+1<c?e[i+1>>>2]:0,o=i+2<c?e[i+2>>>2]:0,o=(e[i>>>2]>>>8*(a+i%4*r)&255)<<16|(f>>>8*(a+(i+1)%4*r)&255)<<8|o>>>8*(a+(i+2)%4*r)&255,f=0;4>f;f+=1)s+=8*i+6*f<=t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(o>>>6*(3-f)&63):n.b64Pad;return s}function u(e,t,r){var n,i,f,o="";for(t/=8,f=-1===r?3:0,n=0;n<t;n+=1)i=e[n>>>2]>>>8*(f+n%4*r)&255,o+=String.fromCharCode(i);return o}function l(e,t,r){t/=8;var n,i,f,o=new ArrayBuffer(t);for(f=new Uint8Array(o),i=-1===r?3:0,n=0;n<t;n+=1)f[n]=e[n>>>2]>>>8*(i+n%4*r)&255;return o}function d(e,t,r){t/=8;var n,i,f=new Uint8Array(t);for(i=-1===r?3:0,n=0;n<t;n+=1)f[n]=e[n>>>2]>>>8*(i+n%4*r)&255;return f}function h(e){var t={outputUpper:!1,b64Pad:"=",shakeLen:-1};if(e=e||{},t.outputUpper=e.outputUpper||!1,!0===e.hasOwnProperty("b64Pad")&&(t.b64Pad=e.b64Pad),!0===e.hasOwnProperty("shakeLen")){if(0!=e.shakeLen%8)throw Error("shakeLen must be a multiple of 8");t.shakeLen=e.shakeLen}if("boolean"!=typeof t.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!=typeof t.b64Pad)throw Error("Invalid b64Pad formatting option");return t}function p(e,t,r){switch(t){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(e){case"HEX":e=function(e,t,n){var i,f,o,a,s,c,u=e.length;if(0!=u%2)throw Error("String of HEX type must be in byte increments");for(t=t||[0],s=(n=n||0)>>>3,c=-1===r?3:0,i=0;i<u;i+=2){if(f=parseInt(e.substr(i,2),16),isNaN(f))throw Error("String of HEX type contains invalid characters");for(o=(a=(i>>>1)+s)>>>2;t.length<=o;)t.push(0);t[o]|=f<<8*(c+a%4*r)}return{value:t,binLen:4*u+n}};break;case"TEXT":e=function(e,n,i){var f,o,a,s,c,u,l,d,h=0;if(n=n||[0],c=(i=i||0)>>>3,"UTF8"===t)for(d=-1===r?3:0,a=0;a<e.length;a+=1)for(o=[],128>(f=e.charCodeAt(a))?o.push(f):2048>f?(o.push(192|f>>>6),o.push(128|63&f)):55296>f||57344<=f?o.push(224|f>>>12,128|f>>>6&63,128|63&f):(a+=1,f=65536+((1023&f)<<10|1023&e.charCodeAt(a)),o.push(240|f>>>18,128|f>>>12&63,128|f>>>6&63,128|63&f)),s=0;s<o.length;s+=1){for(u=(l=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=o[s]<<8*(d+l%4*r),h+=1}else if("UTF16BE"===t||"UTF16LE"===t)for(d=-1===r?2:0,o="UTF16LE"===t&&1!==r||"UTF16LE"!==t&&1===r,a=0;a<e.length;a+=1){for(f=e.charCodeAt(a),!0===o&&(f=(s=255&f)<<8|f>>>8),u=(l=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=f<<8*(d+l%4*r),h+=2}return{value:n,binLen:8*h+i}};break;case"B64":e=function(e,t,n){var i,f,o,a,s,c,u,l,d=0;if(-1===e.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");if(f=e.indexOf("="),e=e.replace(/\=/g,""),-1!==f&&f<e.length)throw Error("Invalid '=' found in base-64 string");for(t=t||[0],c=(n=n||0)>>>3,l=-1===r?3:0,f=0;f<e.length;f+=4){for(s=e.substr(f,4),o=a=0;o<s.length;o+=1)a|=(i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(s.charAt(o)))<<18-6*o;for(o=0;o<s.length-1;o+=1){for(i=(u=d+c)>>>2;t.length<=i;)t.push(0);t[i]|=(a>>>16-8*o&255)<<8*(l+u%4*r),d+=1}}return{value:t,binLen:8*d+n}};break;case"BYTES":e=function(e,t,n){var i,f,o,a,s,c;for(t=t||[0],o=(n=n||0)>>>3,c=-1===r?3:0,f=0;f<e.length;f+=1)i=e.charCodeAt(f),a=(s=f+o)>>>2,t.length<=a&&t.push(0),t[a]|=i<<8*(c+s%4*r);return{value:t,binLen:8*e.length+n}};break;case"ARRAYBUFFER":try{e=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}e=function(e,t,n){return a(new Uint8Array(e),t,n,r)};break;case"UINT8ARRAY":try{e=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}e=function(e,t,n){return a(e,t,n,r)};break;default:throw Error("format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}return e}function b(e,t){return e<<t|e>>>32-t}function y(e,t){return 32<t?(t-=32,new o(e.b<<t|e.a>>>32-t,e.a<<t|e.b>>>32-t)):0!==t?new o(e.a<<t|e.b>>>32-t,e.b<<t|e.a>>>32-t):e}function m(e,t){return e>>>t|e<<32-t}function g(e,t){var r=null;r=new o(e.a,e.b);return 32>=t?new o(r.a>>>t|r.b<<32-t&4294967295,r.b>>>t|r.a<<32-t&4294967295):new o(r.b>>>t-32|r.a<<64-t&4294967295,r.a>>>t-32|r.b<<64-t&4294967295)}function v(e,t){return 32>=t?new o(e.a>>>t,e.b>>>t|e.a<<32-t&4294967295):new o(0,e.a>>>t-32)}function _(e,t,r){return e&t^~e&r}function w(e,t,r){return new o(e.a&t.a^~e.a&r.a,e.b&t.b^~e.b&r.b)}function E(e,t,r){return e&t^e&r^t&r}function A(e,t,r){return new o(e.a&t.a^e.a&r.a^t.a&r.a,e.b&t.b^e.b&r.b^t.b&r.b)}function S(e){return m(e,2)^m(e,13)^m(e,22)}function T(e){var t=g(e,28),r=g(e,34);return e=g(e,39),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function x(e){return m(e,6)^m(e,11)^m(e,25)}function P(e){var t=g(e,14),r=g(e,18);return e=g(e,41),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function R(e){return m(e,7)^m(e,18)^e>>>3}function k(e){var t=g(e,1),r=g(e,8);return e=v(e,7),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function C(e){return m(e,17)^m(e,19)^e>>>10}function O(e){var t=g(e,19),r=g(e,61);return e=v(e,6),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function M(e,t){var r=(65535&e)+(65535&t);return((e>>>16)+(t>>>16)+(r>>>16)&65535)<<16|65535&r}function N(e,t,r,n){var i=(65535&e)+(65535&t)+(65535&r)+(65535&n);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(i>>>16)&65535)<<16|65535&i}function I(e,t,r,n,i){var f=(65535&e)+(65535&t)+(65535&r)+(65535&n)+(65535&i);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(i>>>16)+(f>>>16)&65535)<<16|65535&f}function D(e,t){var r,n,i;return r=(65535&e.b)+(65535&t.b),i=(65535&(n=(e.b>>>16)+(t.b>>>16)+(r>>>16)))<<16|65535&r,r=(65535&e.a)+(65535&t.a)+(n>>>16),new o((65535&(n=(e.a>>>16)+(t.a>>>16)+(r>>>16)))<<16|65535&r,i)}function B(e,t,r,n){var i,f,a;return i=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b),a=(65535&(f=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(i>>>16)))<<16|65535&i,i=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(f>>>16),new o((65535&(f=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(i>>>16)))<<16|65535&i,a)}function F(e,t,r,n,i){var f,a,s;return f=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b)+(65535&i.b),s=(65535&(a=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(i.b>>>16)+(f>>>16)))<<16|65535&f,f=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(65535&i.a)+(a>>>16),new o((65535&(a=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(i.a>>>16)+(f>>>16)))<<16|65535&f,s)}function j(e,t){return new o(e.a^t.a,e.b^t.b)}function L(e){var t,r=[];if("SHA-1"===e)r=[1732584193,4023233417,2562383102,271733878,3285377520];else if(0===e.lastIndexOf("SHA-",0))switch(r=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],t=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],e){case"SHA-224":break;case"SHA-256":r=t;break;case"SHA-384":r=[new o(3418070365,r[0]),new o(1654270250,r[1]),new o(2438529370,r[2]),new o(355462360,r[3]),new o(1731405415,r[4]),new o(41048885895,r[5]),new o(3675008525,r[6]),new o(1203062813,r[7])];break;case"SHA-512":r=[new o(t[0],4089235720),new o(t[1],2227873595),new o(t[2],4271175723),new o(t[3],1595750129),new o(t[4],2917565137),new o(t[5],725511199),new o(t[6],4215389547),new o(t[7],327033209)];break;default:throw Error("Unknown SHA variant")}else{if(0!==e.lastIndexOf("SHA3-",0)&&0!==e.lastIndexOf("SHAKE",0))throw Error("No SHA variants supported");for(e=0;5>e;e+=1)r[e]=[new o(0,0),new o(0,0),new o(0,0),new o(0,0),new o(0,0)]}return r}function U(e,t){var r,n,i,f,o,a,s,c=[];for(r=t[0],n=t[1],i=t[2],f=t[3],o=t[4],s=0;80>s;s+=1)c[s]=16>s?e[s]:b(c[s-3]^c[s-8]^c[s-14]^c[s-16],1),a=20>s?I(b(r,5),n&i^~n&f,o,1518500249,c[s]):40>s?I(b(r,5),n^i^f,o,1859775393,c[s]):60>s?I(b(r,5),E(n,i,f),o,2400959708,c[s]):I(b(r,5),n^i^f,o,3395469782,c[s]),o=f,f=i,i=b(n,30),n=r,r=a;return t[0]=M(r,t[0]),t[1]=M(n,t[1]),t[2]=M(i,t[2]),t[3]=M(f,t[3]),t[4]=M(o,t[4]),t}function q(e,t,r,n){var i;for(i=15+(t+65>>>9<<4);e.length<=i;)e.push(0);for(e[t>>>5]|=128<<24-t%32,t+=r,e[i]=4294967295&t,e[i-1]=t/4294967296|0,t=e.length,i=0;i<t;i+=16)n=U(e.slice(i,i+16),n);return n}function z(e,t,r){var n,i,f,a,s,c,u,l,d,h,p,b,y,m,g,v,j,L,U,q,z,H,K,W=[];if("SHA-224"===r||"SHA-256"===r)h=64,b=1,H=Number,y=M,m=N,g=I,v=R,j=C,L=S,U=x,z=E,q=_,K=G;else{if("SHA-384"!==r&&"SHA-512"!==r)throw Error("Unexpected error in SHA-2 implementation");h=80,b=2,H=o,y=D,m=B,g=F,v=k,j=O,L=T,U=P,z=A,q=w,K=V}for(r=t[0],n=t[1],i=t[2],f=t[3],a=t[4],s=t[5],c=t[6],u=t[7],p=0;p<h;p+=1)16>p?(d=p*b,l=e.length<=d?0:e[d],d=e.length<=d+1?0:e[d+1],W[p]=new H(l,d)):W[p]=m(j(W[p-2]),W[p-7],v(W[p-15]),W[p-16]),l=g(u,U(a),q(a,s,c),K[p],W[p]),d=y(L(r),z(r,n,i)),u=c,c=s,s=a,a=y(f,l),f=i,i=n,n=r,r=y(l,d);return t[0]=y(r,t[0]),t[1]=y(n,t[1]),t[2]=y(i,t[2]),t[3]=y(f,t[3]),t[4]=y(a,t[4]),t[5]=y(s,t[5]),t[6]=y(c,t[6]),t[7]=y(u,t[7]),t}function H(e,t){var r,n,i,f,a=[],s=[];if(null!==e)for(n=0;n<e.length;n+=2)t[(n>>>1)%5][(n>>>1)/5|0]=j(t[(n>>>1)%5][(n>>>1)/5|0],new o(e[n+1],e[n]));for(r=0;24>r;r+=1){for(f=L("SHA3-"),n=0;5>n;n+=1){i=t[n][0];var c=t[n][1],u=t[n][2],l=t[n][3],d=t[n][4];a[n]=new o(i.a^c.a^u.a^l.a^d.a,i.b^c.b^u.b^l.b^d.b)}for(n=0;5>n;n+=1)s[n]=j(a[(n+4)%5],y(a[(n+1)%5],1));for(n=0;5>n;n+=1)for(i=0;5>i;i+=1)t[n][i]=j(t[n][i],s[n]);for(n=0;5>n;n+=1)for(i=0;5>i;i+=1)f[i][(2*n+3*i)%5]=y(t[n][i],K[n][i]);for(n=0;5>n;n+=1)for(i=0;5>i;i+=1)t[n][i]=j(f[n][i],new o(~f[(n+1)%5][i].a&f[(n+2)%5][i].a,~f[(n+1)%5][i].b&f[(n+2)%5][i].b));t[0][0]=j(t[0][0],W[r])}return t}var G,V,K,W;V=[new o((G=[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])[0],3609767458),new o(G[1],602891725),new o(G[2],3964484399),new o(G[3],2173295548),new o(G[4],4081628472),new o(G[5],3053834265),new o(G[6],2937671579),new o(G[7],3664609560),new o(G[8],2734883394),new o(G[9],1164996542),new o(G[10],1323610764),new o(G[11],3590304994),new o(G[12],4068182383),new o(G[13],991336113),new o(G[14],633803317),new o(G[15],3479774868),new o(G[16],2666613458),new o(G[17],944711139),new o(G[18],2341262773),new o(G[19],2007800933),new o(G[20],1495990901),new o(G[21],1856431235),new o(G[22],3175218132),new o(G[23],2198950837),new o(G[24],3999719339),new o(G[25],766784016),new o(G[26],2566594879),new o(G[27],3203337956),new o(G[28],1034457026),new o(G[29],2466948901),new o(G[30],3758326383),new o(G[31],168717936),new o(G[32],1188179964),new o(G[33],1546045734),new o(G[34],1522805485),new o(G[35],2643833823),new o(G[36],2343527390),new o(G[37],1014477480),new o(G[38],1206759142),new o(G[39],344077627),new o(G[40],1290863460),new o(G[41],3158454273),new o(G[42],3505952657),new o(G[43],106217008),new o(G[44],3606008344),new o(G[45],1432725776),new o(G[46],1467031594),new o(G[47],851169720),new o(G[48],3100823752),new o(G[49],1363258195),new o(G[50],3750685593),new o(G[51],3785050280),new o(G[52],3318307427),new o(G[53],3812723403),new o(G[54],2003034995),new o(G[55],3602036899),new o(G[56],1575990012),new o(G[57],1125592928),new o(G[58],2716904306),new o(G[59],442776044),new o(G[60],593698344),new o(G[61],3733110249),new o(G[62],2999351573),new o(G[63],3815920427),new o(3391569614,3928383900),new o(3515267271,566280711),new o(3940187606,3454069534),new o(4118630271,4000239992),new o(116418474,1914138554),new o(174292421,2731055270),new o(289380356,3203993006),new o(460393269,320620315),new o(685471733,587496836),new o(852142971,1086792851),new o(1017036298,365543100),new o(1126000580,2618297676),new o(1288033470,3409855158),new o(1501505948,4234509866),new o(1607167915,987167468),new o(1816402316,1246189591)],W=[new o(0,1),new o(0,32898),new o(2147483648,32906),new o(2147483648,2147516416),new o(0,32907),new o(0,2147483649),new o(2147483648,2147516545),new o(2147483648,32777),new o(0,138),new o(0,136),new o(0,2147516425),new o(0,2147483658),new o(0,2147516555),new o(2147483648,139),new o(2147483648,32905),new o(2147483648,32771),new o(2147483648,32770),new o(2147483648,128),new o(0,32778),new o(2147483648,2147483658),new o(2147483648,2147516545),new o(2147483648,32896),new o(0,2147483649),new o(2147483648,2147516424)],K=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]],void 0===(n=function(){return f}.call(t,r,t,e))||(e.exports=n)}()},function(e,t,r){(function(t,n){var i;!function(){"use strict";var f="input is invalid type",o="object"==typeof window,a=o?window:{};a.JS_SHA512_NO_WINDOW&&(o=!1);var s=!o&&"object"==typeof self;!a.JS_SHA512_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?a=n:s&&(a=self);var c=!a.JS_SHA512_NO_COMMON_JS&&"object"==typeof e&&e.exports,u=r(42),l=!a.JS_SHA512_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,d="0123456789abcdef".split(""),h=[-2147483648,8388608,32768,128],p=[24,16,8,0],b=[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],y=["hex","array","digest","arrayBuffer"],m=[];!a.JS_SHA512_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!l||!a.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var g=function(e,t){return function(r){return new E(t,!0).update(r)[e]()}},v=function(e){var t=g("hex",e);t.create=function(){return new E(e)},t.update=function(e){return t.create().update(e)};for(var r=0;r<y.length;++r){var n=y[r];t[n]=g(n,e)}return t},_=function(e,t){return function(r,n){return new A(r,t,!0).update(n)[e]()}},w=function(e){var t=_("hex",e);t.create=function(t){return new A(t,e)},t.update=function(e,r){return t.create(e).update(r)};for(var r=0;r<y.length;++r){var n=y[r];t[n]=_(n,e)}return t};function E(e,t){t?(m[0]=m[1]=m[2]=m[3]=m[4]=m[5]=m[6]=m[7]=m[8]=m[9]=m[10]=m[11]=m[12]=m[13]=m[14]=m[15]=m[16]=m[17]=m[18]=m[19]=m[20]=m[21]=m[22]=m[23]=m[24]=m[25]=m[26]=m[27]=m[28]=m[29]=m[30]=m[31]=m[32]=0,this.blocks=m):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],384==e?(this.h0h=3418070365,this.h0l=3238371032,this.h1h=1654270250,this.h1l=914150663,this.h2h=2438529370,this.h2l=812702999,this.h3h=355462360,this.h3l=4144912697,this.h4h=1731405415,this.h4l=4290775857,this.h5h=2394180231,this.h5l=1750603025,this.h6h=3675008525,this.h6l=1694076839,this.h7h=1203062813,this.h7l=3204075428):256==e?(this.h0h=573645204,this.h0l=4230739756,this.h1h=2673172387,this.h1l=3360449730,this.h2h=596883563,this.h2l=1867755857,this.h3h=2520282905,this.h3l=1497426621,this.h4h=2519219938,this.h4l=2827943907,this.h5h=3193839141,this.h5l=1401305490,this.h6h=721525244,this.h6l=746961066,this.h7h=246885852,this.h7l=2177182882):224==e?(this.h0h=2352822216,this.h0l=424955298,this.h1h=1944164710,this.h1l=2312950998,this.h2h=502970286,this.h2l=855612546,this.h3h=1738396948,this.h3l=1479516111,this.h4h=258812777,this.h4l=2077511080,this.h5h=2011393907,this.h5l=79989058,this.h6h=1067287976,this.h6l=1780299464,this.h7h=286451373,this.h7l=2446758561):(this.h0h=1779033703,this.h0l=4089235720,this.h1h=3144134277,this.h1l=2227873595,this.h2h=1013904242,this.h2l=4271175723,this.h3h=2773480762,this.h3l=1595750129,this.h4h=1359893119,this.h4l=2917565137,this.h5h=2600822924,this.h5l=725511199,this.h6h=528734635,this.h6l=4215389547,this.h7h=1541459225,this.h7l=327033209),this.bits=e,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1}function A(e,t,r){var n,i=typeof e;if("string"!==i){if("object"!==i)throw new Error(f);if(null===e)throw new Error(f);if(l&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||l&&ArrayBuffer.isView(e)))throw new Error(f);n=!0}var o=e.length;if(!n){for(var a,s=[],c=(o=e.length,0),u=0;u<o;++u)(a=e.charCodeAt(u))<128?s[c++]=a:a<2048?(s[c++]=192|a>>6,s[c++]=128|63&a):a<55296||a>=57344?(s[c++]=224|a>>12,s[c++]=128|a>>6&63,s[c++]=128|63&a):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++u)),s[c++]=240|a>>18,s[c++]=128|a>>12&63,s[c++]=128|a>>6&63,s[c++]=128|63&a);e=s}e.length>128&&(e=new E(t,!0).update(e).array());var d=[],h=[];for(u=0;u<128;++u){var p=e[u]||0;d[u]=92^p,h[u]=54^p}E.call(this,t,r),this.update(h),this.oKeyPad=d,this.inner=!0,this.sharedMemory=r}E.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(f);if(null===e)throw new Error(f);if(l&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||l&&ArrayBuffer.isView(e)))throw new Error(f);t=!0}for(var n,i,o=0,a=e.length,s=this.blocks;o<a;){if(this.hashed&&(this.hashed=!1,s[0]=this.block,s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=s[16]=s[17]=s[18]=s[19]=s[20]=s[21]=s[22]=s[23]=s[24]=s[25]=s[26]=s[27]=s[28]=s[29]=s[30]=s[31]=s[32]=0),t)for(i=this.start;o<a&&i<128;++o)s[i>>2]|=e[o]<<p[3&i++];else for(i=this.start;o<a&&i<128;++o)(n=e.charCodeAt(o))<128?s[i>>2]|=n<<p[3&i++]:n<2048?(s[i>>2]|=(192|n>>6)<<p[3&i++],s[i>>2]|=(128|63&n)<<p[3&i++]):n<55296||n>=57344?(s[i>>2]|=(224|n>>12)<<p[3&i++],s[i>>2]|=(128|n>>6&63)<<p[3&i++],s[i>>2]|=(128|63&n)<<p[3&i++]):(n=65536+((1023&n)<<10|1023&e.charCodeAt(++o)),s[i>>2]|=(240|n>>18)<<p[3&i++],s[i>>2]|=(128|n>>12&63)<<p[3&i++],s[i>>2]|=(128|n>>6&63)<<p[3&i++],s[i>>2]|=(128|63&n)<<p[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=128?(this.block=s[32],this.start=i-128,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},E.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[32]=this.block,e[t>>2]|=h[3&t],this.block=e[32],t>=112&&(this.hashed||this.hash(),e[0]=this.block,e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=e[16]=e[17]=e[18]=e[19]=e[20]=e[21]=e[22]=e[23]=e[24]=e[25]=e[26]=e[27]=e[28]=e[29]=e[30]=e[31]=e[32]=0),e[30]=this.hBytes<<3|this.bytes>>>29,e[31]=this.bytes<<3,this.hash()}},E.prototype.hash=function(){var e,t,r,n,i,f,o,a,s,c,u,l,d,h,p,y,m,g,v,_,w,E,A,S,T,x=this.h0h,P=this.h0l,R=this.h1h,k=this.h1l,C=this.h2h,O=this.h2l,M=this.h3h,N=this.h3l,I=this.h4h,D=this.h4l,B=this.h5h,F=this.h5l,j=this.h6h,L=this.h6l,U=this.h7h,q=this.h7l,z=this.blocks;for(e=32;e<160;e+=2)t=((_=z[e-30])>>>1|(w=z[e-29])<<31)^(_>>>8|w<<24)^_>>>7,r=(w>>>1|_<<31)^(w>>>8|_<<24)^(w>>>7|_<<25),n=((_=z[e-4])>>>19|(w=z[e-3])<<13)^(w>>>29|_<<3)^_>>>6,i=(w>>>19|_<<13)^(_>>>29|w<<3)^(w>>>6|_<<26),_=z[e-32],w=z[e-31],s=((E=z[e-14])>>>16)+(_>>>16)+(t>>>16)+(n>>>16)+((a=(65535&E)+(65535&_)+(65535&t)+(65535&n)+((o=((A=z[e-13])>>>16)+(w>>>16)+(r>>>16)+(i>>>16)+((f=(65535&A)+(65535&w)+(65535&r)+(65535&i))>>>16))>>>16))>>>16),z[e]=s<<16|65535&a,z[e+1]=o<<16|65535&f;var H=x,G=P,V=R,K=k,W=C,$=O,Y=M,J=N,X=I,Z=D,Q=B,ee=F,te=j,re=L,ne=U,ie=q;for(y=V&W,m=K&$,e=0;e<160;e+=8)t=(H>>>28|G<<4)^(G>>>2|H<<30)^(G>>>7|H<<25),r=(G>>>28|H<<4)^(H>>>2|G<<30)^(H>>>7|G<<25),n=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),i=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),g=(c=H&V)^H&W^y,v=(u=G&K)^G&$^m,S=X&Q^~X&te,T=Z&ee^~Z&re,_=z[e],w=z[e+1],_=(s=((E=b[e])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(ne>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&ne)+((o=((A=b[e+1])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(ie>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&ie))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,ne=(s=(Y>>>16)+(_>>>16)+((a=(65535&Y)+(65535&_)+((o=(J>>>16)+(w>>>16)+((f=(65535&J)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,ie=o<<16|65535&f,t=((Y=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a)>>>28|(J=o<<16|65535&f)<<4)^(J>>>2|Y<<30)^(J>>>7|Y<<25),r=(J>>>28|Y<<4)^(Y>>>2|J<<30)^(Y>>>7|J<<25),n=(ne>>>14|ie<<18)^(ne>>>18|ie<<14)^(ie>>>9|ne<<23),i=(ie>>>14|ne<<18)^(ie>>>18|ne<<14)^(ne>>>9|ie<<23),g=(l=Y&H)^Y&V^c,v=(d=J&G)^J&K^u,S=ne&X^~ne&Q,T=ie&Z^~ie&ee,_=z[e+2],w=z[e+3],_=(s=((E=b[e+2])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(te>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&te)+((o=((A=b[e+3])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(re>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&re))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,te=(s=(W>>>16)+(_>>>16)+((a=(65535&W)+(65535&_)+((o=($>>>16)+(w>>>16)+((f=(65535&$)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,re=o<<16|65535&f,t=((W=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a)>>>28|($=o<<16|65535&f)<<4)^($>>>2|W<<30)^($>>>7|W<<25),r=($>>>28|W<<4)^(W>>>2|$<<30)^(W>>>7|$<<25),n=(te>>>14|re<<18)^(te>>>18|re<<14)^(re>>>9|te<<23),i=(re>>>14|te<<18)^(re>>>18|te<<14)^(te>>>9|re<<23),g=(h=W&Y)^W&H^l,v=(p=$&J)^$&G^d,S=te&ne^~te&X,T=re&ie^~re&Z,_=z[e+4],w=z[e+5],_=(s=((E=b[e+4])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(Q>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&Q)+((o=((A=b[e+5])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(ee>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&ee))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,Q=(s=(V>>>16)+(_>>>16)+((a=(65535&V)+(65535&_)+((o=(K>>>16)+(w>>>16)+((f=(65535&K)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,ee=o<<16|65535&f,t=((V=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a)>>>28|(K=o<<16|65535&f)<<4)^(K>>>2|V<<30)^(K>>>7|V<<25),r=(K>>>28|V<<4)^(V>>>2|K<<30)^(V>>>7|K<<25),n=(Q>>>14|ee<<18)^(Q>>>18|ee<<14)^(ee>>>9|Q<<23),i=(ee>>>14|Q<<18)^(ee>>>18|Q<<14)^(Q>>>9|ee<<23),g=(y=V&W)^V&Y^h,v=(m=K&$)^K&J^p,S=Q&te^~Q&ne,T=ee&re^~ee&ie,_=z[e+6],w=z[e+7],_=(s=((E=b[e+6])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(X>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&X)+((o=((A=b[e+7])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(Z>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&Z))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,X=(s=(H>>>16)+(_>>>16)+((a=(65535&H)+(65535&_)+((o=(G>>>16)+(w>>>16)+((f=(65535&G)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,Z=o<<16|65535&f,H=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,G=o<<16|65535&f;s=(x>>>16)+(H>>>16)+((a=(65535&x)+(65535&H)+((o=(P>>>16)+(G>>>16)+((f=(65535&P)+(65535&G))>>>16))>>>16))>>>16),this.h0h=s<<16|65535&a,this.h0l=o<<16|65535&f,s=(R>>>16)+(V>>>16)+((a=(65535&R)+(65535&V)+((o=(k>>>16)+(K>>>16)+((f=(65535&k)+(65535&K))>>>16))>>>16))>>>16),this.h1h=s<<16|65535&a,this.h1l=o<<16|65535&f,s=(C>>>16)+(W>>>16)+((a=(65535&C)+(65535&W)+((o=(O>>>16)+($>>>16)+((f=(65535&O)+(65535&$))>>>16))>>>16))>>>16),this.h2h=s<<16|65535&a,this.h2l=o<<16|65535&f,s=(M>>>16)+(Y>>>16)+((a=(65535&M)+(65535&Y)+((o=(N>>>16)+(J>>>16)+((f=(65535&N)+(65535&J))>>>16))>>>16))>>>16),this.h3h=s<<16|65535&a,this.h3l=o<<16|65535&f,s=(I>>>16)+(X>>>16)+((a=(65535&I)+(65535&X)+((o=(D>>>16)+(Z>>>16)+((f=(65535&D)+(65535&Z))>>>16))>>>16))>>>16),this.h4h=s<<16|65535&a,this.h4l=o<<16|65535&f,s=(B>>>16)+(Q>>>16)+((a=(65535&B)+(65535&Q)+((o=(F>>>16)+(ee>>>16)+((f=(65535&F)+(65535&ee))>>>16))>>>16))>>>16),this.h5h=s<<16|65535&a,this.h5l=o<<16|65535&f,s=(j>>>16)+(te>>>16)+((a=(65535&j)+(65535&te)+((o=(L>>>16)+(re>>>16)+((f=(65535&L)+(65535&re))>>>16))>>>16))>>>16),this.h6h=s<<16|65535&a,this.h6l=o<<16|65535&f,s=(U>>>16)+(ne>>>16)+((a=(65535&U)+(65535&ne)+((o=(q>>>16)+(ie>>>16)+((f=(65535&q)+(65535&ie))>>>16))>>>16))>>>16),this.h7h=s<<16|65535&a,this.h7l=o<<16|65535&f},E.prototype.hex=function(){this.finalize();var e=this.h0h,t=this.h0l,r=this.h1h,n=this.h1l,i=this.h2h,f=this.h2l,o=this.h3h,a=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,l=this.h5l,h=this.h6h,p=this.h6l,b=this.h7h,y=this.h7l,m=this.bits,g=d[e>>28&15]+d[e>>24&15]+d[e>>20&15]+d[e>>16&15]+d[e>>12&15]+d[e>>8&15]+d[e>>4&15]+d[15&e]+d[t>>28&15]+d[t>>24&15]+d[t>>20&15]+d[t>>16&15]+d[t>>12&15]+d[t>>8&15]+d[t>>4&15]+d[15&t]+d[r>>28&15]+d[r>>24&15]+d[r>>20&15]+d[r>>16&15]+d[r>>12&15]+d[r>>8&15]+d[r>>4&15]+d[15&r]+d[n>>28&15]+d[n>>24&15]+d[n>>20&15]+d[n>>16&15]+d[n>>12&15]+d[n>>8&15]+d[n>>4&15]+d[15&n]+d[i>>28&15]+d[i>>24&15]+d[i>>20&15]+d[i>>16&15]+d[i>>12&15]+d[i>>8&15]+d[i>>4&15]+d[15&i]+d[f>>28&15]+d[f>>24&15]+d[f>>20&15]+d[f>>16&15]+d[f>>12&15]+d[f>>8&15]+d[f>>4&15]+d[15&f]+d[o>>28&15]+d[o>>24&15]+d[o>>20&15]+d[o>>16&15]+d[o>>12&15]+d[o>>8&15]+d[o>>4&15]+d[15&o];return m>=256&&(g+=d[a>>28&15]+d[a>>24&15]+d[a>>20&15]+d[a>>16&15]+d[a>>12&15]+d[a>>8&15]+d[a>>4&15]+d[15&a]),m>=384&&(g+=d[s>>28&15]+d[s>>24&15]+d[s>>20&15]+d[s>>16&15]+d[s>>12&15]+d[s>>8&15]+d[s>>4&15]+d[15&s]+d[c>>28&15]+d[c>>24&15]+d[c>>20&15]+d[c>>16&15]+d[c>>12&15]+d[c>>8&15]+d[c>>4&15]+d[15&c]+d[u>>28&15]+d[u>>24&15]+d[u>>20&15]+d[u>>16&15]+d[u>>12&15]+d[u>>8&15]+d[u>>4&15]+d[15&u]+d[l>>28&15]+d[l>>24&15]+d[l>>20&15]+d[l>>16&15]+d[l>>12&15]+d[l>>8&15]+d[l>>4&15]+d[15&l]),512==m&&(g+=d[h>>28&15]+d[h>>24&15]+d[h>>20&15]+d[h>>16&15]+d[h>>12&15]+d[h>>8&15]+d[h>>4&15]+d[15&h]+d[p>>28&15]+d[p>>24&15]+d[p>>20&15]+d[p>>16&15]+d[p>>12&15]+d[p>>8&15]+d[p>>4&15]+d[15&p]+d[b>>28&15]+d[b>>24&15]+d[b>>20&15]+d[b>>16&15]+d[b>>12&15]+d[b>>8&15]+d[b>>4&15]+d[15&b]+d[y>>28&15]+d[y>>24&15]+d[y>>20&15]+d[y>>16&15]+d[y>>12&15]+d[y>>8&15]+d[y>>4&15]+d[15&y]),g},E.prototype.toString=E.prototype.hex,E.prototype.digest=function(){this.finalize();var e=this.h0h,t=this.h0l,r=this.h1h,n=this.h1l,i=this.h2h,f=this.h2l,o=this.h3h,a=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,l=this.h5l,d=this.h6h,h=this.h6l,p=this.h7h,b=this.h7l,y=this.bits,m=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,f>>24&255,f>>16&255,f>>8&255,255&f,o>>24&255,o>>16&255,o>>8&255,255&o];return y>=256&&m.push(a>>24&255,a>>16&255,a>>8&255,255&a),y>=384&&m.push(s>>24&255,s>>16&255,s>>8&255,255&s,c>>24&255,c>>16&255,c>>8&255,255&c,u>>24&255,u>>16&255,u>>8&255,255&u,l>>24&255,l>>16&255,l>>8&255,255&l),512==y&&m.push(d>>24&255,d>>16&255,d>>8&255,255&d,h>>24&255,h>>16&255,h>>8&255,255&h,p>>24&255,p>>16&255,p>>8&255,255&p,b>>24&255,b>>16&255,b>>8&255,255&b),m},E.prototype.array=E.prototype.digest,E.prototype.arrayBuffer=function(){this.finalize();var e=this.bits,t=new ArrayBuffer(e/8),r=new DataView(t);return r.setUint32(0,this.h0h),r.setUint32(4,this.h0l),r.setUint32(8,this.h1h),r.setUint32(12,this.h1l),r.setUint32(16,this.h2h),r.setUint32(20,this.h2l),r.setUint32(24,this.h3h),e>=256&&r.setUint32(28,this.h3l),e>=384&&(r.setUint32(32,this.h4h),r.setUint32(36,this.h4l),r.setUint32(40,this.h5h),r.setUint32(44,this.h5l)),512==e&&(r.setUint32(48,this.h6h),r.setUint32(52,this.h6l),r.setUint32(56,this.h7h),r.setUint32(60,this.h7l)),t},E.prototype.clone=function(){var e=new E(this.bits,!1);return this.copyTo(e),e},E.prototype.copyTo=function(e){var t=0,r=["h0h","h0l","h1h","h1l","h2h","h2l","h3h","h3l","h4h","h4l","h5h","h5l","h6h","h6l","h7h","h7l","start","bytes","hBytes","finalized","hashed","lastByteIndex"];for(t=0;t<r.length;++t)e[r[t]]=this[r[t]];for(t=0;t<this.blocks.length;++t)e.blocks[t]=this.blocks[t]},A.prototype=new E,A.prototype.finalize=function(){if(E.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();E.call(this,this.bits,this.sharedMemory),this.update(this.oKeyPad),this.update(e),E.prototype.finalize.call(this)}},A.prototype.clone=function(){var e=new A([],this.bits,!1);this.copyTo(e),e.inner=this.inner;for(var t=0;t<this.oKeyPad.length;++t)e.oKeyPad[t]=this.oKeyPad[t];return e};var S=v(512);S.sha512=S,S.sha384=v(384),S.sha512_256=v(256),S.sha512_224=v(224),S.sha512.hmac=w(512),S.sha384.hmac=w(384),S.sha512_256.hmac=w(256),S.sha512_224.hmac=w(224),c?e.exports=S:(a.sha512=S.sha512,a.sha384=S.sha384,a.sha512_256=S.sha512_256,a.sha512_224=S.sha512_224,u&&(void 0===(i=function(){return S}.call(S,r,S,e))||(e.exports=i)))}()}).call(this,r(10),r(12))},function(e,t,r){"use strict";(function(t){o.sigma=[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9],[12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11],[13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10],[6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5],[10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]],o.u256=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479],o.padding=t.from([128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),o.prototype._length_carry=function(e){for(var t=0;t<e.length&&!(e[t]<4294967296);++t)e[t]-=4294967296,e[t+1]+=1},o.prototype.update=function(e,r){e=t.from(e,r);for(var n=this._block,i=0;this._blockOffset+e.length-i>=n.length;){for(var f=this._blockOffset;f<n.length;)n[f++]=e[i++];this._length[0]+=8*n.length,this._length_carry(this._length),this._compress(),this._blockOffset=0}for(;i<e.length;)n[this._blockOffset++]=e[i++];return this};var r=t.from([1]),n=t.from([129]);function i(e,t){return(e<<32-t|e>>>t)>>>0}function f(e,t,r,n,f,a,s,c){var u=o.sigma,l=o.u256;e[n]=e[n]+((t[u[r][c]]^l[u[r][c+1]])>>>0)+e[f]>>>0,e[s]=i(e[s]^e[n],16),e[a]=e[a]+e[s]>>>0,e[f]=i(e[f]^e[a],12),e[n]=e[n]+((t[u[r][c+1]]^l[u[r][c]])>>>0)+e[f]>>>0,e[s]=i(e[s]^e[n],8),e[a]=e[a]+e[s]>>>0,e[f]=i(e[f]^e[a],7)}function o(){this._h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this._s=[0,0,0,0],this._block=t.allocUnsafe(64),this._blockOffset=0,this._length=[0,0],this._nullt=!1,this._zo=r,this._oo=n}o.prototype._compress=function(){var e,t=o.u256,r=new Array(16),n=new Array(16);for(e=0;e<16;++e)n[e]=this._block.readUInt32BE(4*e);for(e=0;e<8;++e)r[e]=this._h[e]>>>0;for(e=8;e<12;++e)r[e]=(this._s[e-8]^t[e-8])>>>0;for(e=12;e<16;++e)r[e]=t[e-8];for(this._nullt||(r[12]=(r[12]^this._length[0])>>>0,r[13]=(r[13]^this._length[0])>>>0,r[14]=(r[14]^this._length[1])>>>0,r[15]=(r[15]^this._length[1])>>>0),e=0;e<14;++e)f(r,n,e,0,4,8,12,0),f(r,n,e,1,5,9,13,2),f(r,n,e,2,6,10,14,4),f(r,n,e,3,7,11,15,6),f(r,n,e,0,5,10,15,8),f(r,n,e,1,6,11,12,10),f(r,n,e,2,7,8,13,12),f(r,n,e,3,4,9,14,14);for(e=0;e<16;++e)this._h[e%8]=(this._h[e%8]^r[e])>>>0;for(e=0;e<8;++e)this._h[e]=(this._h[e]^this._s[e%4])>>>0},o.prototype._padding=function(){var e=this._length[0]+8*this._blockOffset,r=this._length[1];e>=4294967296&&(e-=4294967296,r+=1);var n=t.allocUnsafe(8);n.writeUInt32BE(r,0),n.writeUInt32BE(e,4),55===this._blockOffset?(this._length[0]-=8,this.update(this._oo)):(this._blockOffset<55?(0===this._blockOffset&&(this._nullt=!0),this._length[0]-=8*(55-this._blockOffset),this.update(o.padding.slice(0,55-this._blockOffset))):(this._length[0]-=8*(64-this._blockOffset),this.update(o.padding.slice(0,64-this._blockOffset)),this._length[0]-=440,this.update(o.padding.slice(1,56)),this._nullt=!0),this.update(this._zo),this._length[0]-=8),this._length[0]-=64,this.update(n)},o.prototype.digest=function(e){this._padding();for(var r=t.allocUnsafe(32),n=0;n<8;++n)r.writeUInt32BE(this._h[n],4*n);return r.toString(e)},e.exports=o}).call(this,r(7).Buffer)},function(e,t,r){"use strict";(function(t,r){var n="input is invalid type",i="object"==typeof window,f=i?window:{};f.JS_SHA3_NO_WINDOW&&(i=!1);var o=!i&&"object"==typeof self;!f.JS_SHA3_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?f=r:o&&(f=self);var a=!f.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!f.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!a||!f.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var y=function(e,t,r){return function(n){return new O(e,t,e).update(n)[r]()}},m=function(e,t,r){return function(n,i){return new O(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,f){return A["cshake"+e].update(t,n,i,f)[r]()}},v=function(e,t,r){return function(t,n,i,f){return A["kmac"+e].update(t,n,i,f)[r]()}},_=function(e,t,r,n){for(var i=0;i<p.length;++i){var f=p[i];e[f]=t(r,n,f)}return e},w=function(e,t){var r=y(e,t,"hex");return r.create=function(){return new O(e,t,e)},r.update=function(e){return r.create().update(e)},_(r,y,e,t)},E=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=m(e,t,"hex");return r.create=function(r){return new O(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},_(r,m,e,t)}},{name:"cshake",padding:c,bits:h,createMethod:function(e,t){var r=b[e],n=g(e,0,"hex");return n.create=function(n,i,f){return i||f?new O(e,t,n).bytepad([i,f],r):A["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},_(n,g,e,t)}},{name:"kmac",padding:c,bits:h,createMethod:function(e,t){var r=b[e],n=v(e,0,"hex");return n.create=function(n,i,f){return new M(e,t,i).bytepad(["KMAC",f],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},_(n,v,e,t)}}],A={},S=[],T=0;T<E.length;++T)for(var x=E[T],P=x.bits,R=0;R<P.length;++R){var k=x.name+"_"+P[R];if(S.push(k),A[k]=x.createMethod(P[R],x.padding),"sha3"!==x.name){var C=x.name+P[R];S.push(C),A[C]=A[k]}}function O(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function M(e,t,r){O.call(this,e,t,r)}O.prototype.update=function(e){if(!this.finalized){var t,r=typeof e;if("string"!==r){if("object"!==r)throw n;if(null===e)throw n;if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw n;t=!0}for(var i,f,o=this.blocks,s=this.byteCount,c=e.length,l=this.blockCount,d=0,h=this.s;d<c;){if(this.reset)for(this.reset=!1,o[0]=this.block,i=1;i<l+1;++i)o[i]=0;if(t)for(i=this.start;d<c&&i<s;++d)o[i>>2]|=e[d]<<u[3&i++];else for(i=this.start;d<c&&i<s;++d)(f=e.charCodeAt(d))<128?o[i>>2]|=f<<u[3&i++]:f<2048?(o[i>>2]|=(192|f>>6)<<u[3&i++],o[i>>2]|=(128|63&f)<<u[3&i++]):f<55296||f>=57344?(o[i>>2]|=(224|f>>12)<<u[3&i++],o[i>>2]|=(128|f>>6&63)<<u[3&i++],o[i>>2]|=(128|63&f)<<u[3&i++]):(f=65536+((1023&f)<<10|1023&e.charCodeAt(++d)),o[i>>2]|=(240|f>>18)<<u[3&i++],o[i>>2]|=(128|f>>12&63)<<u[3&i++],o[i>>2]|=(128|f>>6&63)<<u[3&i++],o[i>>2]|=(128|63&f)<<u[3&i++]);if(this.lastByteIndex=i,i>=s){for(this.start=i-s,this.block=o[l],i=0;i<l;++i)h[i]^=o[i];N(h),this.reset=!0}else this.start=i}return this}},O.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},O.prototype.encodeString=function(e){var t,r=typeof e;if("string"!==r){if("object"!==r)throw n;if(null===e)throw n;if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw n;t=!0}var i=0,f=e.length;if(t)i=f;else for(var o=0;o<e.length;++o){var s=e.charCodeAt(o);s<128?i+=1:s<2048?i+=2:s<55296||s>=57344?i+=3:(s=65536+((1023&s)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},O.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=t-r%t,f=[];return f.length=i,this.update(f),this},O.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];N(n)}},O.prototype.toString=O.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,f=0,o=0,a="";o<n;){for(f=0;f<t&&o<n;++f,++o)e=r[f],a+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(N(r),f=0)}return i&&(e=r[f],a+=s[e>>4&15]+s[15&e],i>1&&(a+=s[e>>12&15]+s[e>>8&15]),i>2&&(a+=s[e>>20&15]+s[e>>16&15])),a},O.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,f=0,o=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var s=new Uint32Array(e);o<n;){for(f=0;f<t&&o<n;++f,++o)s[o]=r[f];o%t==0&&N(r)}return i&&(s[f]=r[f],e=e.slice(0,a)),e},O.prototype.buffer=O.prototype.arrayBuffer,O.prototype.digest=O.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,f=this.extraBytes,o=0,a=0,s=[];a<i;){for(o=0;o<r&&a<i;++o,++a)e=a<<2,t=n[o],s[e]=255&t,s[e+1]=t>>8&255,s[e+2]=t>>16&255,s[e+3]=t>>24&255;a%r==0&&N(n)}return f&&(e=a<<2,t=n[o],s[e]=255&t,f>1&&(s[e+1]=t>>8&255),f>2&&(s[e+2]=t>>16&255)),s},M.prototype=new O,M.prototype.finalize=function(){return this.encode(this.outputBits,!0),O.prototype.finalize.call(this)};var N=function(e){var t,r,n,i,f,o,a,s,c,u,d,h,p,b,y,m,g,v,_,w,E,A,S,T,x,P,R,k,C,O,M,N,I,D,B,F,j,L,U,q,z,H,G,V,K,W,$,Y,J,X,Z,Q,ee,te,re,ne,ie,fe,oe,ae,se,ce,ue;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],f=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],s=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],u=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|a>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(a<<1|o>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(s<<1|c>>>31),r=f^(c<<1|s>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=o^(u<<1|d>>>31),r=a^(d<<1|u>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=s^(h<<1|p>>>31),r=c^(p<<1|h>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=u^(i<<1|f>>>31),r=d^(f<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],y=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,C=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,se=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,G=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,J=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,j=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,_=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,I=e[44]<<29|e[45]>>>3,T=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,R=e[19]<<20|e[18]>>>12,fe=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,q=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~m&v,e[1]=y^~g&_,e[10]=T^~P&k,e[11]=x^~R&C,e[20]=D^~F&L,e[21]=B^~j&U,e[30]=V^~W&Y,e[31]=K^~$&J,e[40]=te^~ne&fe,e[41]=re^~ie&oe,e[2]=m^~v&w,e[3]=g^~_&E,e[12]=P^~k&O,e[13]=R^~C&M,e[22]=F^~L&q,e[23]=j^~U&z,e[32]=W^~Y&X,e[33]=$^~J&Z,e[42]=ne^~fe&ae,e[43]=ie^~oe&se,e[4]=v^~w&A,e[5]=_^~E&S,e[14]=k^~O&N,e[15]=C^~M&I,e[24]=L^~q&H,e[25]=U^~z&G,e[34]=Y^~X&Q,e[35]=J^~Z&ee,e[44]=fe^~ae&ce,e[45]=oe^~se&ue,e[6]=w^~A&b,e[7]=E^~S&y,e[16]=O^~N&T,e[17]=M^~I&x,e[26]=q^~H&D,e[27]=z^~G&B,e[36]=X^~Q&V,e[37]=Z^~ee&K,e[46]=ae^~ce&te,e[47]=se^~ue&re,e[8]=A^~b&m,e[9]=S^~y&g,e[18]=N^~T&P,e[19]=I^~x&R,e[28]=H^~D&F,e[29]=G^~B&j,e[38]=Q^~V&W,e[39]=ee^~K&$,e[48]=ce^~te&ne,e[49]=ue^~re&ie,e[0]^=l[n],e[1]^=l[n+1]};e.exports=A}).call(this,r(10),r(12))},function(e,t,r){"use strict";function n(e,t,r){var n=e[t]+e[r],i=e[t+1]+e[r+1];n>=4294967296&&i++,e[t]=n,e[t+1]=i}function i(e,t,r,n){var i=e[t]+r;r<0&&(i+=4294967296);var f=e[t+1]+n;i>=4294967296&&f++,e[t]=i,e[t+1]=f}function f(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function o(e,t,r,f,o,a){var s=u[o],l=u[o+1],d=u[a],h=u[a+1];n(c,e,t),i(c,e,s,l);var p=c[f]^c[e],b=c[f+1]^c[e+1];c[f]=b,c[f+1]=p,n(c,r,f),p=c[t]^c[r],b=c[t+1]^c[r+1],c[t]=p>>>24^b<<8,c[t+1]=b>>>24^p<<8,n(c,e,t),i(c,e,d,h),p=c[f]^c[e],b=c[f+1]^c[e+1],c[f]=p>>>16^b<<16,c[f+1]=b>>>16^p<<16,n(c,r,f),p=c[t]^c[r],b=c[t+1]^c[r+1],c[t]=b>>>31^p<<1,c[t+1]=p>>>31^b<<1}var a=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((function(e){return 2*e}))),c=new Uint32Array(32),u=new Uint32Array(32);function l(e,t){var r=0;for(r=0;r<16;r++)c[r]=e.h[r],c[r+16]=a[r];for(c[24]=c[24]^e.t,c[25]=c[25]^e.t/4294967296,t&&(c[28]=~c[28],c[29]=~c[29]),r=0;r<32;r++)u[r]=f(e.b,4*r);for(r=0;r<12;r++)o(0,8,16,24,s[16*r+0],s[16*r+1]),o(2,10,18,26,s[16*r+2],s[16*r+3]),o(4,12,20,28,s[16*r+4],s[16*r+5]),o(6,14,22,30,s[16*r+6],s[16*r+7]),o(0,10,20,30,s[16*r+8],s[16*r+9]),o(2,12,22,24,s[16*r+10],s[16*r+11]),o(4,14,16,26,s[16*r+12],s[16*r+13]),o(6,8,18,28,s[16*r+14],s[16*r+15]);for(r=0;r<16;r++)e.h[r]=e.h[r]^c[r]^c[r+16]}var d=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function h(e,t,r,n){d.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,d[0]=e,t&&(d[1]=t.length),d[2]=1,d[3]=1,r&&d.set(r,32),n&&d.set(n,48);for(var i=0;i<16;i++)this.h[i]=a[i]^f(d,4*i);t&&(p(this,t),this.c=128)}function p(e,t){for(var r=0;r<t.length;r++)128===e.c&&(e.t+=e.c,l(e,!1),e.c=0),e.b[e.c++]=t[r]}function b(e){return e<16?"0"+e.toString(16):e.toString(16)}h.prototype.update=function(e){return p(this,e),this},h.prototype.digest=function(e){var t=e&&"binary"!==e&&"hex"!==e?e:new Uint8Array(this.outlen);return function(e,t){e.t+=e.c;for(;e.c<128;)e.b[e.c++]=0;l(e,!0);for(var r=0;r<e.outlen;r++)t[r]=e.h[r>>2]>>8*(3&r)}(this,t),"hex"===e?function(e){for(var t="",r=0;r<e.length;r++)t+=b(e[r]);return t}(t):t},h.prototype.final=h.prototype.digest,e.exports=h},function(e,t){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";e.exports={b32decode:function(e){for(var t=new ArrayBuffer(5*e.length/8),n=new Uint8Array(t),i=0;i<e.length/8;i++){for(var f=[0,0,0,0,0,0,0,0],o=0;o<8;++o)f[o]=r.indexOf(e[8*i+o]);o=0;n[5*i+0]=f[o+0]<<3|f[o+1]>>2,n[5*i+1]=(3&f[o+1])<<6|f[o+2]<<1|f[o+3]>>4,n[5*i+2]=(15&f[o+3])<<4|f[o+4]>>1,n[5*i+3]=(1&f[o+4])<<7|f[o+5]<<2|f[o+6]>>3,n[5*i+4]=(7&f[o+6])<<5|f[o+7]}return n},b32encode:function(e){var t=[],n=Math.floor(e.length/5),i=e.length%5;if(0!=i){for(var f=0;f<5-i;f++)e+="\0";n+=1}for(f=0;f<n;f++)t.push(r.charAt(e.charCodeAt(5*f)>>3)),t.push(r.charAt((7&e.charCodeAt(5*f))<<2|e.charCodeAt(5*f+1)>>6)),t.push(r.charAt((63&e.charCodeAt(5*f+1))>>1)),t.push(r.charAt((1&e.charCodeAt(5*f+1))<<4|e.charCodeAt(5*f+2)>>4)),t.push(r.charAt((15&e.charCodeAt(5*f+2))<<1|e.charCodeAt(5*f+3)>>7)),t.push(r.charAt((127&e.charCodeAt(5*f+3))>>2)),t.push(r.charAt((3&e.charCodeAt(5*f+3))<<3|e.charCodeAt(5*f+4)>>5)),t.push(r.charAt(31&e.charCodeAt(5*f+4)));var o=0;1==i?o=6:2==i?o=4:3==i?o=3:4==i&&(o=1);for(f=0;f<o;f++)t.pop();for(f=0;f<o;f++)t.push("=");return t.join("")}}},function(e,t,r){(function(t){var r,n=1e9,i=1e6,f=20,o=4,a=-7,s=21,c=-n,u=n,l=!0,d=parseInt,h=v.prototype,p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",b=0,y=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,m=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=v(1);function v(e,t){var n,i,a,s,d,h,g=this;if(!(g instanceof v))return new v(e,t);if(e instanceof v){if(b=0,t===n)return g.s=e.s,g.e=e.e,void(g.c=(e=e.c)?e.slice():e);e+=""}if("string"!=typeof e&&(e=(a="number"==typeof e||"[object Number]"==Object.prototype.toString.call(e))&&0===e&&1/e<0?"-0":e+""),h=e,t===n&&y.test(e))g.s="-"==e.charAt(0)?(e=e.slice(1),-1):1;else{if(10==t)return T(e,f,o);if(e=m.call(e).replace(/^\+(?!-)/,""),g.s="-"==e.charAt(0)?(e=e.replace(/^-(?!-)/,""),-1):1,null!=t?t!=(0|t)&&l||(r=!(t>=2&&t<65))?(_(t,2),d=y.test(e)):(s="["+p.slice(0,t|=0)+"]+",e=e.replace(/\.$/,"").replace(/^\./,"0."),(d=new RegExp("^"+s+"(?:\\."+s+")?$",t<37?"i":"").test(e))?(a&&(e.replace(/^0\.0*|\./,"").length>15&&_(h,0),a=!a),e=w(e,10,t,g.s)):"Infinity"!=e&&"NaN"!=e&&(_(h,1,t),e="NaN")):d=y.test(e),!d)return g.c=g.e=null,"Infinity"!=e&&("NaN"!=e&&_(h,3),g.s=null),void(b=0)}for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;"0"==e.charAt(i);i++);if(t=e.length,a&&t>15&&e.slice(i).length>15&&_(h,0),b=0,(n-=i+1)>u)g.c=g.e=null;else if(i==t||n<c)g.c=[g.e=0];else{for(;"0"==e.charAt(--t););for(g.e=n,g.c=[],n=0;i<=t;g.c[n++]=+e.charAt(i++));}}function _(e,t,n,i,f,o){if(l){var a,s=["new BigNumber","cmp","div","eq","gt","gte","lt","lte","minus","mod","plus","times","toFr"][b?b<0?-b:b:1/b<0?1:0]+"()",c=r?" out of range":" not a"+(f?" non-zero":"n")+" integer";throw c=([s+" number type has more than 15 significant digits",s+" not a base "+n+" number",s+" base"+c,s+" not a number"][t]||n+"() "+t+(o?" not a boolean or binary digit":c+(i?" or not ["+(r?" negative, positive":" integer, integer")+" ]":"")))+": "+e,r=b=0,(a=new Error(c)).name="BigNumber Error",a}}function w(e,t,r,n){var i,f,o,a,s,c;function u(e,n){var i,f,o=0,a=e.length,s=[0];for(n=n||r;o<a;o++){for(f=s.length,i=0;i<f;s[i]*=n,i++);for(s[0]+=p.indexOf(e.charAt(o)),i=0;i<s.length;i++)s[i]>t-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/t^0,s[i]%=t)}return s.reverse()}function l(e){for(var t=0,r=e.length,n="";t<r;n+=p.charAt(e[t++]));return n}if(r<37&&(e=e.toLowerCase()),(i=e.indexOf("."))>-1)if(i=e.length-i-1,f=u(new v(r).pow(i).toF(),10),o=u((a=e.split("."))[1]),a=u(a[0]),s=(c=E(o,f,o.length-f.length,n,t,1&a[a.length-1])).c,i=c.e){for(;++i;s.unshift(0));e=l(a)+"."+l(s)}else s[0]?a[i=a.length-1]<t-1?(++a[i],e=l(a)):e=new v(l(a),t).plus(g).toS(t):e=l(a);else e=l(u(e));return e}function E(e,t,r,n,i,o){var a,s,l,d,h,p=t.slice(),b=a=t.length,y=e.length,m=e.slice(0,a),_=m.length,w=new v(g),E=w.c=[],A=0,T=f+(w.e=r)+1;for(w.s=n,n=T<0?0:T;_++<a;m.push(0));p.unshift(0);do{for(l=0;l<i;l++){if(a!=(_=m.length))d=a>_?1:-1;else for(h=-1,d=0;++h<a;)if(t[h]!=m[h]){d=t[h]>m[h]?1:-1;break}if(!(d<0))break;for(s=_==a?t:p;_;){if(m[--_]<s[_]){for(h=_;h&&!m[--h];m[h]=i-1);--m[h],m[_]+=i}m[_]-=s[_]}for(;!m[0];m.shift());}E[A++]=d?l:++l,m[0]&&d?m[_]=e[b]||0:m=[e[b]]}while((b++<y||null!=m[0])&&n--);return E[0]||1==A||(--w.e,E.shift()),A>T&&S(w,f,i,o,null!=m[0]),w.e>u?w.c=w.e=null:w.e<c&&(w.c=[w.e=0]),w}function A(e,t,r){var n=t-(e=new v(e)).e,i=e.c;if(!i)return e.toS();for(i.length>++t&&S(e,n,10),n=0==i[0]?n+1:r?t:e.e+n+1;i.length<n;i.push(0));return n=e.e,1==r||2==r&&(--t<n||n<=a)?(e.s<0&&i[0]?"-":"")+(i.length>1?(i.splice(1,0,"."),i.join("")):i[0])+(n<0?"e":"e+")+n:e.toS()}function S(e,t,r,n,i){var f=e.c,a=e.s<0,s=r/2,c=e.e+t+1,u=f[c],l=i||c<0||null!=f[c+1];if(i=o<4?(null!=u||l)&&(0==o||2==o&&!a||3==o&&a):u>s||u==s&&(4==o||l||6==o&&(1&f[c-1]||!t&&n)||7==o&&!a||8==o&&a),c<1||!f[0])return f.length=0,f.push(0),i?(f[0]=1,e.e=-t):e.e=0,e;if(f.length=c--,i)for(--r;++f[c]>r;)f[c]=0,c--||(++e.e,f.unshift(1));for(c=f.length;!f[--c];f.pop());return e}function T(e,t,r){var n=o;return o=r,(e=new v(e)).c&&S(e,t,10),o=n,e}v.ROUND_UP=0,v.ROUND_DOWN=1,v.ROUND_CEIL=2,v.ROUND_FLOOR=3,v.ROUND_HALF_UP=4,v.ROUND_HALF_DOWN=5,v.ROUND_HALF_EVEN=6,v.ROUND_HALF_CEIL=7,v.ROUND_HALF_FLOOR=8,v.fromBuffer=function(e,t){t||(t={});var r={1:"big","-1":"little"}[t.endian]||t.endian||"big",n="auto"===t.size?Math.ceil(e.length):t.size||1;if(e.length%n!=0)throw new RangeError("Buffer length ("+e.length+") must be a multiple of size ("+n+")");for(var i=[],f=0;f<e.length;f+=n){for(var o=[],a=0;a<n;a++)o.push(e[f+("big"===r?a:n-a-1)]);i.push(o.map((function(e){return(e<16?"0":"")+e.toString(16)})).join(""))}return v(i.join(""),16)},v.config=function(){var e,t,i=0,h={},p=arguments,y=p[0],m="config",g=function(e,t,n){return!((r=e<t||e>n)||d(e)!=e&&0!==e)},v=y&&"object"==typeof y?function(){if(y.hasOwnProperty(t))return null!=(e=y[t])}:function(){if(p.length>i)return null!=(e=p[i++])};return v(t="DECIMAL_PLACES")&&(g(e,0,n)?f=0|e:_(e,t,m)),h[t]=f,v(t="ROUNDING_MODE")&&(g(e,0,8)?o=0|e:_(e,t,m)),h[t]=o,v(t="EXPONENTIAL_AT")&&(g(e,-n,n)?a=-(s=~~(e<0?-e:+e)):!r&&e&&g(e[0],-n,0)&&g(e[1],0,n)?(a=~~e[0],s=~~e[1]):_(e,t,m,1)),h[t]=[a,s],v(t="RANGE")&&(g(e,-n,n)&&~~e?c=-(u=~~(e<0?-e:+e)):!r&&e&&g(e[0],-n,-1)&&g(e[1],1,n)?(c=~~e[0],u=~~e[1]):_(e,t,m,1,1)),h[t]=[c,u],v(t="ERRORS")&&(e===!!e||1===e||0===e?(r=b=0,d=(l=!!e)?parseInt:parseFloat):_(e,t,m,0,0,1)),h[t]=l,h},h.abs=h.absoluteValue=function(){var e=new v(this);return e.s<0&&(e.s=1),e},h.bitLength=function(){return this.toString(2).length},h.ceil=function(){return T(this,0,2)},h.comparedTo=h.cmp=function(e,t){var r,n=this,i=n.c,f=(b=-b,e=new v(e,t)).c,o=n.s,a=e.s,s=n.e,c=e.e;if(!o||!a)return null;if(r=i&&!i[0],t=f&&!f[0],r||t)return r?t?0:-a:o;if(o!=a)return o;if(r=o<0,t=s==c,!i||!f)return t?0:!i^r?1:-1;if(!t)return s>c^r?1:-1;for(o=-1,a=(s=i.length)<(c=f.length)?s:c;++o<a;)if(i[o]!=f[o])return i[o]>f[o]^r?1:-1;return s==c?0:s>c^r?1:-1},h.dividedBy=h.div=function(e,t){var r=this.c,n=this.e,i=this.s,f=(b=2,e=new v(e,t)).c,o=e.e,a=e.s,s=i==a?1:-1;return(n||r&&r[0])&&(o||f&&f[0])?E(r,f,n-o,s,10):new v(i&&a&&(r?!f||r[0]!=f[0]:f)?r&&0==r[0]||!f?0*s:s/0:NaN)},h.equals=h.eq=function(e,t){return b=3,0===this.cmp(e,t)},h.floor=function(){return T(this,0,3)},h.greaterThan=h.gt=function(e,t){return b=4,this.cmp(e,t)>0},h.greaterThanOrEqualTo=h.gte=h.gt=function(e,t){return b=5,1==(t=this.cmp(e,t))||0===t},h.isFinite=h.isF=function(){return!!this.c},h.isNaN=function(){return!this.s},h.isNegative=h.isNeg=function(){return this.s<0},h.isZero=h.isZ=function(){return!!this.c&&0==this.c[0]},h.lessThan=h.lt=function(e,t){return b=6,this.cmp(e,t)<0},h.lessThanOrEqualTo=h.lte=h.le=function(e,t){return b=7,-1==(t=this.cmp(e,t))||0===t},h.minus=h.sub=function(e,t){var r,n,i,f,a=this,s=a.s;if(t=(b=8,e=new v(e,t)).s,!s||!t)return new v(NaN);if(s!=t)return e.s=-t,a.plus(e);var u=a.c,l=a.e,d=e.c,h=e.e;if(!l||!h){if(!u||!d)return u?(e.s=-t,e):new v(d?a:NaN);if(!u[0]||!d[0])return d[0]?(e.s=-t,e):new v(u[0]?a:3==o?-0:0)}if(u=u.slice(),s=l-h){for((r=(f=s<0)?(s=-s,u):(h=l,d)).reverse(),t=s;t--;r.push(0));r.reverse()}else for(i=((f=u.length<d.length)?u:d).length,s=t=0;t<i;t++)if(u[t]!=d[t]){f=u[t]<d[t];break}if(f&&(r=u,u=d,d=r,e.s=-e.s),(t=-((i=u.length)-d.length))>0)for(;t--;u[i++]=0);for(t=d.length;t>s;){if(u[--t]<d[t]){for(n=t;n&&!u[--n];u[n]=9);--u[n],u[t]+=10}u[t]-=d[t]}for(;0==u[--i];u.pop());for(;0==u[0];u.shift(),--h);return(h<c||!u[0])&&(u[0]||(e.s=3==o?-1:1),u=[h=0]),e.c=u,e.e=h,e},h.modulo=h.mod=function(e,t){var r=this,n=r.c,i=(b=9,e=new v(e,t)).c,a=r.s,s=e.s;return(t=!a||!s||i&&!i[0])||n&&!n[0]?new v(t?NaN:r):(r.s=e.s=1,t=1==e.cmp(r),r.s=a,e.s=s,t?new v(r):(a=f,s=o,f=0,o=1,r=r.div(e),f=a,o=s,this.minus(r.times(e))))},h.negated=h.neg=function(){var e=new v(this);return e.s=-e.s||null,e},h.plus=h.add=function(e,t){var r,n=this,i=n.s;if(t=(b=10,e=new v(e,t)).s,!i||!t)return new v(NaN);if(i!=t)return e.s=-t,n.minus(e);var f=n.e,o=n.c,a=e.e,s=e.c;if(!f||!a){if(!o||!s)return new v(i/0);if(!o[0]||!s[0])return s[0]?e:new v(o[0]?n:0*i)}if(o=o.slice(),i=f-a){for((r=i>0?(a=f,s):(i=-i,o)).reverse();i--;r.push(0));r.reverse()}for(o.length-s.length<0&&(r=s,s=o,o=r),i=s.length,t=0;i;t=(o[--i]=o[i]+s[i]+t)/10^0,o[i]%=10);for(t&&(o.unshift(t),++a>u&&(o=a=null)),i=o.length;0==o[--i];o.pop());return e.c=o,e.e=a,e},h.toPower=h.pow=function(e){var t=0*e==0?0|e:e,n=new v(this),f=new v(g);if(((r=e<-1e6||e>i)&&(t=1*e/0)||d(e)!=e&&0!==e&&!(t=NaN))&&!_(e,"exponent","pow")||!t)return new v(Math.pow(n.toS(),t));for(t=t<0?-t:t;1&t&&(f=f.times(n)),t>>=1;)n=n.times(n);return e<0?g.div(f):f},h.powm=function(e,t){return this.pow(e).mod(t)},h.round=function(e,t){return T(this,e=null==e||((r=e<0||e>n)||d(e)!=e)&&!_(e,"decimal places","round")?0:0|e,t=null==t||((r=t<0||t>8)||d(t)!=t&&0!==t)&&!_(t,"mode","round")?o:0|t)},h.squareRoot=h.sqrt=function(){var e,t,r,n,i=this,a=i.c,s=i.s,c=i.e,u=f,l=o,d=new v("0.5");if(1!==s||!a||!a[0])return new v(!s||s<0&&(!a||a[0])?NaN:a?i:1/0);for(s=Math.sqrt(i.toS()),o=1,0==s||s==1/0?((e=a.join("")).length+c&1||(e+="0"),(t=new v(Math.sqrt(e)+"")).c||(t.c=[1]),t.e=((c+1)/2|0)-(c<0||1&c)):t=new v(e=s.toString()),(s=(r=t.e)+(f+=4))<3&&(s=0),c=s;;)if(n=t,t=d.times(n.plus(i.div(n))),n.c.slice(0,s).join("")===t.c.slice(0,s).join("")){if(9!=(a=t.c)[s-=e&&t.e<r]||9!=a[s-1]||9!=a[s-2]||!(9==a[s-3]||e&&4==a[s-3])){if(!(a[c]||a[c-1]||a[c-2]||a[c-3]&&5!=a[c-3]||(a.length>c-2&&(a.length=c-2),t.times(t).eq(i)))){for(;a.length<c-3;)a.push(0);a[c-3]++}return o=l,S(t,f=u,10),t}if(e&&9==a[s-3]&&(n=t.round(u,0)).times(n).eq(i))return o=l,f=u,n;f+=4,s+=4,e=""}},h.times=h.mul=function(e,t){var r,n=this,i=n.c,f=(b=11,e=new v(e,t)).c,o=n.e,a=e.e,s=n.s;if(e.s=s==(t=e.s)?1:-1,!((o||i&&i[0])&&(a||f&&f[0])))return new v(!s||!t||i&&!i[0]&&!f||f&&!f[0]&&!i?NaN:i&&f?0*e.s:e.s/0);for(e.e=o+a,(s=i.length)<(t=f.length)&&(r=i,i=f,f=r,a=s,s=t,t=a),a=s+t,r=[];a--;r.push(0));for(o=t-1;o>-1;o--){for(t=0,a=s+o;a>o;t=r[a]+f[o]*i[a-o-1]+t,r[a--]=t%10|0,t=t/10|0);t&&(r[a]=(r[a]+t)%10)}for(t&&++e.e,!r[0]&&r.shift(),a=r.length;!r[--a];r.pop());return e.c=e.e>u?e.e=null:e.e<c?[e.e=0]:r,e},h.toBuffer=function(e){if("string"==typeof e){if("mpint"!==e)return"Unsupported Buffer representation";var r=this.abs(),n=1===(u=r.toBuffer({size:1,endian:"big"})).length&&0===u[0]?0:u.length;128&u[0]&&n++;var i=new t(4+n);n>0&&u.copy(i,4+(128&u[0]?1:0)),128&u[0]&&(i[4]=0),i[0]=n&255<<24,i[1]=n&255<<16,i[2]=65280&n,i[3]=255&n;var f=this.lt(0);if(f)for(var o=4;o<i.length;o++)i[o]=255-i[o];return i[4]=127&i[4]|(f?128:0),f&&i[i.length-1]++,i}e||(e={});var a={1:"big","-1":"little"}[e.endian]||e.endian||"big",s=this.toString(16);if("-"===s.charAt(0))throw new Error("converting negative numbers to Buffers not supported yet");for(var c="auto"===e.size?Math.ceil(s.length/2):e.size||1,u=(n=Math.ceil(s.length/(2*c))*c,new t(n));s.length<2*n;)s="0"+s;return s.split(new RegExp("(.{"+2*c+"})")).filter((function(e){return e.length>0})).forEach((function(e,t){for(var r=0;r<c;r++){u[t*c+("big"===a?r:c-r-1)]=parseInt(e.slice(2*r,2*r+2),16)}})),u},h.toExponential=h.toE=function(e){return A(this,(null==e||((r=e<0||e>n)||d(e)!=e&&0!==e)&&!_(e,"decimal places","toE"))&&this.c?this.c.length-1:0|e,1)},h.toFixed=h.toF=function(e){var t,i,f,o=this;return null==e||((r=e<0||e>n)||d(e)!=e&&0!==e)&&!_(e,"decimal places","toF")||(f=o.e+(0|e)),t=a,e=s,a=-(s=1/0),f==i?i=o.toS():(i=A(o,f),o.s<0&&o.c&&(o.c[0]?i.indexOf("-")<0&&(i="-"+i):i=i.replace(/^-/,""))),a=t,s=e,i},h.toFraction=h.toFr=function(e){var t,n,i,a,s,c,d,h=a=new v(g),p=i=new v("0"),y=this,m=y.c,w=u,E=f,A=o,S=new v(g);if(!m)return y.toS();for(d=S.e=m.length-y.e-1,(null==e||(!(b=12,c=new v(e)).s||(r=c.cmp(h)<0||!c.c)||l&&c.e<c.c.length-1)&&!_(e,"max denominator","toFr")||(e=c).cmp(S)>0)&&(e=d>0?S:h),u=1/0,c=new v(m.join("")),f=0,o=1;t=c.div(S),1!=(s=a.plus(t.times(p))).cmp(e);)a=p,p=s,h=i.plus(t.times(s=h)),i=s,S=c.minus(t.times(s=S)),c=s;return s=e.minus(a).div(p),i=i.plus(s.times(h)),a=a.plus(s.times(p)),i.s=h.s=y.s,f=2*d,o=A,n=h.div(p).minus(y).abs().cmp(i.div(a).minus(y).abs())<1?[h.toS(),p.toS()]:[i.toS(),a.toS()],u=w,f=E,n},h.toPrecision=h.toP=function(e){return null==e||((r=e<1||e>n)||d(e)!=e)&&!_(e,"precision","toP")?this.toS():A(this,0|--e,2)},h.toString=h.toS=function(e){var t,n,i,f=this,o=f.e;if(null===o)n=f.s?"Infinity":"NaN";else{if(e===t&&(o<=a||o>=s))return A(f,f.c.length-1,1);if(n=f.c.join(""),o<0){for(;++o;n="0"+n);n="0."+n}else if(i=n.length,o>0)if(++o>i)for(o-=i;o--;n+="0");else o<i&&(n=n.slice(0,o)+"."+n.slice(o));else if(t=n.charAt(0),i>1)n=t+"."+n.slice(1);else if("0"==t)return t;if(null!=e)if((r=!(e>=2&&e<65))||e!=(0|e)&&l)_(e,"base","toS");else if("0"==(n=w(n,0|e,10,f.s)))return n}return f.s<0?"-"+n:n},h.valueOf=function(){return this.toS()},e.exports=v}).call(this,r(7).Buffer)},function(e,t,r){var n=r(122);function i(e,t,r,n){for(var i=0,f=0,o=[],a=(1<<r)-1,s=0;s<e.length;++s){var c=e[s];if(c<0||c>>t!=0)return null;for(i=i<<t|c,f+=t;f>=r;)f-=r,o.push(i>>f&a)}if(n)f>0&&o.push(i<<r-f&a);else if(f>=t||i<<r-f&a)return null;return o}function f(e,t){var r=!1,f=n.decode(t,n.encodings.BECH32);if(null===f&&(f=n.decode(t,n.encodings.BECH32M),r=!0),null===f||f.hrp!==e||f.data.length<1||f.data[0]>16)return null;var o=i(f.data.slice(1),5,8,!1);return null===o||o.length<2||o.length>40||0===f.data[0]&&20!==o.length&&32!==o.length||0===f.data[0]&&r?null:0===f.data[0]||r?{version:f.data[0],program:o}:null}function o(e,t,r){var o=n.encodings.BECH32;t>0&&(o=n.encodings.BECH32M);var a=n.encode(e,[t].concat(i(r,8,5,!0)),o);return null===f(e,a)?null:a}var a="prod";e.exports={encode:o,decode:f,isValidAddress:function(e,t,r={}){if(!t.bech32Hrp||0===t.bech32Hrp.length)return!1;const{networkType:n=a}=r;var i;if("prod"===n||"testnet"===n)i=t.bech32Hrp[n];else{if(!t.bech32Hrp)return!1;i=t.bech32Hrp.prod.concat(t.bech32Hrp.testnet)}for(var s of i){var c=f(s,e);if(c)return o(s,c.version,c.program)===e.toLowerCase()}return!1}}},function(e,t,r){var n=r(524),i=r(282),f=r(85),o=r(219);function a(e){var t=function(e){try{var t=f.decode(e);return n.decode(new Uint8Array(t).buffer)}catch(e){return null}}(e);if(!t||!Array.isArray(t)&&2!=t.length)return!1;var r=t[0],o=t[1];return"number"==typeof o&&i.crc32(r)==o}e.exports={isValidAddress:function(e,t,r={}){return a(e)||function(e,t,r){return o.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){var n,i;!function(f,o){"use strict";var a=Math.pow(2,-24),s=Math.pow(2,32),c=Math.pow(2,53);(i="function"==typeof(n={encode:function(e){var t,r=new ArrayBuffer(256),n=new DataView(r),i=0;function f(e){for(var f=r.byteLength,o=i+e;f<o;)f*=2;if(f!==r.byteLength){var a=n;r=new ArrayBuffer(f),n=new DataView(r);for(var s=i+3>>2,c=0;c<s;++c)n.setUint32(4*c,a.getUint32(4*c))}return t=e,n}function a(){i+=t}function u(e){a(f(1).setUint8(i,e))}function l(e){for(var t=f(e.length),r=0;r<e.length;++r)t.setUint8(i+r,e[r]);a()}function d(e,t){t<24?u(e<<5|t):t<256?(u(e<<5|24),u(t)):t<65536?(u(e<<5|25),function(e){a(f(2).setUint16(i,e))}(t)):t<4294967296?(u(e<<5|26),function(e){a(f(4).setUint32(i,e))}(t)):(u(e<<5|27),function(e){var t=e%s,r=(e-t)/s,n=f(8);n.setUint32(i,r),n.setUint32(i+4,t),a()}(t))}if(function e(t){var r;if(!1===t)return u(244);if(!0===t)return u(245);if(null===t)return u(246);if(t===o)return u(247);switch(typeof t){case"number":if(Math.floor(t)===t){if(0<=t&&t<=c)return d(0,t);if(-c<=t&&t<0)return d(1,-(t+1))}return u(251),function(e){a(f(8).setFloat64(i,e))}(t);case"string":var n=[];for(r=0;r<t.length;++r){var s=t.charCodeAt(r);s<128?n.push(s):s<2048?(n.push(192|s>>6),n.push(128|63&s)):s<55296?(n.push(224|s>>12),n.push(128|s>>6&63),n.push(128|63&s)):(s=(1023&s)<<10,s|=1023&t.charCodeAt(++r),s+=65536,n.push(240|s>>18),n.push(128|s>>12&63),n.push(128|s>>6&63),n.push(128|63&s))}return d(3,n.length),l(n);default:var h;if(Array.isArray(t))for(d(4,h=t.length),r=0;r<h;++r)e(t[r]);else if(t instanceof Uint8Array)d(2,t.length),l(t);else{var p=Object.keys(t);for(d(5,h=p.length),r=0;r<h;++r){var b=p[r];e(b),e(t[b])}}}}(e),"slice"in r)return r.slice(0,i);for(var h=new ArrayBuffer(i),p=new DataView(h),b=0;b<i;++b)p.setUint8(b,n.getUint8(b));return h},decode:function(e,t,r){var n=new DataView(e),i=0;function f(e,t){return i+=t,e}function c(t){return f(new Uint8Array(e,i,t),t)}function u(){return f(n.getUint8(i),1)}function l(){return f(n.getUint16(i),2)}function d(){return f(n.getUint32(i),4)}function h(){return 255===n.getUint8(i)&&(i+=1,!0)}function p(e){if(e<24)return e;if(24===e)return u();if(25===e)return l();if(26===e)return d();if(27===e)return d()*s+d();if(31===e)return-1;throw"Invalid length encoding"}function b(e){var t=u();if(255===t)return-1;var r=p(31&t);if(r<0||t>>5!==e)throw"Invalid indefinite length element";return r}function y(e,t){for(var r=0;r<t;++r){var n=u();128&n&&(n<224?(n=(31&n)<<6|63&u(),t-=1):n<240?(n=(15&n)<<12|(63&u())<<6|63&u(),t-=2):(n=(15&n)<<18|(63&u())<<12|(63&u())<<6|63&u(),t-=3)),n<65536?e.push(n):(n-=65536,e.push(55296|n>>10),e.push(56320|1023&n))}}"function"!=typeof t&&(t=function(e){return e}),"function"!=typeof r&&(r=function(){return o});var m=function e(){var s,d,m=u(),g=m>>5,v=31&m;if(7===g)switch(v){case 25:return function(){var e=new ArrayBuffer(4),t=new DataView(e),r=l(),n=32768&r,i=31744&r,f=1023&r;if(31744===i)i=261120;else if(0!==i)i+=114688;else if(0!==f)return f*a;return t.setUint32(0,n<<16|i<<13|f<<13),t.getFloat32(0)}();case 26:return f(n.getFloat32(i),4);case 27:return f(n.getFloat64(i),8)}if((d=p(v))<0&&(g<2||6<g))throw"Invalid length";switch(g){case 0:return d;case 1:return-1-d;case 2:if(d<0){for(var _=[],w=0;(d=b(g))>=0;)w+=d,_.push(c(d));var E=new Uint8Array(w),A=0;for(s=0;s<_.length;++s)E.set(_[s],A),A+=_[s].length;return E}return c(d);case 3:var S=[];if(d<0)for(;(d=b(g))>=0;)y(S,d);else y(S,d);return String.fromCharCode.apply(null,S);case 4:var T;if(d<0)for(T=[];!h();)T.push(e());else for(T=new Array(d),s=0;s<d;++s)T[s]=e();return T;case 5:var x={};for(s=0;s<d||d<0&&!h();++s){x[e()]=e()}return x;case 6:return t(e(),d);case 7:switch(d){case 20:return!1;case 21:return!0;case 22:return null;case 23:return o;default:return r(d)}}}();if(i!==e.byteLength)throw"Remaining bytes";return m}})?n.call(t,r,t,e):n)===o||(e.exports=i)}()},function(e,t,r){var n=r(19),i=r(526),f="prod",o=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95}$"),a=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{106}$");e.exports={isValidAddress:function(e,t,r={}){const{networkType:s=f}=r;var c="standard";if(!o.test(e)){if(!a.test(e))return!1;c="integrated"}var u=i.decode(e);return!!u&&(!!function(e,t,r,n){var i=t.addressTypes;"integrated"==n&&(i=t.iAddressTypes);var f=parseInt(e.substr(0,2),16).toString();switch(r){case"prod":return i.prod.indexOf(f)>=0;case"testnet":return i.testnet.indexOf(f)>=0;case"stagenet":return i.stagenet.indexOf(f)>=0;case"both":return i.prod.indexOf(f)>=0||i.testnet.indexOf(f)>=0||i.stagenet.indexOf(f)>=0;default:return!1}}(u,t,s,c)&&u.slice(-8)===n.keccak256Checksum(function(e){if(e.length%2!=0)return null;for(var t=new Uint8Array(e.length/2),r=0;r<e.length/2;++r)t[r]=parseInt(e.slice(2*r,2*r+2),16);return t}(u.slice(0,-8))))}}},function(e,t,r){var n=r(527).JSBigInt,i=function(){for(var e={},t="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",r=[],i=0;i<t.length;i++)r.push(t.charCodeAt(i));var f=[0,2,3,5,6,7,9,10,11],o=r.length,a=11,s=new n(2).pow(64);return e.encode_block=function(e,t,i){if(e.length<1||e.length>a)throw"Invalid block length: "+e.length;for(var s=function(e){if(e.length<1||e.length>8)throw"Invalid input length";var t=n.ZERO,r=new n(2).pow(8),i=0;switch(9-e.length){case 1:t=t.add(e[i++]);case 2:t=t.multiply(r).add(e[i++]);case 3:t=t.multiply(r).add(e[i++]);case 4:t=t.multiply(r).add(e[i++]);case 5:t=t.multiply(r).add(e[i++]);case 6:t=t.multiply(r).add(e[i++]);case 7:t=t.multiply(r).add(e[i++]);case 8:t=t.multiply(r).add(e[i++]);break;default:throw"Impossible condition"}return t}(e),c=f[e.length]-1;1===s.compare(0);){var u=s.divRem(o),l=u[1];s=u[0],t[i+c]=r[l.toJSValue()],c--}return t},e.encode=function(t){var n=function(e){if(e.length%2!=0)throw"Hex string has invalid length!";for(var t=new Uint8Array(e.length/2),r=0;r<e.length/2;++r)t[r]=parseInt(e.slice(2*r,2*r+2),16);return t}(t);if(0===n.length)return"";var i,o=Math.floor(n.length/8),s=n.length%8,c=o*a+f[s],u=new Uint8Array(c);for(i=0;i<c;++i)u[i]=r[0];for(i=0;i<o;i++)u=e.encode_block(n.subarray(8*i,8*i+8),u,i*a);return s>0&&(u=e.encode_block(n.subarray(8*o,8*o+s),u,o*a)),function(e){for(var t=[],r=0;r<e.length;r++)t.push(String.fromCharCode(e[r]));return t.join("")}(u)},e.decode_block=function(e,t,i){if(e.length<1||e.length>a)throw"Invalid block length: "+e.length;var c=f.indexOf(e.length);if(c<=0)throw"Invalid block size";for(var u=new n(0),l=new n(1),d=e.length-1;d>=0;d--){var h=r.indexOf(e[d]);if(h<0)throw"Invalid symbol";var p=l.multiply(h).add(u);if(1===p.compare(s))throw"Overflow";u=p,l=l.multiply(o)}if(c<8&&new n(2).pow(8*c).compare(u)<=0)throw"Overflow 2";return t.set(function(e,t){var r=new Uint8Array(t);if(t<1||t>8)throw"Invalid input length";for(var i=new n(2).pow(8),f=t-1;f>=0;f--)r[f]=e.remainder(i).toJSValue(),e=e.divide(i);return r}(u,c),i),t},e.decode=function(t){if(0===(t=function(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(t)).length)return"";var r=Math.floor(t.length/a),n=t.length%a,i=f.indexOf(n);if(i<0)throw"Invalid encoded length";for(var o=new Uint8Array(8*r+i),s=0;s<r;s++)o=e.decode_block(t.subarray(s*a,s*a+a),o,8*s);return n>0&&(o=e.decode_block(t.subarray(r*a,r*a+n),o,8*r)),function(e){for(var t=[],r=0;r<e.length;++r)t.push(("0"+e[r].toString(16)).slice(-2));return t.join("")}(o)},e}();e.exports=i},function(e,t,r){!function(e){"use strict";var t={};function r(e,n,f){if(f!==t)return e instanceof r?e:void 0===e?i:r.parse(e);for(e=e||[];e.length&&!e[e.length-1];)--e.length;this._d=e,this._s=e.length?n||1:0}r._construct=function(e,n){return new r(e,n,t)};var n=1e7;r.base=n,r.base_log10=7;var i=new r([],0,t);r.ZERO=i;var f=new r([1],1,t);r.ONE=f;var o=new r(f._d,-1,t);r.M_ONE=o,r._0=i,r._1=f,r.small=[i,f,new r([2],1,t),new r([3],1,t),new r([4],1,t),new r([5],1,t),new r([6],1,t),new r([7],1,t),new r([8],1,t),new r([9],1,t),new r([10],1,t),new r([11],1,t),new r([12],1,t),new r([13],1,t),new r([14],1,t),new r([15],1,t),new r([16],1,t),new r([17],1,t),new r([18],1,t),new r([19],1,t),new r([20],1,t),new r([21],1,t),new r([22],1,t),new r([23],1,t),new r([24],1,t),new r([25],1,t),new r([26],1,t),new r([27],1,t),new r([28],1,t),new r([29],1,t),new r([30],1,t),new r([31],1,t),new r([32],1,t),new r([33],1,t),new r([34],1,t),new r([35],1,t),new r([36],1,t)],r.digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),r.prototype.toString=function(e){if((e=+e||10)<2||e>36)throw new Error("illegal radix "+e+".");if(0===this._s)return"0";if(10===e){var t=this._s<0?"-":"";t+=this._d[this._d.length-1].toString();for(var n=this._d.length-2;n>=0;n--){for(var i=this._d[n].toString();i.length<7;)i="0"+i;t+=i}return t}var f=r.digits;e=r.small[e];for(var o,a=this._s,s=this.abs(),c=[];0!==s._s;){var u=s.divRem(e);s=u[0],o=u[1],c.push(f[o.valueOf()])}return(a<0?"-":"")+c.reverse().join("")},r.radixRegex=[/^$/,/^$/,/^[01]*$/,/^[012]*$/,/^[0-3]*$/,/^[0-4]*$/,/^[0-5]*$/,/^[0-6]*$/,/^[0-7]*$/,/^[0-8]*$/,/^[0-9]*$/,/^[0-9aA]*$/,/^[0-9abAB]*$/,/^[0-9abcABC]*$/,/^[0-9a-dA-D]*$/,/^[0-9a-eA-E]*$/,/^[0-9a-fA-F]*$/,/^[0-9a-gA-G]*$/,/^[0-9a-hA-H]*$/,/^[0-9a-iA-I]*$/,/^[0-9a-jA-J]*$/,/^[0-9a-kA-K]*$/,/^[0-9a-lA-L]*$/,/^[0-9a-mA-M]*$/,/^[0-9a-nA-N]*$/,/^[0-9a-oA-O]*$/,/^[0-9a-pA-P]*$/,/^[0-9a-qA-Q]*$/,/^[0-9a-rA-R]*$/,/^[0-9a-sA-S]*$/,/^[0-9a-tA-T]*$/,/^[0-9a-uA-U]*$/,/^[0-9a-vA-V]*$/,/^[0-9a-wA-W]*$/,/^[0-9a-xA-X]*$/,/^[0-9a-yA-Y]*$/,/^[0-9a-zA-Z]*$/],r.parse=function(e,n){var f;e=e.toString(),void 0!==n&&10!=+n||(e=e.replace(/\s*[*xX]\s*10\s*(\^|\*\*)\s*/,"e").replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/,(function(e,t,r,n,i){var f=(i=+i)<0,o=r.length+i;e=(f?r:n).length,i=(i=Math.abs(i))>=e?i-e+f:0;var a=new Array(i+1).join("0"),s=r+n;return(t||"")+(f?s=a+s:s+=a).substr(0,o+=f?a.length:0)+(o<s.length?"."+s.substr(o):"")}))),f=void 0===n?"0[xcb]":16==n?"0x":8==n?"0c":2==n?"0b":"";var o=new RegExp("^([+\\-]?)("+f+")?([0-9a-z]*)(?:\\.\\d*)?$","i").exec(e);if(o){var a=o[1]||"+",s=o[2]||"",c=o[3]||"";if(void 0===n)n="0x"===s||"0X"===s?16:"0c"===s||"0C"===s?8:"0b"===s||"0B"===s?2:10;else if(n<2||n>36)throw new Error("Illegal radix "+n+".");if(n=+n,!r.radixRegex[n].test(c))throw new Error("Bad digit for radix "+n);if(0===(c=c.replace(/^0+/,"").split("")).length)return i;if(a="-"===a?-1:1,10==n){for(var u=[];c.length>=7;)u.push(parseInt(c.splice(c.length-r.base_log10,r.base_log10).join(""),10));return u.push(parseInt(c.join(""),10)),new r(u,a,t)}u=i;n=r.small[n];for(var l=r.small,d=0;d<c.length;d++)u=u.multiply(n).add(l[parseInt(c[d],36)]);return new r(u._d,a,t)}throw new Error("Invalid BigInteger format: "+e)},r.prototype.add=function(e){if(0===this._s)return r(e);if(0===(e=r(e))._s)return this;if(this._s!==e._s)return e=e.negate(),this.subtract(e);for(var i,f=this._d,o=e._d,a=f.length,s=o.length,c=new Array(Math.max(a,s)+1),u=Math.min(a,s),l=0,d=0;d<u;d++)i=f[d]+o[d]+l,c[d]=i%n,l=i/n|0;for(s>a&&(f=o,a=s),d=u;l&&d<a;d++)i=f[d]+l,c[d]=i%n,l=i/n|0;for(l&&(c[d]=l);d<a;d++)c[d]=f[d];return new r(c,this._s,t)},r.prototype.negate=function(){return new r(this._d,0|-this._s,t)},r.prototype.abs=function(){return this._s<0?this.negate():this},r.prototype.subtract=function(e){if(0===this._s)return r(e).negate();if(0===(e=r(e))._s)return this;if(this._s!==e._s)return e=e.negate(),this.add(e);var f=this;this._s<0&&(f=new r(e._d,1,t),e=new r(this._d,1,t));var o=f.compareAbs(e);if(0===o)return i;if(o<0){var a=e;e=f,f=a}var s,c,u=f._d,l=e._d,d=u.length,h=l.length,p=new Array(d),b=0;for(s=0;s<h;s++)(c=u[s]-b-l[s])<0?(c+=n,b=1):b=0,p[s]=c;for(s=h;s<d;s++){if(!((c=u[s]-b)<0)){p[s++]=c;break}c+=n,p[s]=c}for(;s<d;s++)p[s]=u[s];return new r(p,o,t)},function(){function e(e,i){for(var f=e._d,o=f.slice(),a=0;;){var s=(f[a]||0)+1;if(o[a]=s%n,s<=9999999)break;++a}return new r(o,i,t)}function i(e,i){for(var f=e._d,o=f.slice(),a=0;;){var s=(f[a]||0)-1;if(!(s<0)){o[a]=s;break}o[a]=s+n,++a}return new r(o,i,t)}r.prototype.next=function(){switch(this._s){case 0:return f;case-1:return i(this,-1);default:return e(this,1)}},r.prototype.prev=function(){switch(this._s){case 0:return o;case-1:return e(this,-1);default:return i(this,1)}}}(),r.prototype.compareAbs=function(e){if(this===e)return 0;if(!(e instanceof r)){if(!isFinite(e))return isNaN(e)?e:-1;e=r(e)}if(0===this._s)return 0!==e._s?-1:0;if(0===e._s)return 1;var t=this._d.length,n=e._d.length;if(t<n)return-1;if(t>n)return 1;for(var i=this._d,f=e._d,o=t-1;o>=0;o--)if(i[o]!==f[o])return i[o]<f[o]?-1:1;return 0},r.prototype.compare=function(e){return this===e?0:(e=r(e),0===this._s?-e._s:this._s===e._s?this.compareAbs(e)*this._s:this._s)},r.prototype.isUnit=function(){return this===f||this===o||1===this._d.length&&1===this._d[0]},r.prototype.multiply=function(e){if(0===this._s)return i;if(0===(e=r(e))._s)return i;if(this.isUnit())return this._s<0?e.negate():e;if(e.isUnit())return e._s<0?this.negate():this;if(this===e)return this.square();var f,o=this._d.length>=e._d.length,a=(o?this:e)._d,s=(o?e:this)._d,c=a.length,u=s.length,l=c+u,d=new Array(l);for(f=0;f<l;f++)d[f]=0;for(f=0;f<u;f++){for(var h,p=0,b=s[f],y=c+f,m=f;m<y;m++)p=(h=d[m]+b*a[m-f]+p)/n|0,d[m]=h%n|0;p&&(p=(h=d[m]+p)/n|0,d[m]=h%n)}return new r(d,this._s*e._s,t)},r.prototype.multiplySingleDigit=function(e){if(0===e||0===this._s)return i;if(1===e)return this;var f;if(1===this._d.length)return new r((f=this._d[0]*e)>=n?[f%n|0,f/n|0]:[f],1,t);if(2===e)return this.add(this);if(this.isUnit())return new r([e],1,t);for(var o=this._d,a=o.length,s=a+1,c=new Array(s),u=0;u<s;u++)c[u]=0;for(var l=0,d=0;d<a;d++)l=(f=e*o[d]+l)/n|0,c[d]=f%n|0;return l&&(c[d]=l),new r(c,1,t)},r.prototype.square=function(){if(0===this._s)return i;if(this.isUnit())return f;var e,o,a,s,c=this._d,u=c.length,l=new Array(u+u+1);for(s=0;s<u;s++)a=2*s,o=(e=c[s]*c[s])/n|0,l[a]=e%n,l[a+1]=o;for(s=0;s<u;s++){o=0,a=2*s+1;for(var d=s+1;d<u;d++,a++)o=(e=c[d]*c[s]*2+l[a]+o)/n|0,l[a]=e%n;var h=o+l[a=u+s];o=h/n|0,l[a]=h%n,l[a+1]+=o}return new r(l,1,t)},r.prototype.quotient=function(e){return this.divRem(e)[0]},r.prototype.divide=r.prototype.quotient,r.prototype.remainder=function(e){return this.divRem(e)[1]},r.prototype.divRem=function(e){if(0===(e=r(e))._s)throw new Error("Divide by zero");if(0===this._s)return[i,i];if(1===e._d.length)return this.divRemSmall(e._s*e._d[0]);switch(this.compareAbs(e)){case 0:return[this._s===e._s?f:o,i];case-1:return[i,this]}for(var a,s=this._s*e._s,c=e.abs(),u=this._d,l=u.length,d=(e._d.length,[]),h=new r([],0,t);l;)if(h._d.unshift(u[--l]),(h=new r(h._d,1,t)).compareAbs(e)<0)d.push(0);else{if(0===h._s)a=0;else{var p=h._d.length,b=c._d.length,y=h._d[p-1]*n+h._d[p-2],m=c._d[b-1]*n+c._d[b-2];h._d.length>c._d.length&&(y=(y+1)*n),a=Math.ceil(y/m)}do{var g=c.multiplySingleDigit(a);if(g.compareAbs(h)<=0)break;a--}while(a);if(d.push(a),a){var v=h.subtract(g);h._d=v._d.slice()}}return[new r(d.reverse(),s,t),new r(h._d,this._s,t)]},r.prototype.divRemSmall=function(e){var f;if(0===(e=+e))throw new Error("Divide by zero");var o=e<0?-1:1,a=this._s*o;if((e=Math.abs(e))<1||e>=n)throw new Error("Argument out of range");if(0===this._s)return[i,i];if(1===e||-1===e)return[1===a?this.abs():new r(this._d,a,t),i];if(1===this._d.length){var s=new r([this._d[0]/e|0],1,t);return f=new r([this._d[0]%e|0],1,t),a<0&&(s=s.negate()),this._s<0&&(f=f.negate()),[s,f]}for(var c,u=this._d.slice(),l=new Array(u.length),d=0,h=0,p=0;u.length;){if((d=d*n+u[u.length-1])<e)l[p++]=0,u.pop(),h=n*h+d;else h=d-e*(c=0===d?0:d/e|0),l[p++]=c,c?(u.pop(),d=h):u.pop()}return f=new r([h],1,t),this._s<0&&(f=f.negate()),[new r(l.reverse(),a,t),f]},r.prototype.isEven=function(){var e=this._d;return 0===this._s||0===e.length||e[0]%2==0},r.prototype.isOdd=function(){return!this.isEven()},r.prototype.sign=function(){return this._s},r.prototype.isPositive=function(){return this._s>0},r.prototype.isNegative=function(){return this._s<0},r.prototype.isZero=function(){return 0===this._s},r.prototype.exp10=function(e){if(0===(e=+e))return this;if(Math.abs(e)>Number(a))throw new Error("exponent too large in BigInteger.exp10");if(0===this._s)return i;if(e>0){for(var n=new r(this._d.slice(),this._s,t);e>=7;e-=7)n._d.unshift(0);return 0==e?n:(n._s=1,n=n.multiplySingleDigit(Math.pow(10,e)),this._s<0?n.negate():n)}if(-e>=7*this._d.length)return i;n=new r(this._d.slice(),this._s,t);for(e=-e;e>=7;e-=7)n._d.shift();return 0==e?n:n.divRemSmall(Math.pow(10,e))[0]},r.prototype.pow=function(e){if(this.isUnit())return this._s>0||r(e).isOdd()?this:this.negate();if(0===(e=r(e))._s)return f;if(e._s<0){if(0===this._s)throw new Error("Divide by zero");return i}if(0===this._s)return i;if(e.isUnit())return this;if(e.compareAbs(a)>0)throw new Error("exponent too large in BigInteger.pow");for(var t=this,n=f,o=r.small[2];e.isPositive();){if(e.isOdd()&&(n=n.multiply(t),e.isUnit()))return n;t=t.square(),e=e.quotient(o)}return n},r.prototype.modPow=function(e,t){for(var n=f,i=this;e.isPositive();)e.isOdd()&&(n=n.multiply(i).remainder(t)),(e=e.quotient(r.small[2])).isPositive()&&(i=i.square().remainder(t));return n},r.prototype.log=function(){switch(this._s){case 0:return-1/0;case-1:return NaN}var e=this._d.length;if(7*e<30)return Math.log(this.valueOf());var i=Math.ceil(30/7),f=this._d.slice(e-i);return Math.log(new r(f,1,t).valueOf())+(e-i)*Math.log(n)},r.prototype.valueOf=function(){return parseInt(this.toString(),10)},r.prototype.toJSValue=function(){return parseInt(this.toString(),10)},r.prototype.lowVal=function(){return this._d[0]||0};var a=r(2147483647);r.MAX_EXP=a,function(){function e(e){return function(t){return e.call(r(t))}}function t(e){return function(t,n){return e.call(r(t),r(n))}}function n(e){return function(t,n,i){return e.call(r(t),r(n),r(i))}}!function(){var i,f,o="toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(","),a="compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(","),s=["modPow"];for(i=0;i<o.length;i++)r[f=o[i]]=e(r.prototype[f]);for(i=0;i<a.length;i++)r[f=a[i]]=t(r.prototype[f]);for(i=0;i<s.length;i++)r[f=s[i]]=n(r.prototype[f]);r.exp10=function(e,t){return r(e).exp10(t)}}()}(),e.JSBigInt=r}(t)},function(e,t,r){var n=r(19),i="13456789abcdefghijkmnopqrstuwxyz",f=r(120)(i),o=new RegExp("^(xrb|nano)_(["+i+"]{60})$");e.exports={isValidAddress:function(e){return!!o.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=f.decode(o.exec(e)[2]).slice(-37);return n.blake2b(n.toHex(t.slice(0,-5)),5)===n.toHex(t.slice(-5).reverse())}}},function(e,t,r){var n=r(19),i=r(530);e.exports={isValidAddress:function(e){return 76===e.length&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=e.slice(0,64),r=e.slice(64,76),f=n.blake2b(t,32).slice(0,12);return!!i(f,r)}}},function(e,t,r){(function(e,r){var n="__lodash_hash_undefined__",i=9007199254740991,f="[object Arguments]",o="[object Array]",a="[object Boolean]",s="[object Date]",c="[object Error]",u="[object Function]",l="[object Map]",d="[object Number]",h="[object Object]",p="[object Promise]",b="[object RegExp]",y="[object Set]",m="[object String]",g="[object Symbol]",v="[object WeakMap]",_="[object ArrayBuffer]",w="[object DataView]",E=/^\[object .+?Constructor\]$/,A=/^(?:0|[1-9]\d*)$/,S={};S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S[f]=S[o]=S[_]=S[a]=S[w]=S[s]=S[c]=S[u]=S[l]=S[d]=S[h]=S[b]=S[y]=S[m]=S[v]=!1;var T="object"==typeof e&&e&&e.Object===Object&&e,x="object"==typeof self&&self&&self.Object===Object&&self,P=T||x||Function("return this")(),R=t&&!t.nodeType&&t,k=R&&"object"==typeof r&&r&&!r.nodeType&&r,C=k&&k.exports===R,O=C&&T.process,M=function(){try{return O&&O.binding&&O.binding("util")}catch(e){}}(),N=M&&M.isTypedArray;function I(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function D(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function B(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var F,j,L,U=Array.prototype,q=Function.prototype,z=Object.prototype,H=P["__core-js_shared__"],G=q.toString,V=z.hasOwnProperty,K=(F=/[^.]+$/.exec(H&&H.keys&&H.keys.IE_PROTO||""))?"Symbol(src)_1."+F:"",W=z.toString,$=RegExp("^"+G.call(V).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Y=C?P.Buffer:void 0,J=P.Symbol,X=P.Uint8Array,Z=z.propertyIsEnumerable,Q=U.splice,ee=J?J.toStringTag:void 0,te=Object.getOwnPropertySymbols,re=Y?Y.isBuffer:void 0,ne=(j=Object.keys,L=Object,function(e){return j(L(e))}),ie=Me(P,"DataView"),fe=Me(P,"Map"),oe=Me(P,"Promise"),ae=Me(P,"Set"),se=Me(P,"WeakMap"),ce=Me(Object,"create"),ue=Be(ie),le=Be(fe),de=Be(oe),he=Be(ae),pe=Be(se),be=J?J.prototype:void 0,ye=be?be.valueOf:void 0;function me(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ge(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ve(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function _e(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new ve;++t<r;)this.add(e[t])}function we(e){var t=this.__data__=new ge(e);this.size=t.size}function Ee(e,t){var r=Le(e),n=!r&&je(e),i=!r&&!n&&Ue(e),f=!r&&!n&&!i&&Ve(e),o=r||n||i||f,a=o?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],s=a.length;for(var c in e)!t&&!V.call(e,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||f&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||De(c,s))||a.push(c);return a}function Ae(e,t){for(var r=e.length;r--;)if(Fe(e[r][0],t))return r;return-1}function Se(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ee&&ee in Object(e)?function(e){var t=V.call(e,ee),r=e[ee];try{e[ee]=void 0;var n=!0}catch(e){}var i=W.call(e);n&&(t?e[ee]=r:delete e[ee]);return i}(e):function(e){return W.call(e)}(e)}function Te(e){return Ge(e)&&Se(e)==f}function xe(e,t,r,n,i){return e===t||(null==e||null==t||!Ge(e)&&!Ge(t)?e!=e&&t!=t:function(e,t,r,n,i,u){var p=Le(e),v=Le(t),E=p?o:Ie(e),A=v?o:Ie(t),S=(E=E==f?h:E)==h,T=(A=A==f?h:A)==h,x=E==A;if(x&&Ue(e)){if(!Ue(t))return!1;p=!0,S=!1}if(x&&!S)return u||(u=new we),p||Ve(e)?ke(e,t,r,n,i,u):function(e,t,r,n,i,f,o){switch(r){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _:return!(e.byteLength!=t.byteLength||!f(new X(e),new X(t)));case a:case s:case d:return Fe(+e,+t);case c:return e.name==t.name&&e.message==t.message;case b:case m:return e==t+"";case l:var u=D;case y:var h=1&n;if(u||(u=B),e.size!=t.size&&!h)return!1;var p=o.get(e);if(p)return p==t;n|=2,o.set(e,t);var v=ke(u(e),u(t),n,i,f,o);return o.delete(e),v;case g:if(ye)return ye.call(e)==ye.call(t)}return!1}(e,t,E,r,n,i,u);if(!(1&r)){var P=S&&V.call(e,"__wrapped__"),R=T&&V.call(t,"__wrapped__");if(P||R){var k=P?e.value():e,C=R?t.value():t;return u||(u=new we),i(k,C,r,n,u)}}if(!x)return!1;return u||(u=new we),function(e,t,r,n,i,f){var o=1&r,a=Ce(e),s=a.length,c=Ce(t).length;if(s!=c&&!o)return!1;var u=s;for(;u--;){var l=a[u];if(!(o?l in t:V.call(t,l)))return!1}var d=f.get(e);if(d&&f.get(t))return d==t;var h=!0;f.set(e,t),f.set(t,e);var p=o;for(;++u<s;){var b=e[l=a[u]],y=t[l];if(n)var m=o?n(y,b,l,t,e,f):n(b,y,l,e,t,f);if(!(void 0===m?b===y||i(b,y,r,n,f):m)){h=!1;break}p||(p="constructor"==l)}if(h&&!p){var g=e.constructor,v=t.constructor;g==v||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof v&&v instanceof v||(h=!1)}return f.delete(e),f.delete(t),h}(e,t,r,n,i,u)}(e,t,r,n,xe,i))}function Pe(e){return!(!He(e)||function(e){return!!K&&K in e}(e))&&(qe(e)?$:E).test(Be(e))}function Re(e){if(r=(t=e)&&t.constructor,n="function"==typeof r&&r.prototype||z,t!==n)return ne(e);var t,r,n,i=[];for(var f in Object(e))V.call(e,f)&&"constructor"!=f&&i.push(f);return i}function ke(e,t,r,n,i,f){var o=1&r,a=e.length,s=t.length;if(a!=s&&!(o&&s>a))return!1;var c=f.get(e);if(c&&f.get(t))return c==t;var u=-1,l=!0,d=2&r?new _e:void 0;for(f.set(e,t),f.set(t,e);++u<a;){var h=e[u],p=t[u];if(n)var b=o?n(p,h,u,t,e,f):n(h,p,u,e,t,f);if(void 0!==b){if(b)continue;l=!1;break}if(d){if(!I(t,(function(e,t){if(o=t,!d.has(o)&&(h===e||i(h,e,r,n,f)))return d.push(t);var o}))){l=!1;break}}else if(h!==p&&!i(h,p,r,n,f)){l=!1;break}}return f.delete(e),f.delete(t),l}function Ce(e){return function(e,t,r){var n=t(e);return Le(e)?n:function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}(n,r(e))}(e,Ke,Ne)}function Oe(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function Me(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return Pe(r)?r:void 0}me.prototype.clear=function(){this.__data__=ce?ce(null):{},this.size=0},me.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},me.prototype.get=function(e){var t=this.__data__;if(ce){var r=t[e];return r===n?void 0:r}return V.call(t,e)?t[e]:void 0},me.prototype.has=function(e){var t=this.__data__;return ce?void 0!==t[e]:V.call(t,e)},me.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ce&&void 0===t?n:t,this},ge.prototype.clear=function(){this.__data__=[],this.size=0},ge.prototype.delete=function(e){var t=this.__data__,r=Ae(t,e);return!(r<0)&&(r==t.length-1?t.pop():Q.call(t,r,1),--this.size,!0)},ge.prototype.get=function(e){var t=this.__data__,r=Ae(t,e);return r<0?void 0:t[r][1]},ge.prototype.has=function(e){return Ae(this.__data__,e)>-1},ge.prototype.set=function(e,t){var r=this.__data__,n=Ae(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},ve.prototype.clear=function(){this.size=0,this.__data__={hash:new me,map:new(fe||ge),string:new me}},ve.prototype.delete=function(e){var t=Oe(this,e).delete(e);return this.size-=t?1:0,t},ve.prototype.get=function(e){return Oe(this,e).get(e)},ve.prototype.has=function(e){return Oe(this,e).has(e)},ve.prototype.set=function(e,t){var r=Oe(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},_e.prototype.add=_e.prototype.push=function(e){return this.__data__.set(e,n),this},_e.prototype.has=function(e){return this.__data__.has(e)},we.prototype.clear=function(){this.__data__=new ge,this.size=0},we.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},we.prototype.get=function(e){return this.__data__.get(e)},we.prototype.has=function(e){return this.__data__.has(e)},we.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ge){var n=r.__data__;if(!fe||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ve(n)}return r.set(e,t),this.size=r.size,this};var Ne=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,f=[];++r<n;){var o=e[r];t(o,r,e)&&(f[i++]=o)}return f}(te(e),(function(t){return Z.call(e,t)})))}:function(){return[]},Ie=Se;function De(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||A.test(e))&&e>-1&&e%1==0&&e<t}function Be(e){if(null!=e){try{return G.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fe(e,t){return e===t||e!=e&&t!=t}(ie&&Ie(new ie(new ArrayBuffer(1)))!=w||fe&&Ie(new fe)!=l||oe&&Ie(oe.resolve())!=p||ae&&Ie(new ae)!=y||se&&Ie(new se)!=v)&&(Ie=function(e){var t=Se(e),r=t==h?e.constructor:void 0,n=r?Be(r):"";if(n)switch(n){case ue:return w;case le:return l;case de:return p;case he:return y;case pe:return v}return t});var je=Te(function(){return arguments}())?Te:function(e){return Ge(e)&&V.call(e,"callee")&&!Z.call(e,"callee")},Le=Array.isArray;var Ue=re||function(){return!1};function qe(e){if(!He(e))return!1;var t=Se(e);return t==u||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function ze(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}function He(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ge(e){return null!=e&&"object"==typeof e}var Ve=N?function(e){return function(t){return e(t)}}(N):function(e){return Ge(e)&&ze(e.length)&&!!S[Se(e)]};function Ke(e){return null!=(t=e)&&ze(t.length)&&!qe(t)?Ee(e):Re(e);var t}r.exports=function(e,t){return xe(e,t)}}).call(this,r(12),r(79)(e))},function(e,t,r){var n=r(19);e.exports={isValidAddress:function(e,t,r){var i=r?r.networkType:"",f=function(e){if("string"!=typeof e)return!1;if(e.length<=4)return!1;try{var t=n.base58(e)}catch(e){return!1}var r=t.length-4,i=t.slice(r);t=t.slice(0,r);var f=n.sha256(n.byteArray2hexStr(t)),o=n.hexStr2byteArray(n.sha256(f)).slice(0,4);return i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]&&i[3]===o[3]&&t}(e);return!!f&&(21===f.length&&function(e,t){var r=t||"prod";return"prod"!==r&&"testnet"!==r&&(r="prod"),e.addressTypes[r][0]}(t,i)===f[0])}}},function(e,t,r){(function(t){var n=r(19);e.exports={isValidAddress:function(e){var r=e.toString().toUpperCase().replace(/-/g,"");if(!r||40!==r.length)return!1;var i=n.toHex(n.base32.b32decode(r));return n.keccak256Checksum(t.from(i.slice(0,42),"hex"))===i.slice(42)}}}).call(this,r(7).Buffer)},function(e,t,r){(function(t){var n=r(19),i=new RegExp("^[0-9]{1,20}L$");e.exports={isValidAddress:function(e){return!!i.test(e)&&this.verifyAddress(e)},verifyAddress:function(e){var r=e.substring(0,e.length-1),i=n.bigNumberToBuffer(r);return t.from(i).slice(0,8).equals(i)}}}).call(this,r(7).Buffer)},function(e,t,r){var n=r(19),i=r(122),f=r(121);e.exports={isValidAddress:function(e,t,r){return function(e,t,r){var f,o=r?r.networkType:"",a="bitcoincash",s=new RegExp(t.regexp),c=e.split(":");if(1===c.length)f=e;else{if("bitcoincash"!==c[0])return!1;f=c[1]}if(!s.test(f))return!1;if(f.toLowerCase()!=f&&f.toUpperCase()!=f)return!1;var u=n.base32.b32decode(f);"testnet"===o&&(a="bchtest");try{if(i.verifyChecksum(a,u,i.encodings.BECH32))return!1}catch(e){return!1}return!0}(e,t,r)||f.isValidAddress(e,t,r)}}},function(e,t,r){var n=r(120),i=r(282),f=r(19),o="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",a=n(o),s=new RegExp("^["+o+"]{56}$");e.exports={isValidAddress:function(e){return!!s.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t,r=a.decode(e);return 48===r[0]&&f.numberToHex((255&(t=i.crc16xmodem(r.slice(0,-2))))<<8|t>>8&255,4)===f.toHex(r.slice(-2))}}},function(e,t){e.exports={isValidAddress:function(e,t,r){return function(e,t,r){return-1!==e.search(/^[a-z0-9.]+$/g)&&12===e.length}(e)}}},function(e,t,r){const n=r(85),i=r(19),f=new Uint8Array([6,161,159]);e.exports={isValidAddress:function(e){try{let t=function(e){let t=e.slice(0,-4),r=e.slice(-4),n=i.hexStr2byteArray(i.sha256x2(i.byteArray2hexStr(t)));if(!(r[0]^n[0]|r[1]^n[1]|r[2]^n[2]|r[3]^n[3]))return t}(n.decode(e));return!!t&&(t.slice(f.length),!0)}catch(e){return!1}}}},function(e,t,r){var n=r(121),i=r(218);e.exports={isValidAddress:function(e,t,r){if(r){if("erc20"===r.chainType)return i.isValidAddress(e,t,r.networkType);if("omni"===r.chainType)return n.isValidAddress(e,t,r.networkType)}return function(e,t,r){return n.isValidAddress(e,t,r)||i.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){const n=r(19);e.exports={isValidAddress:function(e,t,r={}){const{networkType:n="prod"}=r;return this.verifyChecksum(e)},verifyChecksum:function(e){if(58!==e.length)return!1;{const t=n.base32.b32decode(e),r=t.slice(0,t.length-4),i=n.byteArray2hexStr(t.slice(-4)).toString("HEX");return n.sha512_256(n.byteArray2hexStr(r)).substr(-8)===i}}}},function(e,t,r){const n=r(19),i=[{addressLength:3,accountIndexLength:1,checkSumLength:1},{addressLength:4,accountIndexLength:2,checkSumLength:1},{addressLength:5,accountIndexLength:2,checkSumLength:2},{addressLength:6,accountIndexLength:4,checkSumLength:1},{addressLength:7,accountIndexLength:4,checkSumLength:2},{addressLength:8,accountIndexLength:4,checkSumLength:3},{addressLength:9,accountIndexLength:4,checkSumLength:4},{addressLength:10,accountIndexLength:8,checkSumLength:1},{addressLength:11,accountIndexLength:8,checkSumLength:2},{addressLength:12,accountIndexLength:8,checkSumLength:3},{addressLength:13,accountIndexLength:8,checkSumLength:4},{addressLength:14,accountIndexLength:8,checkSumLength:5},{addressLength:15,accountIndexLength:8,checkSumLength:6},{addressLength:16,accountIndexLength:8,checkSumLength:7},{addressLength:17,accountIndexLength:8,checkSumLength:8},{addressLength:34,accountIndexLength:32,checkSumLength:2}];e.exports={isValidAddress:function(e,t,r={}){const{networkType:n="prod"}=r;return this.verifyChecksum(e)},verifyChecksum:function(e){try{const t="53533538505245",r=n.base58(e),f=n.byteArray2hexStr(r.slice(0,1)),o=r.slice(1),a=i.find((e=>e.addressLength===o.length));if(!a)throw new Erorr("Invalid address length");const s=n.byteArray2hexStr(o.slice(0,a.accountIndexLength)),c=n.byteArray2hexStr(o.slice(-a.checkSumLength));return n.blake2b(t+f+s,64).substr(0,2*a.checkSumLength).toUpperCase()==c}catch(e){return!1}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nativeCurrencies=void 0;const n=r(4);t.nativeCurrencies={[n.RequestLogicTypes.CURRENCY.ETH]:[{symbol:"ETH",decimals:18,name:"Ether",network:"mainnet"},{symbol:"ETH-rinkeby",decimals:18,name:"Rinkeby Ether",network:"rinkeby"},{symbol:"MATIC",decimals:18,name:"Matic",network:"matic"},{symbol:"xDAI",decimals:18,name:"xDAI",network:"xdai"},{symbol:"POA",decimals:18,name:"POA Sokol Ether",network:"sokol"},{symbol:"FUSE",decimals:18,name:"FUSE",network:"fuse"},{symbol:"CELO",decimals:18,name:"CELO",network:"celo"},{symbol:"FTM",decimals:18,name:"Fantom",network:"fantom"},{symbol:"BNB",decimals:18,name:"BNB",network:"bsctest"},{symbol:"BNB",decimals:18,name:"BNB",network:"bsc"},{symbol:"NEAR",decimals:24,name:"Near",network:"aurora"},{symbol:"NEAR-testnet",decimals:24,name:"Near Testnet",network:"aurora-testnet"}],[n.RequestLogicTypes.CURRENCY.BTC]:[{symbol:"BTC",decimals:8,name:"Bitcoin",network:"mainnet"},{symbol:"BTC-testnet",decimals:8,name:"Test Bitcoin",network:"testnet"}]}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isValidNearAddress=void 0;t.isValidNearAddress=(e,r)=>{if(!r)return(0,t.isValidNearAddress)(e,"aurora")||(0,t.isValidNearAddress)(e,"aurora-testnet");if(e.length<2||e.length>64)return!1;if(!e.match(/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/))return!1;switch(r){case"aurora":return!!e.match(/\.near$/);case"aurora-testnet":return!!e.match(/\.testnet$/);default:throw new Error(`Cannot validate NEAR address for network ${r}`)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestERC20__factory=t.ERC20True__factory=t.ERC20Revert__factory=t.ERC20NoReturn__factory=t.ERC20False__factory=t.ERC20Alpha__factory=t.UsdtFake__factory=t.BytesUtilsMock__factory=t.AggregatorMock__factory=t.StorageFeeCollector__factory=t.RequestOpenHashSubmitter__factory=t.RequestHashStorage__factory=t.Migrations__factory=t.WhitelistedRole__factory=t.WhitelistAdminRole__factory=t.IERC20FeeProxy__factory=t.FakeSwapRouter__factory=t.EthereumProxy__factory=t.EthereumFeeProxy__factory=t.EthConversionProxy__factory=t.ERC20SwapToPay__factory=t.IUniswapV2Router02__factory=t.ERC20SwapToConversion__factory=t.ERC20Proxy__factory=t.ERC20FeeProxy__factory=t.ERC20EscrowToPay__factory=t.Erc20ConversionProxy__factory=t.ERC20fraction__factory=t.ChainlinkConversionPath__factory=t.AggregatorFraction__factory=t.UpgradedStandardToken__factory=t.StandardToken__factory=t.Pausable__factory=t.ERC20Basic__factory=t.BlackList__factory=t.BasicToken__factory=t.BadERC20__factory=t.IERC20__factory=t.IERC20Metadata__factory=t.ERC20__factory=t.Ownable__factory=void 0;var n=r(545);Object.defineProperty(t,"Ownable__factory",{enumerable:!0,get:function(){return n.Ownable__factory}});var i=r(546);Object.defineProperty(t,"ERC20__factory",{enumerable:!0,get:function(){return i.ERC20__factory}});var f=r(547);Object.defineProperty(t,"IERC20Metadata__factory",{enumerable:!0,get:function(){return f.IERC20Metadata__factory}});var o=r(548);Object.defineProperty(t,"IERC20__factory",{enumerable:!0,get:function(){return o.IERC20__factory}});var a=r(549);Object.defineProperty(t,"BadERC20__factory",{enumerable:!0,get:function(){return a.BadERC20__factory}});var s=r(550);Object.defineProperty(t,"BasicToken__factory",{enumerable:!0,get:function(){return s.BasicToken__factory}});var c=r(551);Object.defineProperty(t,"BlackList__factory",{enumerable:!0,get:function(){return c.BlackList__factory}});var u=r(552);Object.defineProperty(t,"ERC20Basic__factory",{enumerable:!0,get:function(){return u.ERC20Basic__factory}});var l=r(553);Object.defineProperty(t,"Pausable__factory",{enumerable:!0,get:function(){return l.Pausable__factory}});var d=r(554);Object.defineProperty(t,"StandardToken__factory",{enumerable:!0,get:function(){return d.StandardToken__factory}});var h=r(555);Object.defineProperty(t,"UpgradedStandardToken__factory",{enumerable:!0,get:function(){return h.UpgradedStandardToken__factory}});var p=r(556);Object.defineProperty(t,"AggregatorFraction__factory",{enumerable:!0,get:function(){return p.AggregatorFraction__factory}});var b=r(557);Object.defineProperty(t,"ChainlinkConversionPath__factory",{enumerable:!0,get:function(){return b.ChainlinkConversionPath__factory}});var y=r(558);Object.defineProperty(t,"ERC20fraction__factory",{enumerable:!0,get:function(){return y.ERC20fraction__factory}});var m=r(559);Object.defineProperty(t,"Erc20ConversionProxy__factory",{enumerable:!0,get:function(){return m.Erc20ConversionProxy__factory}});var g=r(560);Object.defineProperty(t,"ERC20EscrowToPay__factory",{enumerable:!0,get:function(){return g.ERC20EscrowToPay__factory}});var v=r(561);Object.defineProperty(t,"ERC20FeeProxy__factory",{enumerable:!0,get:function(){return v.ERC20FeeProxy__factory}});var _=r(562);Object.defineProperty(t,"ERC20Proxy__factory",{enumerable:!0,get:function(){return _.ERC20Proxy__factory}});var w=r(563);Object.defineProperty(t,"ERC20SwapToConversion__factory",{enumerable:!0,get:function(){return w.ERC20SwapToConversion__factory}});var E=r(564);Object.defineProperty(t,"IUniswapV2Router02__factory",{enumerable:!0,get:function(){return E.IUniswapV2Router02__factory}});var A=r(565);Object.defineProperty(t,"ERC20SwapToPay__factory",{enumerable:!0,get:function(){return A.ERC20SwapToPay__factory}});var S=r(566);Object.defineProperty(t,"EthConversionProxy__factory",{enumerable:!0,get:function(){return S.EthConversionProxy__factory}});var T=r(567);Object.defineProperty(t,"EthereumFeeProxy__factory",{enumerable:!0,get:function(){return T.EthereumFeeProxy__factory}});var x=r(568);Object.defineProperty(t,"EthereumProxy__factory",{enumerable:!0,get:function(){return x.EthereumProxy__factory}});var P=r(569);Object.defineProperty(t,"FakeSwapRouter__factory",{enumerable:!0,get:function(){return P.FakeSwapRouter__factory}});var R=r(570);Object.defineProperty(t,"IERC20FeeProxy__factory",{enumerable:!0,get:function(){return R.IERC20FeeProxy__factory}});var k=r(571);Object.defineProperty(t,"WhitelistAdminRole__factory",{enumerable:!0,get:function(){return k.WhitelistAdminRole__factory}});var C=r(572);Object.defineProperty(t,"WhitelistedRole__factory",{enumerable:!0,get:function(){return C.WhitelistedRole__factory}});var O=r(573);Object.defineProperty(t,"Migrations__factory",{enumerable:!0,get:function(){return O.Migrations__factory}});var M=r(574);Object.defineProperty(t,"RequestHashStorage__factory",{enumerable:!0,get:function(){return M.RequestHashStorage__factory}});var N=r(575);Object.defineProperty(t,"RequestOpenHashSubmitter__factory",{enumerable:!0,get:function(){return N.RequestOpenHashSubmitter__factory}});var I=r(576);Object.defineProperty(t,"StorageFeeCollector__factory",{enumerable:!0,get:function(){return I.StorageFeeCollector__factory}});var D=r(577);Object.defineProperty(t,"AggregatorMock__factory",{enumerable:!0,get:function(){return D.AggregatorMock__factory}});var B=r(578);Object.defineProperty(t,"BytesUtilsMock__factory",{enumerable:!0,get:function(){return B.BytesUtilsMock__factory}});var F=r(579);Object.defineProperty(t,"UsdtFake__factory",{enumerable:!0,get:function(){return F.UsdtFake__factory}});var j=r(580);Object.defineProperty(t,"ERC20Alpha__factory",{enumerable:!0,get:function(){return j.ERC20Alpha__factory}});var L=r(581);Object.defineProperty(t,"ERC20False__factory",{enumerable:!0,get:function(){return L.ERC20False__factory}});var U=r(582);Object.defineProperty(t,"ERC20NoReturn__factory",{enumerable:!0,get:function(){return U.ERC20NoReturn__factory}});var q=r(583);Object.defineProperty(t,"ERC20Revert__factory",{enumerable:!0,get:function(){return q.ERC20Revert__factory}});var z=r(584);Object.defineProperty(t,"ERC20True__factory",{enumerable:!0,get:function(){return z.ERC20True__factory}});var H=r(585);Object.defineProperty(t,"TestERC20__factory",{enumerable:!0,get:function(){return H.TestERC20__factory}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Ownable__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Ownable__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20Metadata__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IERC20Metadata__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IERC20__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BadERC20__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"},{internalType:"string",name:"_name",type:"string"},{internalType:"string",name:"_symbol",type:"string"},{internalType:"uint256",name:"_decimals",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"AddedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"newAddress",type:"address"}],name:"Deprecate",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_blackListedUser",type:"address"},{indexed:!1,internalType:"uint256",name:"_balance",type:"uint256"}],name:"DestroyedBlackFunds",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Issue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"feeBasisPoints",type:"uint256"},{indexed:!1,internalType:"uint256",name:"maxFee",type:"uint256"}],name:"Params",type:"event"},{anonymous:!1,inputs:[],name:"Pause",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Redeem",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"RemovedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[],name:"Unpause",type:"event"},{inputs:[],name:"MAX_UINT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_evilUser",type:"address"}],name:"addBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_upgradedAddress",type:"address"}],name:"deprecate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"deprecated",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_blackListedUser",type:"address"}],name:"destroyBlackFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_maker",type:"address"}],name:"getBlackListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isBlackListed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"issue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_clearedUser",type:"address"}],name:"removeBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newBasisPoints",type:"uint256"},{internalType:"uint256",name:"newMaxFee",type:"uint256"}],name:"setParams",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"upgradedAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],f="0x608060405260008060146101000a81548160ff021916908315150217905550600060035560006004553480156200003557600080fd5b50604051620037983803806200379883398181016040528101906200005b919062000361565b6200007b6200006f6200013360201b60201c565b6200013b60201b60201c565b8360018190555082600790805190602001906200009a92919062000228565b508160089080519060200190620000b392919062000228565b50806009819055508360026000620000d0620001ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60146101000a81548160ff0219169083151502179055505050505062000593565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000236906200049e565b90600052602060002090601f0160209004810192826200025a5760008555620002a6565b82601f106200027557805160ff1916838001178555620002a6565b82800160010185558215620002a6579182015b82811115620002a557825182559160200191906001019062000288565b5b509050620002b59190620002b9565b5090565b5b80821115620002d4576000816000905550600101620002ba565b5090565b6000620002ef620002e98462000428565b620003ff565b9050828152602081018484840111156200030857600080fd5b6200031584828562000468565b509392505050565b600082601f8301126200032f57600080fd5b815162000341848260208601620002d8565b91505092915050565b6000815190506200035b8162000579565b92915050565b600080600080608085870312156200037857600080fd5b600062000388878288016200034a565b945050602085015167ffffffffffffffff811115620003a657600080fd5b620003b4878288016200031d565b935050604085015167ffffffffffffffff811115620003d257600080fd5b620003e0878288016200031d565b9250506060620003f3878288016200034a565b91505092959194509250565b60006200040b6200041e565b9050620004198282620004d4565b919050565b6000604051905090565b600067ffffffffffffffff82111562000446576200044562000539565b5b620004518262000568565b9050602081019050919050565b6000819050919050565b60005b83811015620004885780820151818401526020810190506200046b565b8381111562000498576000848401525b50505050565b60006002820490506001821680620004b757607f821691505b60208210811415620004ce57620004cd6200050a565b5b50919050565b620004df8262000568565b810181811067ffffffffffffffff8211171562000501576200050062000539565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b62000584816200045e565b81146200059057600080fd5b50565b6131f580620005a36000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063cc872b66116100ad578063e47d60601161007c578063e47d606014610556578063e4997dc514610586578063e5b5019a146105a2578063f2fde38b146105c0578063f3bdc228146105dc576101fb565b8063cc872b66146104d0578063db006a75146104ec578063dd62ed3e14610508578063dd644f7214610538576101fb565b80638da5cb5b116100e95780638da5cb5b1461045c57806395d89b411461047a578063a9059cbb14610498578063c0324c77146104b4576101fb565b806370a08231146103fa578063715018a61461042a5780638456cb5914610434578063893d20e81461043e576101fb565b806327e235e3116101925780633f4ba83a116101615780633f4ba83a1461037257806359bf1abe1461037c5780635c658165146103ac5780635c975abb146103dc576101fb565b806327e235e3146102e8578063313ce5671461031857806335390714146103365780633eaaf86b14610354576101fb565b80630ecb93c0116101ce5780630ecb93c01461027457806318160ddd1461029057806323b872dd146102ae57806326976e3f146102ca576101fb565b806306fdde03146102005780630753c30c1461021e578063095ea7b31461023a5780630e136b1914610256575b600080fd5b6102086105f8565b6040516102159190612c56565b60405180910390f35b61023860048036038101906102339190612905565b610686565b005b610254600480360381019061024f91906129b9565b610798565b005b61025e6108a8565b60405161026b9190612c3b565b60405180910390f35b61028e60048036038101906102899190612905565b6108bb565b005b6102986109c9565b6040516102a59190612cd8565b60405180910390f35b6102c860048036038101906102c3919061296a565b610a90565b005b6102d2610c2b565b6040516102df9190612b52565b60405180910390f35b61030260048036038101906102fd9190612905565b610c51565b60405161030f9190612cd8565b60405180910390f35b610320610c69565b60405161032d9190612cd8565b60405180910390f35b61033e610c6f565b60405161034b9190612cd8565b60405180910390f35b61035c610c75565b6040516103699190612cd8565b60405180910390f35b61037a610c7b565b005b61039660048036038101906103919190612905565b610d8e565b6040516103a39190612c3b565b60405180910390f35b6103c660048036038101906103c1919061292e565b610de4565b6040516103d39190612cd8565b60405180910390f35b6103e4610e09565b6040516103f19190612c3b565b60405180910390f35b610414600480360381019061040f9190612905565b610e1c565b6040516104219190612cd8565b60405180910390f35b610432610ef6565b005b61043c610f7e565b005b610446611093565b6040516104539190612b52565b60405180910390f35b6104646110a2565b6040516104719190612b52565b60405180910390f35b6104826110cb565b60405161048f9190612c56565b60405180910390f35b6104b260048036038101906104ad91906129b9565b611159565b005b6104ce60048036038101906104c99190612a47565b6112f0565b005b6104ea60048036038101906104e591906129f5565b61145a565b005b610506600480360381019061050191906129f5565b6116b0565b005b610522600480360381019061051d919061292e565b6118aa565b60405161052f9190612cd8565b60405180910390f35b610540611988565b60405161054d9190612cd8565b60405180910390f35b610570600480360381019061056b9190612905565b61198e565b60405161057d9190612c3b565b60405180910390f35b6105a0600480360381019061059b9190612905565b6119ae565b005b6105aa611abc565b6040516105b79190612cd8565b60405180910390f35b6105da60048036038101906105d59190612905565b611ae0565b005b6105f660048036038101906105f19190612905565b611bd8565b005b6007805461060590613039565b80601f016020809104026020016040519081016040528092919081815260200182805461063190613039565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b61068e611d88565b73ffffffffffffffffffffffffffffffffffffffff166106ac6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612c98565b60405180910390fd5b6001600a60146101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e8160405161078d9190612b52565b60405180910390a150565b60406004816107a79190612d38565b600036905010156107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612cb8565b60405180910390fd5b600a60149054906101000a900460ff161561089857600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b815260040161086193929190612bdb565b600060405180830381600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506108a3565b6108a28383611d90565b5b505050565b600a60149054906101000a900460ff1681565b6108c3611d88565b73ffffffffffffffffffffffffffffffffffffffff166108e16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90612c98565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc816040516109be9190612b52565b60405180910390a150565b6000600a60149054906101000a900460ff1615610a8757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a1e565b9050610a8d565b60015490505b90565b600060149054906101000a900460ff1615610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790612cb8565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612cb8565b60405180910390fd5b600a60149054906101000a900460ff1615610c1a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff1660e01b8152600401610be39493929190612b96565b600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b50505050610c26565b610c25838383611f9e565b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090505481565b60095481565b60045481565b60015481565b610c83611d88565b73ffffffffffffffffffffffffffffffffffffffff16610ca16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612c98565b60405180910390fd5b600060149054906101000a900460ff16610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612cb8565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b6000600a60149054906101000a900460ff1615610ee557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610e8e9190612b52565b60206040518083038186803b158015610ea657600080fd5b505afa158015610eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ede9190612a1e565b9050610ef1565b610eee82612404565b90505b919050565b610efe611d88565b73ffffffffffffffffffffffffffffffffffffffff16610f1c6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612c98565b60405180910390fd5b610f7c600061244d565b565b610f86611d88565b73ffffffffffffffffffffffffffffffffffffffff16610fa46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612c98565b60405180910390fd5b600060149054906101000a900460ff161561104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612cb8565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600061109d6110a2565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600880546110d890613039565b80601f016020809104026020016040519081016040528092919081815260200182805461110490613039565b80156111515780601f1061112657610100808354040283529160200191611151565b820191906000526020600020905b81548152906001019060200180831161113457829003601f168201915b505050505081565b600060149054906101000a900460ff16156111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612cb8565b60405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612cb8565b60405180910390fd5b600a60149054906101000a900460ff16156112e157600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff1660e01b81526004016112aa93929190612bdb565b600060405180830381600087803b1580156112c457600080fd5b505af11580156112d8573d6000803e3d6000fd5b505050506112ec565b6112eb8282612511565b5b5050565b6112f8611d88565b73ffffffffffffffffffffffffffffffffffffffff166113166110a2565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612c98565b60405180910390fd5b601482106113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612cb8565b60405180910390fd5b603281106113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612cb8565b60405180910390fd5b81600381905550600954600a6114089190612e12565b816114139190612f30565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e60035460045460405161144e929190612cf3565b60405180910390a15050565b611462611d88565b73ffffffffffffffffffffffffffffffffffffffff166114806110a2565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612c98565b60405180910390fd5b600154816001546114e79190612d38565b11611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612cb8565b60405180910390fd5b600260006115336110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816002600061157b6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c09190612d38565b11611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612cb8565b60405180910390fd5b806002600061160d6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116569190612d38565b92505081905550806001600082825461166f9190612d38565b925050819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040516116a59190612cd8565b60405180910390a150565b6116b8611d88565b73ffffffffffffffffffffffffffffffffffffffff166116d66110a2565b73ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390612c98565b60405180910390fd5b806001541015611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612cb8565b60405180910390fd5b806002600061177e6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612cb8565b60405180910390fd5b806001600082825461180c9190612f8a565b9250508190555080600260006118206110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118699190612f8a565b925050819055507f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a448160405161189f9190612cd8565b60405180910390a150565b6000600a60149054906101000a900460ff161561197557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b815260040161191e929190612b6d565b60206040518083038186803b15801561193657600080fd5b505afa15801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e9190612a1e565b9050611982565b61197f838361283f565b90505b92915050565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6119b6611d88565b73ffffffffffffffffffffffffffffffffffffffff166119d46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612c98565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051611ab19190612b52565b60405180910390a150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b611ae8611d88565b73ffffffffffffffffffffffffffffffffffffffff16611b066110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390612c98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612c78565b60405180910390fd5b611bd58161244d565b50565b611be0611d88565b73ffffffffffffffffffffffffffffffffffffffff16611bfe6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b90612c98565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790612cb8565b60405180910390fd5b6000611ceb82610e1c565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060016000828254611d449190612f8a565b925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051611d7c929190612c12565b60405180910390a15050565b600033905090565b6040600481611d9f9190612d38565b60003690501015611de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddc90612cb8565b60405180910390fd5b60008214158015611e7357506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90612cb8565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611f919190612cd8565b60405180910390a3505050565b6060600481611fad9190612d38565b60003690501015611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90612cb8565b60405180910390fd5b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612710600354856120879190612f30565b6120919190612d8e565b90506004548111156120a35760045490505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8210156121585783826120d79190612f8a565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600081856121669190612f8a565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b39190612f8a565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122419190612d38565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561239657816002600061229a6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122df9190612d38565b600260006122eb6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123316110a2565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161238d9190612cd8565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123f39190612cd8565b60405180910390a350505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60406004816125209190612d38565b60003690501015612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90612cb8565b60405180910390fd5b6000612710600354846125799190612f30565b6125839190612d8e565b90506004548111156125955760045490505b600081846125a39190612f8a565b905083600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f09190612f8a565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267e9190612d38565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156127d35781600260006126d76110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271c9190612d38565b600260006127286110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276e6110a2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ca9190612cd8565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128309190612cd8565b60405180910390a35050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000813590506128d581613191565b92915050565b6000813590506128ea816131a8565b92915050565b6000815190506128ff816131a8565b92915050565b60006020828403121561291757600080fd5b6000612925848285016128c6565b91505092915050565b6000806040838503121561294157600080fd5b600061294f858286016128c6565b9250506020612960858286016128c6565b9150509250929050565b60008060006060848603121561297f57600080fd5b600061298d868287016128c6565b935050602061299e868287016128c6565b92505060406129af868287016128db565b9150509250925092565b600080604083850312156129cc57600080fd5b60006129da858286016128c6565b92505060206129eb858286016128db565b9150509250929050565b600060208284031215612a0757600080fd5b6000612a15848285016128db565b91505092915050565b600060208284031215612a3057600080fd5b6000612a3e848285016128f0565b91505092915050565b60008060408385031215612a5a57600080fd5b6000612a68858286016128db565b9250506020612a79858286016128db565b9150509250929050565b612a8c81612fbe565b82525050565b612a9b81612fd0565b82525050565b6000612aac82612d1c565b612ab68185612d27565b9350612ac6818560208601613006565b612acf816130f8565b840191505092915050565b6000612ae7602683612d27565b9150612af282613116565b604082019050919050565b6000612b0a602083612d27565b9150612b1582613165565b602082019050919050565b6000612b2d600083612d27565b9150612b388261318e565b600082019050919050565b612b4c81612ffc565b82525050565b6000602082019050612b676000830184612a83565b92915050565b6000604082019050612b826000830185612a83565b612b8f6020830184612a83565b9392505050565b6000608082019050612bab6000830187612a83565b612bb86020830186612a83565b612bc56040830185612a83565b612bd26060830184612b43565b95945050505050565b6000606082019050612bf06000830186612a83565b612bfd6020830185612a83565b612c0a6040830184612b43565b949350505050565b6000604082019050612c276000830185612a83565b612c346020830184612b43565b9392505050565b6000602082019050612c506000830184612a92565b92915050565b60006020820190508181036000830152612c708184612aa1565b905092915050565b60006020820190508181036000830152612c9181612ada565b9050919050565b60006020820190508181036000830152612cb181612afd565b9050919050565b60006020820190508181036000830152612cd181612b20565b9050919050565b6000602082019050612ced6000830184612b43565b92915050565b6000604082019050612d086000830185612b43565b612d156020830184612b43565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000612d4382612ffc565b9150612d4e83612ffc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d8357612d8261306b565b5b828201905092915050565b6000612d9982612ffc565b9150612da483612ffc565b925082612db457612db361309a565b5b828204905092915050565b6000808291508390505b6001851115612e0957808604811115612de557612de461306b565b5b6001851615612df45780820291505b8081029050612e0285613109565b9450612dc9565b94509492505050565b6000612e1d82612ffc565b9150612e2883612ffc565b9250612e557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e5d565b905092915050565b600082612e6d5760019050612f29565b81612e7b5760009050612f29565b8160018114612e915760028114612e9b57612eca565b6001915050612f29565b60ff841115612ead57612eac61306b565b5b8360020a915084821115612ec457612ec361306b565b5b50612f29565b5060208310610133831016604e8410600b8410161715612eff5782820a905083811115612efa57612ef961306b565b5b612f29565b612f0c8484846001612dbf565b92509050818404811115612f2357612f2261306b565b5b81810290505b9392505050565b6000612f3b82612ffc565b9150612f4683612ffc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7f57612f7e61306b565b5b828202905092915050565b6000612f9582612ffc565b9150612fa083612ffc565b925082821015612fb357612fb261306b565b5b828203905092915050565b6000612fc982612fdc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015613024578082015181840152602081019050613009565b83811115613033576000848401525b50505050565b6000600282049050600182168061305157607f821691505b60208210811415613065576130646130c9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b61319a81612fbe565b81146131a557600080fd5b50565b6131b181612ffc565b81146131bc57600080fd5b5056fea2646970667358221220f697f91132204d24dcee8d8f0b65753b5b45d5fc671585b38526d95df4fd455064736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r,n,i){return super.deploy(e,t,r,n,i||{})}getDeployTransaction(e,t,r,n,i){return super.getDeployTransaction(e,t,r,n,i||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BadERC20__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BasicToken__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BasicToken__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlackList__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"AddedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_blackListedUser",type:"address"},{indexed:!1,internalType:"uint256",name:"_balance",type:"uint256"}],name:"DestroyedBlackFunds",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"RemovedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_evilUser",type:"address"}],name:"addBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_blackListedUser",type:"address"}],name:"destroyBlackFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_maker",type:"address"}],name:"getBlackListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isBlackListed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_clearedUser",type:"address"}],name:"removeBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BlackList__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Basic__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Basic__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Pausable__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[],name:"Pause",type:"event"},{anonymous:!1,inputs:[],name:"Unpause",type:"event"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b5061004761003c61004c60201b60201c565b61005460201b60201c565b610118565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6107ff806101276000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633f4ba83a146100675780635c975abb14610071578063715018a61461008f5780638456cb59146100995780638da5cb5b146100a3578063f2fde38b146100c1575b600080fd5b61006f6100dd565b005b6100796101f0565b604051610086919061066d565b60405180910390f35b610097610203565b005b6100a161028b565b005b6100ab6103a0565b6040516100b89190610652565b60405180910390f35b6100db60048036038101906100d691906105a2565b6103c9565b005b6100e56104c1565b73ffffffffffffffffffffffffffffffffffffffff166101036103a0565b73ffffffffffffffffffffffffffffffffffffffff1614610159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610150906106a8565b60405180910390fd5b600060149054906101000a900460ff166101a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019f906106c8565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b61020b6104c1565b73ffffffffffffffffffffffffffffffffffffffff166102296103a0565b73ffffffffffffffffffffffffffffffffffffffff161461027f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610276906106a8565b60405180910390fd5b61028960006104c9565b565b6102936104c1565b73ffffffffffffffffffffffffffffffffffffffff166102b16103a0565b73ffffffffffffffffffffffffffffffffffffffff1614610307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fe906106a8565b60405180910390fd5b600060149054906101000a900460ff1615610357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034e906106c8565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103d16104c1565b73ffffffffffffffffffffffffffffffffffffffff166103ef6103a0565b73ffffffffffffffffffffffffffffffffffffffff1614610445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043c906106a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ac90610688565b60405180910390fd5b6104be816104c9565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008135905061059c816107b2565b92915050565b6000602082840312156105b457600080fd5b60006105c28482850161058d565b91505092915050565b6105d4816106f9565b82525050565b6105e38161070b565b82525050565b60006105f66026836106e8565b915061060182610737565b604082019050919050565b60006106196020836106e8565b915061062482610786565b602082019050919050565b600061063c6000836106e8565b9150610647826107af565b600082019050919050565b600060208201905061066760008301846105cb565b92915050565b600060208201905061068260008301846105da565b92915050565b600060208201905081810360008301526106a1816105e9565b9050919050565b600060208201905081810360008301526106c18161060c565b9050919050565b600060208201905081810360008301526106e18161062f565b9050919050565b600082825260208201905092915050565b600061070482610717565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b6107bb816106f9565b81146107c657600080fd5b5056fea26469706673582212209ab31d082dec5adc301df12f5fb855d5d225e7db7de21ace5f99e9c6a3f71b3364736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Pausable__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardToken__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_UINT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.StandardToken__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UpgradedStandardToken__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_UINT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approveByLegacy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferByLegacy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFromByLegacy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.UpgradedStandardToken__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorFraction__factory=void 0;const n=r(6),i=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.AggregatorFraction__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChainlinkConversionPath__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_input",type:"address"},{indexed:!1,internalType:"address",name:"_output",type:"address"},{indexed:!1,internalType:"address",name:"_aggregator",type:"address"}],name:"AggregatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allAggregators",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_amountIn",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"}],name:"getConversion",outputs:[{internalType:"uint256",name:"result",type:"uint256"},{internalType:"uint256",name:"oldestRateTimestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"_path",type:"address[]"}],name:"getRate",outputs:[{internalType:"uint256",name:"rate",type:"uint256"},{internalType:"uint256",name:"oldestRateTimestamp",type:"uint256"},{internalType:"uint256",name:"decimals",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_input",type:"address"},{internalType:"address",name:"_output",type:"address"},{internalType:"address",name:"_aggregator",type:"address"}],name:"updateAggregator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_inputs",type:"address[]"},{internalType:"address[]",name:"_outputs",type:"address[]"},{internalType:"address[]",name:"_aggregators",type:"address[]"}],name:"updateAggregatorsList",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b6200033a565b600033905090565b6200005b816000620000a160201b62000baf1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620000b382826200015460201b60201c565b15620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed906200026d565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bf906200028f565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200022e601f83620002b1565b91506200023b82620002c2565b602082019050919050565b600062000255602283620002b1565b91506200026282620002eb565b604082019050919050565b6000602082019050818103600083015262000288816200021f565b9050919050565b60006020820190508181036000830152620002aa8162000246565b9050919050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b611e42806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806397edd4fa1161005b57806397edd4fa146100ff578063a3d7afa314610131578063bb5f747b1461014d578063fbd4122a1461017d57610088565b806308d5bc581461008d5780634b6c8879146100bd5780634c5a628c146100d95780637362d9c8146100e3575b600080fd5b6100a760048036038101906100a2919061130d565b6101ae565b6040516100b4919061164f565b60405180910390f35b6100d760048036038101906100d29190611349565b6101f0565b005b6100e161033a565b005b6100fd60048036038101906100f891906112e4565b61034c565b005b6101196004803603810190610114919061143c565b6103a7565b604051610128939291906117a5565b60405180910390f35b61014b60048036038101906101469190611398565b610746565b005b610167600480360381019061016291906112e4565b610b13565b60405161017491906116a1565b60405180910390f35b610197600480360381019061019291906114cf565b610b30565b6040516101a592919061177c565b60405180910390f35b60016020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6102006101fb610c57565b610b13565b61023f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102369061171c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf83838360405161032d9392919061166a565b60405180910390a1505050565b61034a610345610c57565b610c5f565b565b61035c610357610c57565b610b13565b61039b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103929061171c565b60405180910390fd5b6103a481610cb9565b50565b6000806000670de0b6b3a76400009250670de0b6b3a7640000905042915060005b600185516103d69190611a90565b81101561073e5760008060008061047989868151811061041f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518a600188610435919061183e565b8151811061046c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610d13565b935093509350935060008473ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c957600080fd5b505afa1580156104dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050191906114a6565b90508781101561050f578097505b60008573ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561055757600080fd5b505afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f919061147d565b905060008673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106119190611527565b60ff1690508481111561064457848161062a9190611a90565b600a6106369190611918565b8b6106419190611a36565b9a505b838110156106725780846106589190611a90565b600a6106649190611918565b8b61066f9190611a36565b9a505b85156106a2578181600a6106869190611918565b8c6106919190611a36565b61069b9190611894565b9a506106c8565b80600a6106af9190611918565b828c6106bb9190611a36565b6106c59190611894565b9a505b848110156106f65780856106dc9190611a90565b600a6106e89190611918565b8b6106f39190611894565b9a505b8381111561072457838161070a9190611a90565b600a6107169190611918565b8b6107219190611894565b9a505b50505050505050808061073690611b54565b9150506103c8565b509193909250565b610756610751610c57565b610b13565b610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061171c565b60405180910390fd5b8383905086869050146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d49061173c565b60405180910390fd5b818190508686905014610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c9061173c565b60405180910390fd5b60005b86869050811015610b0a5782828281811061086c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061088191906112e4565b600160008989858181106108be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906108d391906112e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610948577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061095d91906112e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf878783818110610a2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610a4491906112e4565b868684818110610a7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610a9291906112e4565b858585818110610acb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ae091906112e4565b604051610aef9392919061166a565b60405180910390a18080610b0290611b54565b915050610828565b50505050505050565b6000610b29826000610f2490919063ffffffff16565b9050919050565b6000806000806000610b82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506103a7565b925092509250808389610b959190611a36565b610b9f9190611894565b9450819350505050935093915050565b610bb98282610f24565b15610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf0906116bc565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b610c73816000610fec90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b610ccd816000610baf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935060009250600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e9557600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600192505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc9061175c565b60405180910390fd5b610f0e86611093565b9150610f1985611093565b905092959194509250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c906116fc565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610ff68282610f24565b611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c906116dc565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006008905073f5af88e117747e87fc5929f2ff87221b1447652e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110ea576012905061117d565b6110f382611182565b1561117c578173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561113e57600080fd5b505afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611527565b60ff1690505b5b919050565b600080823b905060008163ffffffff1611915050919050565b60006111ae6111a984611801565b6117dc565b905080838252602082019050828560208602820111156111cd57600080fd5b60005b858110156111fd57816111e38882611207565b8452602084019350602083019250506001810190506111d0565b5050509392505050565b60008135905061121681611db0565b92915050565b60008083601f84011261122e57600080fd5b8235905067ffffffffffffffff81111561124757600080fd5b60208301915083602082028301111561125f57600080fd5b9250929050565b600082601f83011261127757600080fd5b813561128784826020860161119b565b91505092915050565b60008151905061129f81611dc7565b92915050565b6000813590506112b481611dde565b92915050565b6000815190506112c981611dde565b92915050565b6000815190506112de81611df5565b92915050565b6000602082840312156112f657600080fd5b600061130484828501611207565b91505092915050565b6000806040838503121561132057600080fd5b600061132e85828601611207565b925050602061133f85828601611207565b9150509250929050565b60008060006060848603121561135e57600080fd5b600061136c86828701611207565b935050602061137d86828701611207565b925050604061138e86828701611207565b9150509250925092565b600080600080600080606087890312156113b157600080fd5b600087013567ffffffffffffffff8111156113cb57600080fd5b6113d789828a0161121c565b9650965050602087013567ffffffffffffffff8111156113f657600080fd5b61140289828a0161121c565b9450945050604087013567ffffffffffffffff81111561142157600080fd5b61142d89828a0161121c565b92509250509295509295509295565b60006020828403121561144e57600080fd5b600082013567ffffffffffffffff81111561146857600080fd5b61147484828501611266565b91505092915050565b60006020828403121561148f57600080fd5b600061149d84828501611290565b91505092915050565b6000602082840312156114b857600080fd5b60006114c6848285016112ba565b91505092915050565b6000806000604084860312156114e457600080fd5b60006114f2868287016112a5565b935050602084013567ffffffffffffffff81111561150f57600080fd5b61151b8682870161121c565b92509250509250925092565b60006020828403121561153957600080fd5b6000611547848285016112cf565b91505092915050565b61155981611ac4565b82525050565b61156881611ad6565b82525050565b600061157b601f8361182d565b915061158682611c48565b602082019050919050565b600061159e60218361182d565b91506115a982611c71565b604082019050919050565b60006115c160228361182d565b91506115cc82611cc0565b604082019050919050565b60006115e460408361182d565b91506115ef82611d0f565b604082019050919050565b600061160760208361182d565b915061161282611d5e565b602082019050919050565b600061162a60138361182d565b915061163582611d87565b602082019050919050565b61164981611b0c565b82525050565b60006020820190506116646000830184611550565b92915050565b600060608201905061167f6000830186611550565b61168c6020830185611550565b6116996040830184611550565b949350505050565b60006020820190506116b6600083018461155f565b92915050565b600060208201905081810360008301526116d58161156e565b9050919050565b600060208201905081810360008301526116f581611591565b9050919050565b60006020820190508181036000830152611715816115b4565b9050919050565b60006020820190508181036000830152611735816115d7565b9050919050565b60006020820190508181036000830152611755816115fa565b9050919050565b600060208201905081810360008301526117758161161d565b9050919050565b60006040820190506117916000830185611640565b61179e6020830184611640565b9392505050565b60006060820190506117ba6000830186611640565b6117c76020830185611640565b6117d46040830184611640565b949350505050565b60006117e66117f7565b90506117f28282611b23565b919050565b6000604051905090565b600067ffffffffffffffff82111561181c5761181b611bfb565b5b602082029050602081019050919050565b600082825260208201905092915050565b600061184982611b0c565b915061185483611b0c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561188957611888611b9d565b5b828201905092915050565b600061189f82611b0c565b91506118aa83611b0c565b9250826118ba576118b9611bcc565b5b828204905092915050565b6000808291508390505b600185111561190f578086048111156118eb576118ea611b9d565b5b60018516156118fa5780820291505b808102905061190885611c3b565b94506118cf565b94509492505050565b600061192382611b0c565b915061192e83611b0c565b925061195b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611963565b905092915050565b6000826119735760019050611a2f565b816119815760009050611a2f565b816001811461199757600281146119a1576119d0565b6001915050611a2f565b60ff8411156119b3576119b2611b9d565b5b8360020a9150848211156119ca576119c9611b9d565b5b50611a2f565b5060208310610133831016604e8410600b8410161715611a055782820a905083811115611a00576119ff611b9d565b5b611a2f565b611a1284848460016118c5565b92509050818404811115611a2957611a28611b9d565b5b81810290505b9392505050565b6000611a4182611b0c565b9150611a4c83611b0c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a8557611a84611b9d565b5b828202905092915050565b6000611a9b82611b0c565b9150611aa683611b0c565b925082821015611ab957611ab8611b9d565b5b828203905092915050565b6000611acf82611aec565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b611b2c82611c2a565b810181811067ffffffffffffffff82111715611b4b57611b4a611bfb565b5b80604052505050565b6000611b5f82611b0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b9257611b91611b9d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b7f617272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b7f4e6f2061676772656761746f7220666f756e6400000000000000000000000000600082015250565b611db981611ac4565b8114611dc457600080fd5b50565b611dd081611ae2565b8114611ddb57600080fd5b50565b611de781611b0c565b8114611df257600080fd5b50565b611dfe81611b16565b8114611e0957600080fd5b5056fea2646970667358221220c376082b3899457857c654a054709644b1d5f53f13bf46f4ea7478fa840a37b464736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ChainlinkConversionPath__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20fraction__factory=void 0;const n=r(6),i=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20fraction__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Erc20ConversionProxy__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"maxRateTimespan",type:"uint256"}],name:"TransferWithConversionAndReference",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_maxToSpend",type:"uint256"},{internalType:"uint256",name:"_maxRateTimespan",type:"uint256"}],name:"transferFromWithReferenceAndFee",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x608060405234801561001057600080fd5b5060405162000fe038038062000fe0833981810160405281019061003491906100d1565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610156565b6000815190506100cb8161013f565b92915050565b600080604083850312156100e457600080fd5b60006100f2858286016100bc565b9250506020610103858286016100bc565b9150509250929050565b60006101188261011f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6101488161010d565b811461015357600080fd5b50565b610e7a80620001666000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633af2c012146100465780633cd3efef14610062578063946647f114610080575b600080fd5b610060600480360381019061005b9190610649565b61009e565b005b61006a6103b3565b6040516100779190610951565b60405180910390f35b6100886103d7565b60405161009591906109f8565b60405180910390f35b6000806100ee8a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508c88866103fd565b915091508381836100ff9190610b29565b1115610140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013790610a53565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b8b60018e8e905061018c9190610c0a565b8181106101c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101d79190610620565b8e858c8c878c6040516024016101f3979695949392919061096c565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161027d919061093a565b600060405180830381855af49150503d80600081146102b8576040519150601f19603f3d011682016040523d82523d6000602084013e6102bd565b606091505b5050905080610301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f890610a13565b60405180910390fd5b8888604051610311929190610921565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8d8d8d6000818110610375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061038a9190610620565b8a8860405161039c9493929190610a73565b60405180910390a250505050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b815260040161046091906109d6565b60606040518083038186803b15801561047857600080fd5b505afa15801561048c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b09190610734565b92509250925060008614806104d057508582426104cd9190610c0a565b11155b61050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690610a33565b60405180910390fd5b80838961051c9190610bb0565b6105269190610b7f565b94508083886105359190610bb0565b61053f9190610b7f565b935050505094509492505050565b60008135905061055c81610e16565b92915050565b60008083601f84011261057457600080fd5b8235905067ffffffffffffffff81111561058d57600080fd5b6020830191508360208202830111156105a557600080fd5b9250929050565b60008083601f8401126105be57600080fd5b8235905067ffffffffffffffff8111156105d757600080fd5b6020830191508360018202830111156105ef57600080fd5b9250929050565b60008135905061060581610e2d565b92915050565b60008151905061061a81610e2d565b92915050565b60006020828403121561063257600080fd5b60006106408482850161054d565b91505092915050565b6000806000806000806000806000806101008b8d03121561066957600080fd5b60006106778d828e0161054d565b9a505060206106888d828e016105f6565b99505060408b013567ffffffffffffffff8111156106a557600080fd5b6106b18d828e01610562565b985098505060608b013567ffffffffffffffff8111156106d057600080fd5b6106dc8d828e016105ac565b965096505060806106ef8d828e016105f6565b94505060a06107008d828e0161054d565b93505060c06107118d828e016105f6565b92505060e06107228d828e016105f6565b9150509295989b9194979a5092959850565b60008060006060848603121561074957600080fd5b60006107578682870161060b565b93505060206107688682870161060b565b92505060406107798682870161060b565b9150509250925092565b600061078f838361079b565b60208301905092915050565b6107a481610c3e565b82525050565b6107b381610c3e565b82525050565b60006107c482610ac8565b6107ce8185610aeb565b93506107d983610ab8565b8060005b8381101561080a5781516107f18882610783565b97506107fc83610ade565b9250506001810190506107dd565b5085935050505092915050565b60006108238385610afc565b9350610830838584610c9e565b61083983610d3e565b840190509392505050565b60006108508385610b0d565b935061085d838584610c9e565b82840190509392505050565b600061087482610ad3565b61087e8185610b0d565b935061088e818560208601610cad565b80840191505092915050565b6108a381610c7a565b82525050565b60006108b6602683610b18565b91506108c182610d4f565b604082019050919050565b60006108d9601b83610b18565b91506108e482610d9e565b602082019050919050565b60006108fc602483610b18565b915061090782610dc7565b604082019050919050565b61091b81610c70565b82525050565b600061092e828486610844565b91508190509392505050565b60006109468284610869565b915081905092915050565b600060208201905061096660008301846107aa565b92915050565b600060c082019050610981600083018a6107aa565b61098e60208301896107aa565b61099b6040830188610912565b81810360608301526109ae818688610817565b90506109bd6080830185610912565b6109ca60a08301846107aa565b98975050505050505050565b600060208201905081810360008301526109f081846107b9565b905092915050565b6000602082019050610a0d600083018461089a565b92915050565b60006020820190508181036000830152610a2c816108a9565b9050919050565b60006020820190508181036000830152610a4c816108cc565b9050919050565b60006020820190508181036000830152610a6c816108ef565b9050919050565b6000608082019050610a886000830187610912565b610a9560208301866107aa565b610aa26040830185610912565b610aaf6060830184610912565b95945050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610b3482610c70565b9150610b3f83610c70565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610b7457610b73610ce0565b5b828201905092915050565b6000610b8a82610c70565b9150610b9583610c70565b925082610ba557610ba4610d0f565b5b828204905092915050565b6000610bbb82610c70565b9150610bc683610c70565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610bff57610bfe610ce0565b5b828202905092915050565b6000610c1582610c70565b9150610c2083610c70565b925082821015610c3357610c32610ce0565b5b828203905092915050565b6000610c4982610c50565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c8582610c8c565b9050919050565b6000610c9782610c50565b9050919050565b82818337600083830152505050565b60005b83811015610ccb578082015181840152602081019050610cb0565b83811115610cda576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b7f416d6f756e7420746f20706179206973206f766572207468652075736572206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b610e1f81610c3e565b8114610e2a57600080fd5b50565b610e3681610c70565b8114610e4157600080fd5b5056fea264697066735822122084b409e140e2d86d1fb71dfd4306d6bc2e12677467b83175bb479e0edc2a9d8b64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Erc20ConversionProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20EscrowToPay__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"InitiatedEmergencyClaim",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"RequestFrozen",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"RevertedEmergencyClaim",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approvePaymentProxyToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"completeEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"freezeRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"initiateEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentRef",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"payEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"payRequestFromEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"contract IERC20FeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"refundFrozenFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"",type:"bytes"}],name:"requestMapping",outputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"payee",type:"address"},{internalType:"address",name:"payer",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"unlockDate",type:"uint256"},{internalType:"uint256",name:"emergencyClaimDate",type:"uint256"},{internalType:"bool",name:"emergencyState",type:"bool"},{internalType:"bool",name:"isFrozen",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"revertEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x60806040523480156200001157600080fd5b5060405162002efd38038062002efd833981810160405281019062000037919062000095565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200010f565b6000815190506200008f81620000f5565b92915050565b600060208284031215620000a857600080fd5b6000620000b8848285016200007e565b91505092915050565b6000620000ce82620000d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200010081620000c1565b81146200010c57600080fd5b50565b612dde806200011f6000396000f3fe6080604052600436106100955760003560e01c80633cd3efef116100595780633cd3efef146101a75780636662e1e0146101d257806382865e9d146101fb578063a09b241d14610224578063a58ad6bc1461024d576100d5565b806307975608146100da5780631a77f53a146101035780632a16f4c31461012c578063325a00f0146101555780633a322d451461017e576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612669565b60405180910390fd5b600080fd5b3480156100e657600080fd5b5061010160048036038101906100fc9190612148565b610291565b005b34801561010f57600080fd5b5061012a60048036038101906101259190612148565b61052d565b005b34801561013857600080fd5b50610153600480360381019061014e9190612148565b61079d565b005b34801561016157600080fd5b5061017c6004803603810190610177919061207e565b610a23565b005b34801561018a57600080fd5b506101a560048036038101906101a09190612148565b610e1c565b005b3480156101b357600080fd5b506101bc6110c7565b6040516101c9919061264e565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190612148565b6110eb565b005b34801561020757600080fd5b50610222600480360381019061021d9190612148565b6113fc565b005b34801561023057600080fd5b5061024b60048036038101906102469190612055565b61170f565b005b34801561025957600080fd5b50610274600480360381019061026f9190612148565b61178a565b6040516102889897969594939291906124d7565b60405180910390f35b806001816040516102a29190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610338906126e9565b60405180910390fd5b8160006001826040516103549190612497565b908152602001604051809103902060030154116103a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039d906127c9565b60405180910390fd5b826001816040516103b79190612497565b908152602001604051809103902060060160019054906101000a900460ff1615610416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040d90612789565b60405180910390fd5b6001846040516104269190612497565b908152602001604051809103902060060160009054906101000a900460ff16610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047b90612849565b60405180910390fd5b60006001856040516104969190612497565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006001856040516104d09190612497565b908152602001604051809103902060050181905550836040516104f39190612497565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a250505050565b8060006001826040516105409190612497565b90815260200160405180910390206003015411610592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610589906127c9565b60405180910390fd5b816001816040516105a39190612497565b908152602001604051809103902060060160009054906101000a900460ff1615610602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f9906127a9565b60405180910390fd5b6001836040516106129190612497565b908152602001604051809103902060060160019054906101000a900460ff16610670576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610667906126c9565b60405180910390fd5b426001846040516106819190612497565b90815260200160405180910390206004015411156106d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cb90612829565b60405180910390fd5b60006001846040516106e69190612497565b908152602001604051809103902060060160016101000a81548160ff021916908315150217905550610759836001856040516107229190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611862565b610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90612729565b60405180910390fd5b505050565b806001816040516107ae9190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610844906126e9565b60405180910390fd5b8160006001826040516108609190612497565b908152602001604051809103902060030154116108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a9906127c9565b60405180910390fd5b826001816040516108c39190612497565b908152602001604051809103902060060160009054906101000a900460ff1615610922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610919906127a9565b60405180910390fd5b836001816040516109339190612497565b908152602001604051809103902060060160019054906101000a900460ff1615610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612789565b60405180910390fd5b6109dd856001876040516109a69190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611862565b610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612729565b60405180910390fd5b5050505050565b826000600182604051610a369190612497565b90815260200160405180910390206003015414610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f906127e9565b60405180910390fd5b6000851480610a975750600083145b15610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace906126a9565b60405180910390fd5b6040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001868152602001600081526020016000815260200160001515815260200160001515815250600185604051610b6b9190612497565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff02191690831515021790555090505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16883088888888604051602401610d04969594939291906125bd565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610d8e9190612497565b600060405180830381855af49150503d8060008114610dc9576040519150601f19603f3d011682016040523d82523d6000602084013e610dce565b606091505b5050905080610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990612689565b60405180910390fd5b5050505050505050565b80600181604051610e2d9190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec3906126e9565b60405180910390fd5b816000600182604051610edf9190612497565b90815260200160405180910390206003015411610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f28906127c9565b60405180910390fd5b82600181604051610f429190612497565b908152602001604051809103902060060160009054906101000a900460ff1615610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f98906127a9565b60405180910390fd5b83600181604051610fb29190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890612789565b60405180910390fd5b62dd7c004261102091906128f7565b6001866040516110309190612497565b908152602001604051809103902060050181905550600180866040516110569190612497565b908152602001604051809103902060060160006101000a81548160ff0219169083151502179055508460405161108c9190612497565b60405180910390207f37b4fae7fd90ce3674204f79d686d40c4069a66c402976717d4f30817c0c093960405160405180910390a25050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806001816040516110fc9190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611192906126e9565b60405180910390fd5b8160006001826040516111ae9190612497565b90815260200160405180910390206003015411611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127c9565b60405180910390fd5b826001816040516112119190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612789565b60405180910390fd5b6001846040516112809190612497565b908152602001604051809103902060060160009054906101000a900460ff1680156112cc5750426001856040516112b79190612497565b90815260200160405180910390206005015411155b61130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612769565b60405180910390fd5b600060018560405161131d9190612497565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006001856040516113579190612497565b9081526020016040518091039020600501819055506113b7846001866040516113809190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611862565b6113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612709565b60405180910390fd5b50505050565b8060018160405161140d9190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a3906126e9565b60405180910390fd5b8160006001826040516114bf9190612497565b90815260200160405180910390206003015411611511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611508906127c9565b60405180910390fd5b826001816040516115229190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612789565b60405180910390fd5b6001846040516115919190612497565b908152602001604051809103902060060160009054906101000a900460ff16156116595760006001856040516115c79190612497565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006001856040516116019190612497565b908152602001604051809103902060050181905550836040516116249190612497565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a25b6001808560405161166a9190612497565b908152602001604051809103902060060160016101000a81548160ff0219169083151502179055506301dfe200426116a291906128f7565b6001856040516116b29190612497565b908152602001604051809103902060040181905550836040516116d59190612497565b60405180910390207f5e14b9b7c3d9675ce5ecb24ee8181d371561709a08aa9c412acb36627386dba860405160405180910390a250505050565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061178460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611e659092919063ffffffff16565b50505050565b6001818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154908060050154908060060160009054906101000a900460ff16908060060160019054906101000a900460ff16905088565b60008260006001826040516118779190612497565b908152602001604051809103902060030154116118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906127c9565b60405180910390fd5b836001816040516118da9190612497565b908152602001604051809103902060060160009054906101000a900460ff1615611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906127a9565b60405180910390fd5b8460018160405161194a9190612497565b908152602001604051809103902060060160019054906101000a900460ff16156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612789565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090612809565b60405180910390fd5b6000600187604051611a2b9190612497565b90815260200160405180910390206003015411611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7490612749565b60405180910390fd5b6000600187604051611a8f9190612497565b908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600188604051611ad59190612497565b90815260200160405180910390206003015490506000600189604051611afb9190612497565b908152602001604051809103902060030181905550808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e3060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611b6c9291906124ae565b60206040518083038186803b158015611b8457600080fd5b505afa158015611b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbc9190612189565b1015611bcc57611bcb8261170f565b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8389848c6000806040518763ffffffff1660e01b8152600401611c3096959493929190612555565b600060405180830381600087803b158015611c4a57600080fd5b505af1158015611c5e573d6000803e3d6000fd5b505050506000600189604051611c749190612497565b90815260200160405180910390206003015414611cba577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600188604051611cca9190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611d1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600188604051611d2d9190612497565b908152602001604051809103902060060160009054906101000a900460ff1615611d80577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600188604051611d909190612497565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160009055600482016000905560058201600090556006820160006101000a81549060ff02191690556006820160016101000a81549060ff0219169055505060019550505050505092915050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401611e94929190612625565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f1e9190612497565b6000604051808303816000865af19150503d8060008114611f5b576040519150601f19603f3d011682016040523d82523d6000602084013e611f60565b606091505b5091509150818015611f8e5750600081511480611f8d575080806020019051810190611f8c919061211f565b5b5b925050509392505050565b6000611fac611fa78461288e565b612869565b905082815260208101848484011115611fc457600080fd5b611fcf8482856129cb565b509392505050565b600081359050611fe681612d63565b92915050565b600081519050611ffb81612d7a565b92915050565b600082601f83011261201257600080fd5b8135612022848260208601611f99565b91505092915050565b60008135905061203a81612d91565b92915050565b60008151905061204f81612d91565b92915050565b60006020828403121561206757600080fd5b600061207584828501611fd7565b91505092915050565b60008060008060008060c0878903121561209757600080fd5b60006120a589828a01611fd7565b96505060206120b689828a01611fd7565b95505060406120c789828a0161202b565b945050606087013567ffffffffffffffff8111156120e457600080fd5b6120f089828a01612001565b935050608061210189828a0161202b565b92505060a061211289828a01611fd7565b9150509295509295509295565b60006020828403121561213157600080fd5b600061213f84828501611fec565b91505092915050565b60006020828403121561215a57600080fd5b600082013567ffffffffffffffff81111561217457600080fd5b61218084828501612001565b91505092915050565b60006020828403121561219b57600080fd5b60006121a984828501612040565b91505092915050565b6121bb8161294d565b82525050565b6121ca8161295f565b82525050565b60006121db826128bf565b6121e581856128ca565b93506121f58185602086016129da565b6121fe81612a9c565b840191505092915050565b6000612214826128bf565b61221e81856128db565b935061222e8185602086016129da565b80840191505092915050565b61224381612995565b82525050565b612252816129b9565b82525050565b60006122656013836128e6565b915061227082612aad565b602082019050919050565b60006122886026836128e6565b915061229382612ad6565b604082019050919050565b60006122ab600a836128e6565b91506122b682612b25565b602082019050919050565b60006122ce600b836128e6565b91506122d982612b4e565b602082019050919050565b60006122f1600f836128e6565b91506122fc82612b77565b602082019050919050565b60006123146010836128e6565b915061231f82612ba0565b602082019050919050565b60006123376010836128e6565b915061234282612bc9565b602082019050919050565b600061235a600b836128e6565b915061236582612bf2565b602082019050919050565b600061237d6008836128e6565b915061238882612c1b565b602082019050919050565b60006123a0600f836128e6565b91506123ab82612c44565b602082019050919050565b60006123c36011836128e6565b91506123ce82612c6d565b602082019050919050565b60006123e6600e836128e6565b91506123f182612c96565b602082019050919050565b60006124096012836128e6565b915061241482612cbf565b602082019050919050565b600061242c600d836128e6565b915061243782612ce8565b602082019050919050565b600061244f6008836128e6565b915061245a82612d11565b602082019050919050565b6000612472601c836128e6565b915061247d82612d3a565b602082019050919050565b6124918161298b565b82525050565b60006124a38284612209565b915081905092915050565b60006040820190506124c360008301856121b2565b6124d060208301846121b2565b9392505050565b6000610100820190506124ed600083018b6121b2565b6124fa602083018a6121b2565b61250760408301896121b2565b6125146060830188612488565b6125216080830187612488565b61252e60a0830186612488565b61253b60c08301856121c1565b61254860e08301846121c1565b9998505050505050505050565b600060c08201905061256a60008301896121b2565b61257760208301886121b2565b6125846040830187612488565b818103606083015261259681866121d0565b90506125a56080830185612249565b6125b260a08301846121b2565b979650505050505050565b600060c0820190506125d260008301896121b2565b6125df60208301886121b2565b6125ec6040830187612488565b81810360608301526125fe81866121d0565b905061260d6080830185612488565b61261a60a08301846121b2565b979650505050505050565b600060408201905061263a60008301856121b2565b6126476020830184612488565b9392505050565b6000602082019050612663600083018461223a565b92915050565b6000602082019050818103600083015261268281612258565b9050919050565b600060208201905081810360008301526126a28161227b565b9050919050565b600060208201905081810360008301526126c28161229e565b9050919050565b600060208201905081810360008301526126e2816122c1565b9050919050565b60006020820190508181036000830152612702816122e4565b9050919050565b6000602082019050818103600083015261272281612307565b9050919050565b600060208201905081810360008301526127428161232a565b9050919050565b600060208201905081810360008301526127628161234d565b9050919050565b6000602082019050818103600083015261278281612370565b9050919050565b600060208201905081810360008301526127a281612393565b9050919050565b600060208201905081810360008301526127c2816123b6565b9050919050565b600060208201905081810360008301526127e2816123d9565b9050919050565b60006020820190508181036000830152612802816123fc565b9050919050565b600060208201905081810360008301526128228161241f565b9050919050565b6000602082019050818103600083015261284281612442565b9050919050565b6000602082019050818103600083015261286281612465565b9050919050565b6000612873612884565b905061287f8282612a0d565b919050565b6000604051905090565b600067ffffffffffffffff8211156128a9576128a8612a6d565b5b6128b282612a9c565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006129028261298b565b915061290d8361298b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294257612941612a3e565b5b828201905092915050565b60006129588261296b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006129a0826129a7565b9050919050565b60006129b28261296b565b9050919050565b60006129c48261298b565b9050919050565b82818337600083830152505050565b60005b838110156129f85780820151818401526020810190506129dd565b83811115612a07576000848401525b50505050565b612a1682612a9c565b810181811067ffffffffffffffff82111715612a3557612a34612a6d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b7f5a65726f2056616c756500000000000000000000000000000000000000000000600082015250565b7f4e6f742066726f7a656e21000000000000000000000000000000000000000000600082015250565b7f4e6f7420417574686f72697a65642e0000000000000000000000000000000000600082015250565b7f5769746864726177206661696c65642100000000000000000000000000000000600082015250565b7f5769746864726177204661696c65642100000000000000000000000000000000600082015250565b7f5a45524f20416d6f756e74000000000000000000000000000000000000000000600082015250565b7f4e6f742079657421000000000000000000000000000000000000000000000000600082015250565b7f526571756573742046726f7a656e210000000000000000000000000000000000600082015250565b7f496e20656d657267656e63795374617465000000000000000000000000000000600082015250565b7f4e6f7420696e20657363726f772e000000000000000000000000000000000000600082015250565b7f416c726561647920696e20457363726f772e0000000000000000000000000000600082015250565b7f5a45524f20616464647265737300000000000000000000000000000000000000600082015250565b7f4e6f742059657421000000000000000000000000000000000000000000000000600082015250565b7f456d657267656e6379436c61696d204e4f5420696e6974696174656400000000600082015250565b612d6c8161294d565b8114612d7757600080fd5b50565b612d838161295f565b8114612d8e57600080fd5b50565b612d9a8161298b565b8114612da557600080fd5b5056fea264697066735822122024540fb3b985c8d603829fecb5087a4149772444ed9325d2209441e3fb961dca64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20EscrowToPay__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20FeeProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"transferFromWithReferenceAndFee",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b50610848806100206000396000f3fe6080604052600436106100225760003560e01c8063c219a14d1461006757610062565b36610062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100599061061b565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e600480360381019061008991906103ba565b610090565b005b61009b8787876101c7565b6100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d19061063b565b60405180910390fd5b6000821180156101175750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610167576101278782846101c7565b610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d9061067b565b60405180910390fd5b5b8383604051610177929190610561565b60405180910390207f9f16cbcc523c67a60c450e5ffe4f3b7b6dbe772e7abcadb2686ce029a9a0a2b688888886866040516101b69594939291906105c8565b60405180910390a250505050505050565b6000833b6101d457600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff1633858560405160240161020293929190610591565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161028c919061057a565b6000604051808303816000865af19150503d80600081146102c9576040519150601f19603f3d011682016040523d82523d6000602084013e6102ce565b606091505b505090503d600081146102e857602081146102f157600080fd5b600192506102fd565b60206000803e60005192505b508061033e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103359061065b565b60405180910390fd5b509392505050565b600081359050610355816107e4565b92915050565b60008083601f84011261036d57600080fd5b8235905067ffffffffffffffff81111561038657600080fd5b60208301915083600182028301111561039e57600080fd5b9250929050565b6000813590506103b4816107fb565b92915050565b600080600080600080600060c0888a0312156103d557600080fd5b60006103e38a828b01610346565b97505060206103f48a828b01610346565b96505060406104058a828b016103a5565b955050606088013567ffffffffffffffff81111561042257600080fd5b61042e8a828b0161035b565b945094505060806104418a828b016103a5565b92505060a06104528a828b01610346565b91505092959891949750929550565b61046a816106c2565b82525050565b600061047c83856106a6565b93506104898385846106fe565b82840190509392505050565b60006104a08261069b565b6104aa81856106a6565b93506104ba81856020860161070d565b80840191505092915050565b60006104d36013836106b1565b91506104de82610740565b602082019050919050565b60006104f6601d836106b1565b915061050182610769565b602082019050919050565b60006105196020836106b1565b915061052482610792565b602082019050919050565b600061053c6019836106b1565b9150610547826107bb565b602082019050919050565b61055b816106f4565b82525050565b600061056e828486610470565b91508190509392505050565b60006105868284610495565b915081905092915050565b60006060820190506105a66000830186610461565b6105b36020830185610461565b6105c06040830184610552565b949350505050565b600060a0820190506105dd6000830188610461565b6105ea6020830187610461565b6105f76040830186610552565b6106046060830185610552565b6106116080830184610461565b9695505050505050565b60006020820190508181036000830152610634816104c6565b9050919050565b60006020820190508181036000830152610654816104e9565b9050919050565b600060208201905081810360008301526106748161050c565b9050919050565b600060208201905081810360008301526106948161052f565b9050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006106cd826106d4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561072b578082015181840152602081019050610710565b8381111561073a576000848401525b50505050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f7061796d656e74207472616e7366657246726f6d2829206661696c6564000000600082015250565b7f7472616e7366657246726f6d282920686173206265656e207265766572746564600082015250565b7f666565207472616e7366657246726f6d2829206661696c656400000000000000600082015250565b6107ed816106c2565b81146107f857600080fd5b50565b610804816106f4565b811461080f57600080fd5b5056fea2646970667358221220cc6595442e7ae393fbeb38e765d8ef75474c311fde1a279246463540e019fe7e64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20FeeProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Proxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"TransferWithReference",type:"event"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"}],name:"transferFromWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b50610549806100206000396000f3fe6080604052600436106100225760003560e01c80630784bca31461006757610062565b36610062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610059906103c9565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e60048036038101906100899190610247565b610090565b005b60008590508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3387876040518463ffffffff1660e01b81526004016100d293929190610392565b602060405180830381600087803b1580156100ec57600080fd5b505af1158015610100573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012491906102c7565b610163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015a906103e9565b60405180910390fd5b8282604051610173929190610379565b60405180910390207f4d4e9dbb7207a31cc25529ccb52e52ddba30ded7734e32691d13da66df7f81da8787876040516101ae93929190610392565b60405180910390a2505050505050565b6000813590506101cd816104ce565b92915050565b6000815190506101e2816104e5565b92915050565b60008083601f8401126101fa57600080fd5b8235905067ffffffffffffffff81111561021357600080fd5b60208301915083600182028301111561022b57600080fd5b9250929050565b600081359050610241816104fc565b92915050565b60008060008060006080868803121561025f57600080fd5b600061026d888289016101be565b955050602061027e888289016101be565b945050604061028f88828901610232565b935050606086013567ffffffffffffffff8111156102ac57600080fd5b6102b8888289016101e8565b92509250509295509295909350565b6000602082840312156102d957600080fd5b60006102e7848285016101d3565b91505092915050565b6102f981610425565b82525050565b600061030b8385610409565b935061031883858461046d565b82840190509392505050565b6000610331601383610414565b915061033c8261047c565b602082019050919050565b6000610354601583610414565b915061035f826104a5565b602082019050919050565b61037381610463565b82525050565b60006103868284866102ff565b91508190509392505050565b60006060820190506103a760008301866102f0565b6103b460208301856102f0565b6103c1604083018461036a565b949350505050565b600060208201905081810360008301526103e281610324565b9050919050565b6000602082019050818103600083015261040281610347565b9050919050565b600081905092915050565b600082825260208201905092915050565b600061043082610443565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f7472616e7366657246726f6d2829206661696c65640000000000000000000000600082015250565b6104d781610425565b81146104e257600080fd5b50565b6104ee81610437565b81146104f957600080fd5b50565b61050581610463565b811461051057600080fd5b5056fea26469706673582212200629efbb35429c083a10d0880809161093490230b5619b455d4a3d49e6759ae764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Proxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToConversion__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_swapRouterAddress",type:"address"},{internalType:"address",name:"_paymentProxyAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approvePaymentProxyToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approveRouterToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"contract Erc20ConversionProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"setPaymentProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newSwapRouterAddress",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"swapRouter",outputs:[{internalType:"contract IUniswapV2Router02",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"uint256",name:"_amountInMax",type:"uint256"},{internalType:"address[]",name:"_uniswapPath",type:"address[]"},{internalType:"address[]",name:"_chainlinkPath",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_requestFeeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_uniswapDeadline",type:"uint256"},{internalType:"uint256",name:"_chainlinkMaxRateTimespan",type:"uint256"}],name:"swapTransferWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b50604051620024a2380380620024a28339818101604052810190620000379190620002bf565b620000576200004b620001c560201b60201c565b620001cd60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663946647f16040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014257600080fd5b505afa15801562000157573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017d919062000300565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003a8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620002a28162000374565b92915050565b600081519050620002b9816200038e565b92915050565b60008060408385031215620002d357600080fd5b6000620002e38582860162000291565b9250506020620002f68582860162000291565b9150509250929050565b6000602082840312156200031357600080fd5b60006200032384828501620002a8565b91505092915050565b6000620003398262000354565b9050919050565b60006200034d826200032c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200037f816200032c565b81146200038b57600080fd5b50565b620003998162000340565b8114620003a557600080fd5b50565b6120ea80620003b86000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063946647f111610071578063946647f11461012c578063a09b241d1461014a578063b2964b1114610166578063c0d7865514610182578063c31c9c071461019e578063f2fde38b146101bc576100a9565b806330e175c9146100ae5780633cd3efef146100ca578063715018a6146100e85780637262b4c5146100f25780638da5cb5b1461010e575b600080fd5b6100c860048036038101906100c391906115a4565b6101d8565b005b6100d2610255565b6040516100df9190611ae2565b60405180910390f35b6100f061027b565b005b61010c600480360381019061010791906115a4565b610303565b005b6101166104a3565b60405161012391906119be565b60405180910390f35b6101346104cc565b6040516101419190611ac7565b60405180910390f35b610164600480360381019061015f91906115a4565b6104f2565b005b610180600480360381019061017b91906115cd565b61056f565b005b61019c600480360381019061019791906115a4565b610cb7565b005b6101a6610d77565b6040516101b39190611afd565b60405180910390f35b6101d660048036038101906101d191906115a4565b610d9d565b005b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061024f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610e959092919063ffffffff16565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610283610fc9565b73ffffffffffffffffffffffffffffffffffffffff166102a16104a3565b73ffffffffffffffffffffffffffffffffffffffff16146102f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ee90611b58565b60405180910390fd5b6103016000610fd1565b565b61030b610fc9565b73ffffffffffffffffffffffffffffffffffffffff166103296104a3565b73ffffffffffffffffffffffffffffffffffffffff161461037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037690611b58565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663946647f16040518163ffffffff1660e01b815260040160206040518083038186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610460919061175f565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610569600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610e959092919063ffffffff16565b50505050565b866001885161057e9190611d66565b815181106105b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168860018a516105e29190611d66565b81518110610619577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e90611b38565b60405180910390fd5b6000610684888c87611095565b90506106f433308c8c6000815181106106c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1661115a909392919063ffffffff16565b610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a90611b78565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee828c8c30886040518663ffffffff1660e01b8152600401610796959493929190611bc8565b600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107ed91906116f5565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633af2c0128d8d8b8b8b8b8b898b6040518a63ffffffff1660e01b815260040161085999989796959493929190611a39565b600060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506000896000815181106108c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161090791906119be565b60206040518083038186803b15801561091f57600080fd5b505afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109579190611788565b1115610a9457610a92338a60008151811061099b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109db91906119be565b60206040518083038186803b1580156109f357600080fd5b505afa158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190611788565b8b600081518110610a65577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166112919092919063ffffffff16565b505b60008960018b51610aa59190611d66565b81518110610adc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b1c91906119be565b60206040518083038186803b158015610b3457600080fd5b505afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611788565b1115610ca957610ca7338a600081518110610bb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bf091906119be565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611788565b8b600081518110610c7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166112919092919063ffffffff16565b505b505050505050505050505050565b610cbf610fc9565b73ffffffffffffffffffffffffffffffffffffffff16610cdd6104a3565b73ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90611b58565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610da5610fc9565b73ffffffffffffffffffffffffffffffffffffffff16610dc36104a3565b73ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090611b58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090611b18565b60405180910390fd5b610e9281610fd1565b50565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610ec4929190611a10565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f4e91906119a7565b6000604051808303816000865af19150503d8060008114610f8b576040519150601f19603f3d011682016040523d82523d6000602084013e610f90565b606091505b5091509150818015610fbe5750600081511480610fbd575080806020019051810190610fbc9190611736565b5b5b925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbd4122a83856110e19190611d10565b866040518363ffffffff1660e01b81526004016110ff929190611b98565b604080518083038186803b15801561111657600080fd5b505afa15801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e91906117b1565b50809150509392505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff1686868660405160240161118b939291906119d9565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161121591906119a7565b6000604051808303816000865af19150503d8060008114611252576040519150601f19603f3d011682016040523d82523d6000602084013e611257565b606091505b509150915081801561128557506000815114806112845750808060200190518101906112839190611736565b5b5b92505050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1685856040516024016112c0929190611a10565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161134a91906119a7565b6000604051808303816000865af19150503d8060008114611387576040519150601f19603f3d011682016040523d82523d6000602084013e61138c565b606091505b50915091508180156113ba57506000815114806113b95750808060200190518101906113b89190611736565b5b5b925050509392505050565b60006113d86113d384611c47565b611c22565b905080838252602082019050828560208602820111156113f757600080fd5b60005b85811015611427578161140d888261149d565b8452602084019350602083019250506001810190506113fa565b5050509392505050565b600061144461143f84611c73565b611c22565b9050808382526020820190508285602086028201111561146357600080fd5b60005b858110156114935781611479888261158f565b845260208401935060208301925050600181019050611466565b5050509392505050565b6000813590506114ac81612058565b92915050565b600082601f8301126114c357600080fd5b81356114d38482602086016113c5565b91505092915050565b600082601f8301126114ed57600080fd5b81516114fd848260208601611431565b91505092915050565b6000815190506115158161206f565b92915050565b60008083601f84011261152d57600080fd5b8235905067ffffffffffffffff81111561154657600080fd5b60208301915083600182028301111561155e57600080fd5b9250929050565b60008151905061157481612086565b92915050565b6000813590506115898161209d565b92915050565b60008151905061159e8161209d565b92915050565b6000602082840312156115b657600080fd5b60006115c48482850161149d565b91505092915050565b60008060008060008060008060008060006101408c8e0312156115ef57600080fd5b60006115fd8e828f0161149d565b9b5050602061160e8e828f0161157a565b9a5050604061161f8e828f0161157a565b99505060608c013567ffffffffffffffff81111561163c57600080fd5b6116488e828f016114b2565b98505060808c013567ffffffffffffffff81111561166557600080fd5b6116718e828f016114b2565b97505060a08c013567ffffffffffffffff81111561168e57600080fd5b61169a8e828f0161151b565b965096505060c06116ad8e828f0161157a565b94505060e06116be8e828f0161149d565b9350506101006116d08e828f0161157a565b9250506101206116e28e828f0161157a565b9150509295989b509295989b9093969950565b60006020828403121561170757600080fd5b600082015167ffffffffffffffff81111561172157600080fd5b61172d848285016114dc565b91505092915050565b60006020828403121561174857600080fd5b600061175684828501611506565b91505092915050565b60006020828403121561177157600080fd5b600061177f84828501611565565b91505092915050565b60006020828403121561179a57600080fd5b60006117a88482850161158f565b91505092915050565b600080604083850312156117c457600080fd5b60006117d28582860161158f565b92505060206117e38582860161158f565b9150509250929050565b60006117f98383611805565b60208301905092915050565b61180e81611d9a565b82525050565b61181d81611d9a565b82525050565b600061182e82611caf565b6118388185611cd2565b935061184383611c9f565b8060005b8381101561187457815161185b88826117ed565b975061186683611cc5565b925050600181019050611847565b5085935050505092915050565b600061188d8385611ce3565b935061189a838584611e60565b6118a383611f31565b840190509392505050565b60006118b982611cba565b6118c38185611cf4565b93506118d3818560208601611e6f565b80840191505092915050565b6118e881611df4565b82525050565b6118f781611e18565b82525050565b61190681611e3c565b82525050565b6000611919602683611cff565b915061192482611f42565b604082019050919050565b600061193c603b83611cff565b915061194782611f91565b604082019050919050565b600061195f602083611cff565b915061196a82611fe0565b602082019050919050565b6000611982603383611cff565b915061198d82612009565b604082019050919050565b6119a181611dea565b82525050565b60006119b382846118ae565b915081905092915050565b60006020820190506119d36000830184611814565b92915050565b60006060820190506119ee6000830186611814565b6119fb6020830185611814565b611a086040830184611998565b949350505050565b6000604082019050611a256000830185611814565b611a326020830184611998565b9392505050565b600061010082019050611a4f600083018c611814565b611a5c602083018b611998565b8181036040830152611a6e818a611823565b90508181036060830152611a8381888a611881565b9050611a926080830187611998565b611a9f60a0830186611814565b611aac60c0830185611998565b611ab960e0830184611998565b9a9950505050505050505050565b6000602082019050611adc60008301846118df565b92915050565b6000602082019050611af760008301846118ee565b92915050565b6000602082019050611b1260008301846118fd565b92915050565b60006020820190508181036000830152611b318161190c565b9050919050565b60006020820190508181036000830152611b518161192f565b9050919050565b60006020820190508181036000830152611b7181611952565b9050919050565b60006020820190508181036000830152611b9181611975565b9050919050565b6000604082019050611bad6000830185611998565b8181036020830152611bbf8184611823565b90509392505050565b600060a082019050611bdd6000830188611998565b611bea6020830187611998565b8181036040830152611bfc8186611823565b9050611c0b6060830185611814565b611c186080830184611998565b9695505050505050565b6000611c2c611c3d565b9050611c388282611ea2565b919050565b6000604051905090565b600067ffffffffffffffff821115611c6257611c61611f02565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611c8e57611c8d611f02565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611d1b82611dea565b9150611d2683611dea565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5b57611d5a611ed3565b5b828201905092915050565b6000611d7182611dea565b9150611d7c83611dea565b925082821015611d8f57611d8e611ed3565b5b828203905092915050565b6000611da582611dca565b9050919050565b60008115159050919050565b6000611dc382611d9a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611dff82611e06565b9050919050565b6000611e1182611dca565b9050919050565b6000611e2382611e2a565b9050919050565b6000611e3582611dca565b9050919050565b6000611e4782611e4e565b9050919050565b6000611e5982611dca565b9050919050565b82818337600083830152505050565b60005b83811015611e8d578082015181840152602081019050611e72565b83811115611e9c576000848401525b50505050565b611eab82611f31565b810181811067ffffffffffffffff82111715611eca57611ec9611f02565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f7468652072657175657374656420746f6b656e206f6e20756e6973776170206d60008201527f75737420626520746865207061796d656e742063757272656e63790000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b61206181611d9a565b811461206c57600080fd5b50565b61207881611dac565b811461208357600080fd5b50565b61208f81611db8565b811461209a57600080fd5b50565b6120a681611dea565b81146120b157600080fd5b5056fea2646970667358221220424bf4ef698e906437ecf65729dc6235f549215082d70a1fe8e632443c39fb5f64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20SwapToConversion__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IUniswapV2Router02__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IUniswapV2Router02__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToPay__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_swapRouterAddress",type:"address"},{internalType:"address",name:"_paymentProxyAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approvePaymentProxyToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approveRouterToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"contract IERC20FeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"setPaymentProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newSwapRouterAddress",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"swapRouter",outputs:[{internalType:"contract IUniswapV2Router02",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_amountInMax",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_deadline",type:"uint256"}],name:"swapTransferWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5060405162001fb038038062001fb08339818101604052810190620000379190620001c4565b620000576200004b620000e160201b60201c565b620000e960201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000253565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620001be8162000239565b92915050565b60008060408385031215620001d857600080fd5b6000620001e885828601620001ad565b9250506020620001fb85828601620001ad565b9150509250929050565b6000620002128262000219565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620002448162000205565b81146200025057600080fd5b50565b611d4d80620002636000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461011f578063a09b241d1461013d578063c0d7865514610159578063c31c9c0714610175578063f2fde38b146101935761009e565b806330e175c9146100a35780633cd3efef146100bf578063715018a6146100dd5780637262b4c5146100e75780638d09fe2b14610103575b600080fd5b6100bd60048036038101906100b89190611370565b6101af565b005b6100c761022c565b6040516100d491906117e6565b60405180910390f35b6100e5610252565b005b61010160048036038101906100fc9190611370565b6102da565b005b61011d60048036038101906101189190611399565b61039a565b005b610127610b03565b60405161013491906116d8565b60405180910390f35b61015760048036038101906101529190611370565b610b2c565b005b610173600480360381019061016e9190611370565b610ba9565b005b61017d610c69565b60405161018a9190611801565b60405180910390f35b6101ad60048036038101906101a89190611370565b610c8f565b005b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610226600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d879092919063ffffffff16565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61025a610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610278610b03565b73ffffffffffffffffffffffffffffffffffffffff16146102ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c59061183c565b60405180910390fd5b6102d86000610ec3565b565b6102e2610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610300610b03565b73ffffffffffffffffffffffffffffffffffffffff1614610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061183c565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000878760008181106103d6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103eb9190611370565b90506000888860018b8b90506104019190611a16565b818110610437577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061044c9190611370565b90506000858c61045c91906119c0565b90508a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161049a9291906116f3565b60206040518083038186803b1580156104b257600080fd5b505afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea91906114ee565b1161052a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105219061185c565b60405180910390fd5b61055733308d8673ffffffffffffffffffffffffffffffffffffffff16610f87909392919063ffffffff16565b610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d9061187c565b60405180910390fd5b8a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105f49291906116f3565b60206040518083038186803b15801561060c57600080fd5b505afa158015610620573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064491906114ee565b101561065457610653836101af565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee828d8d8d308a6040518763ffffffff1660e01b81526004016106b99695949392919061189c565b600060405180830381600087803b1580156106d357600080fd5b505af11580156106e7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107109190611484565b50808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040161076f9291906116f3565b60206040518083038186803b15801561078757600080fd5b505afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf91906114ee565b10156107cf576107ce82610b2c565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d838f8f8c8c8c8c6040518863ffffffff1660e01b81526004016108369796959493929190611753565b600060405180830381600087803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b5050505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108a391906116d8565b60206040518083038186803b1580156108bb57600080fd5b505afa1580156108cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f391906114ee565b11156109ae576109ac338473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161093691906116d8565b60206040518083038186803b15801561094e57600080fd5b505afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098691906114ee565b8573ffffffffffffffffffffffffffffffffffffffff166110be9092919063ffffffff16565b505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109e991906116d8565b60206040518083038186803b158015610a0157600080fd5b505afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3991906114ee565b1115610af457610af2338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a7c91906116d8565b60206040518083038186803b158015610a9457600080fd5b505afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc91906114ee565b8473ffffffffffffffffffffffffffffffffffffffff166110be9092919063ffffffff16565b505b50505050505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610ba3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d879092919063ffffffff16565b50505050565b610bb1610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610bcf610b03565b73ffffffffffffffffffffffffffffffffffffffff1614610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c9061183c565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c97610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610cb5610b03565b73ffffffffffffffffffffffffffffffffffffffff1614610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d029061183c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d729061181c565b60405180910390fd5b610d8481610ec3565b50565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610db69291906117bd565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e4091906116c1565b6000604051808303816000865af19150503d8060008114610e7d576040519150601f19603f3d011682016040523d82523d6000602084013e610e82565b606091505b5091509150818015610eb05750600081511480610eaf575080806020019051810190610eae91906114c5565b5b5b925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008673ffffffffffffffffffffffffffffffffffffffff16868686604051602401610fb89392919061171c565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161104291906116c1565b6000604051808303816000865af19150503d806000811461107f576040519150601f19603f3d011682016040523d82523d6000602084013e611084565b606091505b50915091508180156110b257506000815114806110b15750808060200190518101906110b091906114c5565b5b5b92505050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1685856040516024016110ed9291906117bd565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161117791906116c1565b6000604051808303816000865af19150503d80600081146111b4576040519150601f19603f3d011682016040523d82523d6000602084013e6111b9565b606091505b50915091508180156111e757506000815114806111e65750808060200190518101906111e591906114c5565b5b5b925050509392505050565b60006112056112008461191d565b6118f8565b9050808382526020820190508285602086028201111561122457600080fd5b60005b85811015611254578161123a888261135b565b845260208401935060208301925050600181019050611227565b5050509392505050565b60008135905061126d81611cd2565b92915050565b60008083601f84011261128557600080fd5b8235905067ffffffffffffffff81111561129e57600080fd5b6020830191508360208202830111156112b657600080fd5b9250929050565b600082601f8301126112ce57600080fd5b81516112de8482602086016111f2565b91505092915050565b6000815190506112f681611ce9565b92915050565b60008083601f84011261130e57600080fd5b8235905067ffffffffffffffff81111561132757600080fd5b60208301915083600182028301111561133f57600080fd5b9250929050565b60008135905061135581611d00565b92915050565b60008151905061136a81611d00565b92915050565b60006020828403121561138257600080fd5b60006113908482850161125e565b91505092915050565b6000806000806000806000806000806101008b8d0312156113b957600080fd5b60006113c78d828e0161125e565b9a505060206113d88d828e01611346565b99505060406113e98d828e01611346565b98505060608b013567ffffffffffffffff81111561140657600080fd5b6114128d828e01611273565b975097505060808b013567ffffffffffffffff81111561143157600080fd5b61143d8d828e016112fc565b955095505060a06114508d828e01611346565b93505060c06114618d828e0161125e565b92505060e06114728d828e01611346565b9150509295989b9194979a5092959850565b60006020828403121561149657600080fd5b600082015167ffffffffffffffff8111156114b057600080fd5b6114bc848285016112bd565b91505092915050565b6000602082840312156114d757600080fd5b60006114e5848285016112e7565b91505092915050565b60006020828403121561150057600080fd5b600061150e8482850161135b565b91505092915050565b6000611523838361152f565b60208301905092915050565b61153881611a4a565b82525050565b61154781611a4a565b82525050565b6000611559838561196b565b935061156482611949565b8060005b8581101561159d5761157a82846119a9565b6115848882611517565b975061158f8361195e565b925050600181019050611568565b5085925050509392505050565b60006115b6838561197c565b93506115c3838584611ada565b6115cc83611bab565b840190509392505050565b60006115e282611953565b6115ec818561198d565b93506115fc818560208601611ae9565b80840191505092915050565b61161181611a92565b82525050565b61162081611ab6565b82525050565b6000611633602683611998565b915061163e82611bbc565b604082019050919050565b6000611656602083611998565b915061166182611c0b565b602082019050919050565b6000611679602983611998565b915061168482611c34565b604082019050919050565b600061169c603383611998565b91506116a782611c83565b604082019050919050565b6116bb81611a88565b82525050565b60006116cd82846115d7565b915081905092915050565b60006020820190506116ed600083018461153e565b92915050565b6000604082019050611708600083018561153e565b611715602083018461153e565b9392505050565b6000606082019050611731600083018661153e565b61173e602083018561153e565b61174b60408301846116b2565b949350505050565b600060c082019050611768600083018a61153e565b611775602083018961153e565b61178260408301886116b2565b81810360608301526117958186886115aa565b90506117a460808301856116b2565b6117b160a083018461153e565b98975050505050505050565b60006040820190506117d2600083018561153e565b6117df60208301846116b2565b9392505050565b60006020820190506117fb6000830184611608565b92915050565b60006020820190506118166000830184611617565b92915050565b6000602082019050818103600083015261183581611626565b9050919050565b6000602082019050818103600083015261185581611649565b9050919050565b600060208201905081810360008301526118758161166c565b9050919050565b600060208201905081810360008301526118958161168f565b9050919050565b600060a0820190506118b160008301896116b2565b6118be60208301886116b2565b81810360408301526118d181868861154d565b90506118e0606083018561153e565b6118ed60808301846116b2565b979650505050505050565b6000611902611913565b905061190e8282611b1c565b919050565b6000604051905090565b600067ffffffffffffffff82111561193857611937611b7c565b5b602082029050602081019050919050565b6000819050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006119b8602084018461125e565b905092915050565b60006119cb82611a88565b91506119d683611a88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a0b57611a0a611b4d565b5b828201905092915050565b6000611a2182611a88565b9150611a2c83611a88565b925082821015611a3f57611a3e611b4d565b5b828203905092915050565b6000611a5582611a68565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611a9d82611aa4565b9050919050565b6000611aaf82611a68565b9050919050565b6000611ac182611ac8565b9050919050565b6000611ad382611a68565b9050919050565b82818337600083830152505050565b60005b83811015611b07578082015181840152602081019050611aec565b83811115611b16576000848401525b50505050565b611b2582611bab565b810181811067ffffffffffffffff82111715611b4457611b43611b7c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f742073756666696369656e7420616c6c6f77616e636520666f722073776160008201527f7020746f207061792e0000000000000000000000000000000000000000000000602082015250565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b611cdb81611a4a565b8114611ce657600080fd5b50565b611cf281611a5c565b8114611cfd57600080fd5b50565b611d0981611a88565b8114611d1457600080fd5b5056fea264697066735822122091a12046c6d1efb2e759ff8c43025d2561860589c8fe777df5eab4d7cc9348ab64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20SwapToPay__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthConversionProxy__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"},{internalType:"address",name:"_nativeTokenHash",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"maxRateTimespan",type:"uint256"}],name:"TransferWithConversionAndReference",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeTokenHash",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_maxRateTimespan",type:"uint256"}],name:"transferWithReferenceAndFee",outputs:[],stateMutability:"payable",type:"function"}],f="0x60806040523480156200001157600080fd5b506040516200108238038062001082833981810160405281019062000037919062000122565b600160008190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001c6565b6000815190506200011c81620001ac565b92915050565b6000806000606084860312156200013857600080fd5b600062000148868287016200010b565b93505060206200015b868287016200010b565b92505060406200016e868287016200010b565b9150509250925092565b600062000185826200018c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001b78162000178565b8114620001c357600080fd5b50565b610eac80620001d66000396000f3fe60806040526004361061003f5760003560e01c80633cd3efef14610044578063946647f11461006f578063ac473c8a1461009a578063d515bb03146100b6575b600080fd5b34801561005057600080fd5b506100596100e1565b60405161006691906109e7565b60405180910390f35b34801561007b57600080fd5b50610084610107565b6040516100919190610a80565b60405180910390f35b6100b460048036038101906100af91906106f4565b61012d565b005b3480156100c257600080fd5b506100cb610482565b6040516100d891906109e7565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878760018a8a90506101789190610c3c565b8181106101ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101c391906106cb565b73ffffffffffffffffffffffffffffffffffffffff1614610219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021090610a9b565b60405180910390fd5b600080610269898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b87866104a8565b915091506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c848a8a868a6040516024016102c396959493929190610a02565b6040516020818303038152906040527fd7c95e98000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161034d91906109d0565b600060405180830381855af49150503d8060008114610388576040519150601f19603f3d011682016040523d82523d6000602084013e61038d565b606091505b50509050806103d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c890610adb565b60405180910390fd5b87876040516103e19291906109b7565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8c8c8c6000818110610445577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061045a91906106cb565b898860405161046c9493929190610afb565b60405180910390a2505050505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b815260040161050b9190610a5e565b60606040518083038186803b15801561052357600080fd5b505afa158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b91906107ca565b925092509250600086148061057b57508582426105789190610c3c565b11155b6105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b190610abb565b60405180910390fd5b8083896105c79190610be2565b6105d19190610bb1565b94508083886105e09190610be2565b6105ea9190610bb1565b935050505094509492505050565b60008135905061060781610e48565b92915050565b60008083601f84011261061f57600080fd5b8235905067ffffffffffffffff81111561063857600080fd5b60208301915083602082028301111561065057600080fd5b9250929050565b60008083601f84011261066957600080fd5b8235905067ffffffffffffffff81111561068257600080fd5b60208301915083600182028301111561069a57600080fd5b9250929050565b6000813590506106b081610e5f565b92915050565b6000815190506106c581610e5f565b92915050565b6000602082840312156106dd57600080fd5b60006106eb848285016105f8565b91505092915050565b600080600080600080600080600060e08a8c03121561071257600080fd5b60006107208c828d016105f8565b99505060206107318c828d016106a1565b98505060408a013567ffffffffffffffff81111561074e57600080fd5b61075a8c828d0161060d565b975097505060608a013567ffffffffffffffff81111561077957600080fd5b6107858c828d01610657565b955095505060806107988c828d016106a1565b93505060a06107a98c828d016105f8565b92505060c06107ba8c828d016106a1565b9150509295985092959850929598565b6000806000606084860312156107df57600080fd5b60006107ed868287016106b6565b93505060206107fe868287016106b6565b925050604061080f868287016106b6565b9150509250925092565b60006108258383610831565b60208301905092915050565b61083a81610c70565b82525050565b61084981610c70565b82525050565b600061085a82610b50565b6108648185610b73565b935061086f83610b40565b8060005b838110156108a05781516108878882610819565b975061089283610b66565b925050600181019050610873565b5085935050505092915050565b60006108b98385610b84565b93506108c6838584610cd0565b6108cf83610d70565b840190509392505050565b60006108e68385610b95565b93506108f3838584610cd0565b82840190509392505050565b600061090a82610b5b565b6109148185610b95565b9350610924818560208601610cdf565b80840191505092915050565b61093981610cac565b82525050565b600061094c602983610ba0565b915061095782610d81565b604082019050919050565b600061096f601b83610ba0565b915061097a82610dd0565b602082019050919050565b6000610992603783610ba0565b915061099d82610df9565b604082019050919050565b6109b181610ca2565b82525050565b60006109c48284866108da565b91508190509392505050565b60006109dc82846108ff565b915081905092915050565b60006020820190506109fc6000830184610840565b92915050565b600060a082019050610a176000830189610840565b610a2460208301886109a8565b8181036040830152610a378186886108ad565b9050610a4660608301856109a8565b610a536080830184610840565b979650505050505050565b60006020820190508181036000830152610a78818461084f565b905092915050565b6000602082019050610a956000830184610930565b92915050565b60006020820190508181036000830152610ab48161093f565b9050919050565b60006020820190508181036000830152610ad481610962565b9050919050565b60006020820190508181036000830152610af481610985565b9050919050565b6000608082019050610b1060008301876109a8565b610b1d6020830186610840565b610b2a60408301856109a8565b610b3760608301846109a8565b95945050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610bbc82610ca2565b9150610bc783610ca2565b925082610bd757610bd6610d41565b5b828204905092915050565b6000610bed82610ca2565b9150610bf883610ca2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610c3157610c30610d12565b5b828202905092915050565b6000610c4782610ca2565b9150610c5283610ca2565b925082821015610c6557610c64610d12565b5b828203905092915050565b6000610c7b82610c82565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610cb782610cbe565b9050919050565b6000610cc982610c82565b9050919050565b82818337600083830152505050565b60005b83811015610cfd578082015181840152602081019050610ce2565b83811115610d0c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f7061796d656e742063757272656e6379206d75737420626520746865206e617460008201527f69766520746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b7f7061796d656e7450726f7879207472616e73666572457861637445746857697460008201527f685265666572656e6365416e64466565206661696c6564000000000000000000602082015250565b610e5181610c70565b8114610e5c57600080fd5b50565b610e6881610ca2565b8114610e7357600080fd5b5056fea26469706673582212201c14cba0ecf010daa824fe2b3ba5e7905a2623eaf6cf56a93c22f18949f3d9b864736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r,n){return super.deploy(e,t,r,n||{})}getDeployTransaction(e,t,r,n){return super.getDeployTransaction(e,t,r,n||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.EthConversionProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumFeeProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address payable",name:"_feeAddress",type:"address"}],name:"transferExactEthWithReferenceAndFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address payable",name:"_feeAddress",type:"address"}],name:"transferWithReferenceAndFee",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b5060016000819055506106cb806100286000396000f3fe60806040526004361061002d5760003560e01c8063b868980b14610072578063d7c95e981461008e5761006d565b3661006d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610064906104d5565b60405180910390fd5b600080fd5b61008c600480360381019061008791906102dc565b6100aa565b005b6100a860048036038101906100a3919061035c565b6100ca565b005b6100c38583346100ba9190610531565b868686866100ca565b5050505050565b60026000541415610110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610107906104f5565b60405180910390fd5b60026000819055508573ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015801561015e573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101a5573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc8387346101cd9190610531565b6101d79190610531565b9081150290604051600060405180830381858888f19350505050158015610202573d6000803e3d6000fd5b508383604051610213929190610477565b60405180910390207fa1c241e337c4610a9d0f881111e977e9dc8690c85fe2108897bb1483c66e6a96878785856040516102509493929190610490565b60405180910390a26001600081905550505050505050565b60008135905061027781610667565b92915050565b60008083601f84011261028f57600080fd5b8235905067ffffffffffffffff8111156102a857600080fd5b6020830191508360018202830111156102c057600080fd5b9250929050565b6000813590506102d68161067e565b92915050565b6000806000806000608086880312156102f457600080fd5b600061030288828901610268565b955050602086013567ffffffffffffffff81111561031f57600080fd5b61032b8882890161027d565b9450945050604061033e888289016102c7565b925050606061034f88828901610268565b9150509295509295909350565b60008060008060008060a0878903121561037557600080fd5b600061038389828a01610268565b965050602061039489828a016102c7565b955050604087013567ffffffffffffffff8111156103b157600080fd5b6103bd89828a0161027d565b945094505060606103d089828a016102c7565b92505060806103e189828a01610268565b9150509295509295509295565b6103f7816105a1565b82525050565b60006104098385610515565b93506104168385846105d7565b82840190509392505050565b600061042f601383610520565b915061043a82610615565b602082019050919050565b6000610452601f83610520565b915061045d8261063e565b602082019050919050565b61047181610597565b82525050565b60006104848284866103fd565b91508190509392505050565b60006080820190506104a560008301876103ee565b6104b26020830186610468565b6104bf6040830185610468565b6104cc60608301846103ee565b95945050505050565b600060208201905081810360008301526104ee81610422565b9050919050565b6000602082019050818103600083015261050e81610445565b9050919050565b600081905092915050565b600082825260208201905092915050565b600061053c82610597565b915061054783610597565b92508282101561055a576105596105e6565b5b828203905092915050565b600061057082610577565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006105ac826105b3565b9050919050565b60006105be826105c5565b9050919050565b60006105d082610577565b9050919050565b82818337600083830152505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61067081610565565b811461067b57600080fd5b50565b61068781610597565b811461069257600080fd5b5056fea2646970667358221220733f203f1939609e5ea96371e4fe97a90bc908049eed537b7c21229b8d848ee764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.EthereumFeeProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"TransferWithReference",type:"event"},{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"bytes",name:"_paymentReference",type:"bytes"}],name:"transferWithReference",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b506103b2806100206000396000f3fe6080604052600436106100225760003560e01c8063eb7d8df31461006757610062565b36610062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100599061027f565b60405180910390fd5b600080fd5b610081600480360381019061007c919061017f565b610083565b005b8273ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156100c9573d6000803e3d6000fd5b5081816040516100da92919061023d565b60405180910390207ff20789bd5e67749fbe748d26a9ffacd11036adee6a64a8dbc70cc37a98b4e5428434604051610113929190610256565b60405180910390a2505050565b60008135905061012f81610365565b92915050565b60008083601f84011261014757600080fd5b8235905067ffffffffffffffff81111561016057600080fd5b60208301915083600182028301111561017857600080fd5b9250929050565b60008060006040848603121561019457600080fd5b60006101a286828701610120565b935050602084013567ffffffffffffffff8111156101bf57600080fd5b6101cb86828701610135565b92509250509250925092565b6101e0816102f7565b82525050565b60006101f2838561029f565b93506101ff83858461032d565b82840190509392505050565b60006102186013836102aa565b91506102238261033c565b602082019050919050565b610237816102ed565b82525050565b600061024a8284866101e6565b91508190509392505050565b600060408201905061026b60008301856101d7565b610278602083018461022e565b9392505050565b600060208201905081810360008301526102988161020b565b9050919050565b600081905092915050565b600082825260208201905092915050565b60006102c6826102cd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061030282610309565b9050919050565b60006103148261031b565b9050919050565b6000610326826102cd565b9050919050565b82818337600083830152505050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b61036e816102bb565b811461037957600080fd5b5056fea2646970667358221220a24880e669bdf0243643408743f2b697f8fd9eeb996e0ab69e4bdf8044bcaf7764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.EthereumProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FakeSwapRouter__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"}],f="0x608060405234801561001057600080fd5b50610d0b806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638803dbee14610030575b600080fd5b61004a60048036038101906100459190610782565b610060565b60405161005791906109e3565b60405180910390f35b606081428110156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d90610a25565b60405180910390fd5b600267ffffffffffffffff8111156100e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156101155781602001602082028036833780820191505090505b5091508782600081518110610153577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505060028861016c9190610ac5565b826001815181106101a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505086826001815181106101ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101511115610236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022d90610a45565b60405180910390fd5b600086866000818110610272577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906102879190610707565b90506000878760018181106102c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906102da9190610707565b905083600081518110610316577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103579190610968565b60206040518083038186803b15801561036f57600080fd5b505afa158015610383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a79190610759565b116103e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103de90610a05565b60405180910390fd5b610455333086600181518110610426577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518573ffffffffffffffffffffffffffffffffffffffff16610532909392919063ffffffff16565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87866000815181106104ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016104d29291906109ba565b602060405180830381600087803b1580156104ec57600080fd5b505af1158015610500573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105249190610730565b505050509695505050505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff1686868660405160240161056393929190610983565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105ed9190610951565b6000604051808303816000865af19150503d806000811461062a576040519150601f19603f3d011682016040523d82523d6000602084013e61062f565b606091505b509150915081801561065d575060008151148061065c57508080602001905181019061065b9190610730565b5b5b92505050949350505050565b60008135905061067881610c90565b92915050565b60008083601f84011261069057600080fd5b8235905067ffffffffffffffff8111156106a957600080fd5b6020830191508360208202830111156106c157600080fd5b9250929050565b6000815190506106d781610ca7565b92915050565b6000813590506106ec81610cbe565b92915050565b60008151905061070181610cbe565b92915050565b60006020828403121561071957600080fd5b600061072784828501610669565b91505092915050565b60006020828403121561074257600080fd5b6000610750848285016106c8565b91505092915050565b60006020828403121561076b57600080fd5b6000610779848285016106f2565b91505092915050565b60008060008060008060a0878903121561079b57600080fd5b60006107a989828a016106dd565b96505060206107ba89828a016106dd565b955050604087013567ffffffffffffffff8111156107d757600080fd5b6107e389828a0161067e565b945094505060606107f689828a01610669565b925050608061080789828a016106dd565b9150509295509295509295565b60006108208383610933565b60208301905092915050565b61083581610b1f565b82525050565b600061084682610a75565b6108508185610a98565b935061085b83610a65565b8060005b8381101561088c5781516108738882610814565b975061087e83610a8b565b92505060018101905061085f565b5085935050505092915050565b60006108a482610a80565b6108ae8185610aa9565b93506108be818560208601610b67565b80840191505092915050565b60006108d7603983610ab4565b91506108e282610bc9565b604082019050919050565b60006108fa601883610ab4565b915061090582610c18565b602082019050919050565b600061091d602783610ab4565b915061092882610c41565b604082019050919050565b61093c81610b5d565b82525050565b61094b81610b5d565b82525050565b600061095d8284610899565b915081905092915050565b600060208201905061097d600083018461082c565b92915050565b6000606082019050610998600083018661082c565b6109a5602083018561082c565b6109b26040830184610942565b949350505050565b60006040820190506109cf600083018561082c565b6109dc6020830184610942565b9392505050565b600060208201905081810360008301526109fd818461083b565b905092915050565b60006020820190508181036000830152610a1e816108ca565b9050919050565b60006020820190508181036000830152610a3e816108ed565b9050919050565b60006020820190508181036000830152610a5e81610910565b9050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610ad082610b5d565b9150610adb83610b5d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b1457610b13610b9a565b5b828202905092915050565b6000610b2a82610b3d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610b85578082015181840152602081019050610b6a565b83811115610b94576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f546573742063616e6e6f742070726f636565642c206c61636b206f6620746f6b60008201527f656e7320696e2066616b65207377617020636f6e747261637400000000000000602082015250565b7f556e69737761705632526f757465723a20455850495245440000000000000000600082015250565b7f556e69737761705632526f757465723a204558434553534956455f494e50555460008201527f5f414d4f554e5400000000000000000000000000000000000000000000000000602082015250565b610c9981610b1f565b8114610ca457600080fd5b50565b610cb081610b31565b8114610cbb57600080fd5b50565b610cc781610b5d565b8114610cd257600080fd5b5056fea2646970667358221220889db6f7c44ec95ed339385ba344dd4c0ee6fb30d7bbf0eff15300e5dcc8904064736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.FakeSwapRouter__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20FeeProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"transferFromWithReferenceAndFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IERC20FeeProxy__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistAdminRole__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.WhitelistAdminRole__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistedRole__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelisted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.WhitelistedRole__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Migrations__factory=void 0;const n=r(6),i=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"lastCompletedMigration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"completed",type:"uint256"}],name:"setCompleted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAddress",type:"address"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610389806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b1461006d578063fbdbad3c1461008b578063fdacd576146100a9575b600080fd5b61006b60048036038101906100669190610243565b6100c5565b005b610075610190565b60405161008291906102b3565b60405180910390f35b6100936101b4565b6040516100a091906102ce565b60405180910390f35b6100c360048036038101906100be919061026c565b6101ba565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018d5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040161015991906102ce565b600060405180830381600087803b15801561017357600080fd5b505af1158015610187573d6000803e3d6000fd5b50505050505b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561021657806001819055505b50565b60008135905061022881610325565b92915050565b60008135905061023d8161033c565b92915050565b60006020828403121561025557600080fd5b600061026384828501610219565b91505092915050565b60006020828403121561027e57600080fd5b600061028c8482850161022e565b91505092915050565b61029e816102e9565b82525050565b6102ad8161031b565b82525050565b60006020820190506102c86000830184610295565b92915050565b60006020820190506102e360008301846102a4565b92915050565b60006102f4826102fb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61032e816102e9565b811461033957600080fd5b50565b6103458161031b565b811461035057600080fd5b5056fea264697066735822122055ac54099b548d7b022f46152a2d84bd36daa5a418bbaa2617485bfacc38c31164736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Migrations__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestHashStorage__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"hash",type:"string"},{indexed:!1,internalType:"address",name:"hashSubmitter",type:"address"},{indexed:!1,internalType:"bytes",name:"feesParameters",type:"bytes"}],name:"NewHash",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_hash",type:"string"},{internalType:"bytes",name:"_feesParameters",type:"bytes"}],name:"declareNewHash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelisted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b6200033a565b600033905090565b6200005b816000620000a160201b620003741790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620000b382826200015460201b60201c565b15620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed906200026d565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bf906200028f565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200022e601f83620002b1565b91506200023b82620002c2565b602082019050919050565b600062000255602283620002b1565b91506200026282620002eb565b604082019050919050565b6000602082019050818103600083015262000288816200021f565b9050919050565b60006020820190508181036000830152620002aa8162000246565b9050919050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b610c9f806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637362d9c81161005b5780637362d9c8146100ff578063bb5f747b1461011b578063d6cd94731461014b578063fe8cc9621461015557610088565b806310154bad1461008d578063291d9549146100a95780633af32abf146100c55780634c5a628c146100f5575b600080fd5b6100a760048036038101906100a291906107a4565b610171565b005b6100c360048036038101906100be91906107a4565b6101cc565b005b6100df60048036038101906100da91906107a4565b610227565b6040516100ec9190610969565b60405180910390f35b6100fd610244565b005b610119600480360381019061011491906107a4565b610256565b005b610135600480360381019061013091906107a4565b6102b1565b6040516101429190610969565b60405180910390f35b6101536102ce565b005b61016f600480360381019061016a91906107cd565b6102e0565b005b61018161017c61041c565b6102b1565b6101c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b790610a2d565b60405180910390fd5b6101c981610424565b50565b6101dc6101d761041c565b6102b1565b61021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021290610a2d565b60405180910390fd5b6102248161047e565b50565b600061023d8260016104d890919063ffffffff16565b9050919050565b61025461024f61041c565b6105a0565b565b61026661026161041c565b6102b1565b6102a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029c90610a2d565b60405180910390fd5b6102ae816105fa565b50565b60006102c78260006104d890919063ffffffff16565b9050919050565b6102de6102d961041c565b61047e565b565b6102f06102eb61041c565b610227565b61032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032690610a4d565b60405180910390fd5b7f18d417de4779c6e73fd772de6d0f29ed8ff746805f1c997ef63a124ffb3f38e08484338585604051610366959493929190610984565b60405180910390a150505050565b61037e82826104d8565b156103be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b5906109cd565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b61043881600161037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f60405160405180910390a250565b61049281600161065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054090610a0d565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6105b481600061065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61060e81600061037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b61065e82826104d8565b61069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906109ed565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008135905061070a81610c52565b92915050565b60008083601f84011261072257600080fd5b8235905067ffffffffffffffff81111561073b57600080fd5b60208301915083600182028301111561075357600080fd5b9250929050565b60008083601f84011261076c57600080fd5b8235905067ffffffffffffffff81111561078557600080fd5b60208301915083600182028301111561079d57600080fd5b9250929050565b6000602082840312156107b657600080fd5b60006107c4848285016106fb565b91505092915050565b600080600080604085870312156107e357600080fd5b600085013567ffffffffffffffff8111156107fd57600080fd5b6108098782880161075a565b9450945050602085013567ffffffffffffffff81111561082857600080fd5b61083487828801610710565b925092505092959194509250565b61084b81610a8f565b82525050565b61085a81610aa1565b82525050565b600061086c8385610a6d565b9350610879838584610acd565b61088283610adc565b840190509392505050565b60006108998385610a7e565b93506108a6838584610acd565b6108af83610adc565b840190509392505050565b60006108c7601f83610a7e565b91506108d282610aed565b602082019050919050565b60006108ea602183610a7e565b91506108f582610b16565b604082019050919050565b600061090d602283610a7e565b915061091882610b65565b604082019050919050565b6000610930604083610a7e565b915061093b82610bb4565b604082019050919050565b6000610953603a83610a7e565b915061095e82610c03565b604082019050919050565b600060208201905061097e6000830184610851565b92915050565b6000606082019050818103600083015261099f81878961088d565b90506109ae6020830186610842565b81810360408301526109c1818486610860565b90509695505050505050565b600060208201905081810360008301526109e6816108ba565b9050919050565b60006020820190508181036000830152610a06816108dd565b9050919050565b60006020820190508181036000830152610a2681610900565b9050919050565b60006020820190508181036000830152610a4681610923565b9050919050565b60006020820190508181036000830152610a6681610946565b9050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610a9a82610aad565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b7f57686974656c6973746564526f6c653a2063616c6c657220646f6573206e6f7460008201527f2068617665207468652057686974656c697374656420726f6c65000000000000602082015250565b610c5b81610a8f565b8114610c6657600080fd5b5056fea2646970667358221220ffe461bd275a919bf65fdebe40add769506e81430a17aff4c966ea5a01380cc164736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.RequestHashStorage__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestOpenHashSubmitter__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_addressRequestHashStorage",type:"address"},{internalType:"address payable",name:"_addressBurner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"burnerAddress",type:"address"}],name:"UpdatedBurnerContract",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"minimumFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesNumerator",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesDenominator",type:"uint256"}],name:"UpdatedFeeParameters",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"threshold",type:"uint256"}],name:"UpdatedMinimumFeeThreshold",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_contentSize",type:"uint256"}],name:"getFeesAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"minimumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesDenominator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesNumerator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestBurnerContract",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"requestHashStorage",outputs:[{internalType:"contract RequestHashStorage",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_minimumFee",type:"uint256"},{internalType:"uint256",name:"_rateFeesNumerator",type:"uint256"},{internalType:"uint256",name:"_rateFeesDenominator",type:"uint256"}],name:"setFeeParameters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_requestBurnerContract",type:"address"}],name:"setRequestBurnerContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_hash",type:"string"},{internalType:"bytes",name:"_feesParameters",type:"bytes"}],name:"submitHash",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x60806040523480156200001157600080fd5b506040516200199a3803806200199a8339818101604052810190620000379190620002f8565b80620000586200004c620000e360201b60201c565b620000eb60201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620004d0565b600033905090565b620001068160006200014c60201b620006fc1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200015e8282620001ff60201b60201c565b15620001a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001989062000387565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000273576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026a90620003a9565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600081519050620002db816200049c565b92915050565b600081519050620002f281620004b6565b92915050565b600080604083850312156200030c57600080fd5b60006200031c85828601620002ca565b92505060206200032f85828601620002e1565b9150509250929050565b600062000348601f83620003cb565b9150620003558262000424565b602082019050919050565b60006200036f602283620003cb565b91506200037c826200044d565b604082019050919050565b60006020820190508181036000830152620003a28162000339565b9050919050565b60006020820190508181036000830152620003c48162000360565b9050919050565b600082825260208201905092915050565b6000620003e98262000404565b9050919050565b6000620003fd8262000404565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b620004a781620003dc565b8114620004b357600080fd5b50565b620004c181620003f0565b8114620004cd57600080fd5b50565b6114ba80620004e06000396000f3fe6080604052600436106100ab5760003560e01c806375c268f31161006457806375c268f3146101cb5780638f5b87e1146101f6578063bb5f747b14610233578063cb2537cb14610270578063e40e845714610299578063f76f2256146102c4576100eb565b80631a7626e7146100f0578063263f6a421461011b5780634c5a628c1461014657806351a58abb1461015d578063524eb29c146101795780637362d9c8146101a2576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290610f1b565b60405180910390fd5b600080fd5b3480156100fc57600080fd5b506101056102ef565b6040516101129190610fdb565b60405180910390f35b34801561012757600080fd5b506101306102f5565b60405161013d9190610fdb565b60405180910390f35b34801561015257600080fd5b5061015b6102fb565b005b61017760048036038101906101729190610bcd565b61030d565b005b34801561018557600080fd5b506101a0600480360381019061019b9190610ba4565b610450565b005b3480156101ae57600080fd5b506101c960048036038101906101c49190610b7b565b61053c565b005b3480156101d757600080fd5b506101e0610597565b6040516101ed9190610fdb565b60405180910390f35b34801561020257600080fd5b5061021d60048036038101906102189190610c42565b61059d565b60405161022a9190610fdb565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190610b7b565b6105e9565b6040516102679190610e8a565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190610c6b565b610606565b005b3480156102a557600080fd5b506102ae6106b0565b6040516102bb9190610e6f565b60405180910390f35b3480156102d057600080fd5b506102d96106d6565b6040516102e69190610ea5565b60405180910390f35b60015481565b60025481565b61030b6103066107a4565b6107ac565b565b600061035e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506000610806565b60001c90503461036d8261059d565b146103ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a490610f3b565b60405180910390fd5b6103b634610873565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe8cc962868686866040518563ffffffff1660e01b81526004016104179493929190610ec0565b600060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050505050505050565b61046061045b6107a4565b6105e9565b61049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690610fbb565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516105319190610e54565b60405180910390a150565b61054c6105476107a4565b6105e9565b61058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290610fbb565b60405180910390fd5b610594816108df565b50565b60035481565b600080600254836105ae91906110d6565b90506000600354146105cb57600354816105c891906110a5565b90505b60015481116105df576001549150506105e4565b809150505b919050565b60006105ff82600061093990919063ffffffff16565b9050919050565b6106166106116107a4565b6105e9565b610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c90610fbb565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d166001546002546003546040516106a393929190610ff6565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107068282610939565b15610746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073d90610efb565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6107c0816000610a0190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b600080821015801561082557508251602083610822919061104f565b11155b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90610f5b565b60405180910390fd5b81602001830151905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b6108f38160006106fc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190610f9b565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610a0b8282610939565b610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190610f7b565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600081359050610ab78161143f565b92915050565b600081359050610acc81611456565b92915050565b60008083601f840112610ae457600080fd5b8235905067ffffffffffffffff811115610afd57600080fd5b602083019150836001820283011115610b1557600080fd5b9250929050565b60008083601f840112610b2e57600080fd5b8235905067ffffffffffffffff811115610b4757600080fd5b602083019150836001820283011115610b5f57600080fd5b9250929050565b600081359050610b758161146d565b92915050565b600060208284031215610b8d57600080fd5b6000610b9b84828501610aa8565b91505092915050565b600060208284031215610bb657600080fd5b6000610bc484828501610abd565b91505092915050565b60008060008060408587031215610be357600080fd5b600085013567ffffffffffffffff811115610bfd57600080fd5b610c0987828801610b1c565b9450945050602085013567ffffffffffffffff811115610c2857600080fd5b610c3487828801610ad2565b925092505092959194509250565b600060208284031215610c5457600080fd5b6000610c6284828501610b66565b91505092915050565b600080600060608486031215610c8057600080fd5b6000610c8e86828701610b66565b9350506020610c9f86828701610b66565b9250506040610cb086828701610b66565b9150509250925092565b610cc38161118a565b82525050565b610cd281611142565b82525050565b610ce181611154565b82525050565b6000610cf3838561102d565b9350610d008385846111e4565b610d0983611251565b840190509392505050565b610d1d8161119c565b82525050565b6000610d2f838561103e565b9350610d3c8385846111e4565b610d4583611251565b840190509392505050565b6000610d5d601f8361103e565b9150610d6882611262565b602082019050919050565b6000610d8060138361103e565b9150610d8b8261128b565b602082019050919050565b6000610da360218361103e565b9150610dae826112b4565b604082019050919050565b6000610dc6602b8361103e565b9150610dd182611303565b604082019050919050565b6000610de960218361103e565b9150610df482611352565b604082019050919050565b6000610e0c60228361103e565b9150610e17826113a1565b604082019050919050565b6000610e2f60408361103e565b9150610e3a826113f0565b604082019050919050565b610e4e81611180565b82525050565b6000602082019050610e696000830184610cba565b92915050565b6000602082019050610e846000830184610cc9565b92915050565b6000602082019050610e9f6000830184610cd8565b92915050565b6000602082019050610eba6000830184610d14565b92915050565b60006040820190508181036000830152610edb818688610d23565b90508181036020830152610ef0818486610ce7565b905095945050505050565b60006020820190508181036000830152610f1481610d50565b9050919050565b60006020820190508181036000830152610f3481610d73565b9050919050565b60006020820190508181036000830152610f5481610d96565b9050919050565b60006020820190508181036000830152610f7481610db9565b9050919050565b60006020820190508181036000830152610f9481610ddc565b9050919050565b60006020820190508181036000830152610fb481610dff565b9050919050565b60006020820190508181036000830152610fd481610e22565b9050919050565b6000602082019050610ff06000830184610e45565b92915050565b600060608201905061100b6000830186610e45565b6110186020830185610e45565b6110256040830184610e45565b949350505050565b600082825260208201905092915050565b600082825260208201905092915050565b600061105a82611180565b915061106583611180565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561109a576110996111f3565b5b828201905092915050565b60006110b082611180565b91506110bb83611180565b9250826110cb576110ca611222565b5b828204905092915050565b60006110e182611180565b91506110ec83611180565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611125576111246111f3565b5b828202905092915050565b600061113b82611160565b9050919050565b600061114d82611160565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611195826111c0565b9050919050565b60006111a7826111ae565b9050919050565b60006111b982611160565b9050919050565b60006111cb826111d2565b9050919050565b60006111dd82611160565b9050919050565b82818337600083830152505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f6d73672e76616c756520646f6573206e6f74206d61746368207468652066656560008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b61144881611130565b811461145357600080fd5b50565b61145f81611142565b811461146a57600080fd5b50565b61147681611180565b811461148157600080fd5b5056fea26469706673582212201a2f057a55813108013a5a2b269030fd94c189ce61e3904ea50909eae7f00a6464736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.RequestOpenHashSubmitter__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StorageFeeCollector__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address payable",name:"_requestBurnerContract",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"burnerAddress",type:"address"}],name:"UpdatedBurnerContract",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"minimumFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesNumerator",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesDenominator",type:"uint256"}],name:"UpdatedFeeParameters",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"threshold",type:"uint256"}],name:"UpdatedMinimumFeeThreshold",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_contentSize",type:"uint256"}],name:"getFeesAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"minimumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesDenominator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesNumerator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestBurnerContract",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_minimumFee",type:"uint256"},{internalType:"uint256",name:"_rateFeesNumerator",type:"uint256"},{internalType:"uint256",name:"_rateFeesDenominator",type:"uint256"}],name:"setFeeParameters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_requestBurnerContract",type:"address"}],name:"setRequestBurnerContract",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b50604051620011a1380380620011a183398181016040528101906200003791906200029d565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000432565b600033905090565b620000c28160006200010860201b6200047d1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200011a8282620001bb60201b60201c565b156200015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001549062000317565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002269062000339565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600081519050620002978162000418565b92915050565b600060208284031215620002b057600080fd5b6000620002c08482850162000286565b91505092915050565b6000620002d8601f836200035b565b9150620002e582620003a0565b602082019050919050565b6000620002ff6022836200035b565b91506200030c82620003c9565b604082019050919050565b600060208201905081810360008301526200033281620002c9565b9050919050565b600060208201905081810360008301526200035481620002f0565b9050919050565b600082825260208201905092915050565b6000620003798262000380565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b62000423816200036c565b81146200042f57600080fd5b50565b610d5f80620004426000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806375c268f31161006657806375c268f3146101215780638f5b87e11461013f578063bb5f747b1461016f578063cb2537cb1461019f578063e40e8457146101bb5761009e565b80631a7626e7146100a3578063263f6a42146100c15780634c5a628c146100df578063524eb29c146100e95780637362d9c814610105575b600080fd5b6100ab6101d9565b6040516100b891906109f2565b60405180910390f35b6100c96101df565b6040516100d691906109f2565b60405180910390f35b6100e76101e5565b005b61010360048036038101906100fe91906107b8565b6101f7565b005b61011f600480360381019061011a919061078f565b6102e3565b005b61012961033e565b60405161013691906109f2565b60405180910390f35b610159600480360381019061015491906107e1565b610344565b60405161016691906109f2565b60405180910390f35b6101896004803603810190610184919061078f565b610390565b6040516101969190610957565b60405180910390f35b6101b960048036038101906101b4919061080a565b6103ad565b005b6101c3610457565b6040516101d0919061093c565b60405180910390f35b60015481565b60025481565b6101f56101f0610525565b61052d565b565b610207610202610525565b610390565b610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906109d2565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516102d89190610921565b60405180910390a150565b6102f36102ee610525565b610390565b610332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610329906109d2565b60405180910390fd5b61033b81610587565b50565b60035481565b600080600254836103559190610a86565b9050600060035414610372576003548161036f9190610a55565b90505b60015481116103865760015491505061038b565b809150505b919050565b60006103a68260006105e190919063ffffffff16565b9050919050565b6103bd6103b8610525565b610390565b6103fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f3906109d2565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d1660015460025460035460405161044a93929190610a0d565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61048782826105e1565b156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be90610972565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6105418160006106a990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61059b81600061047d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610652576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610649906109b2565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6106b382826105e1565b6106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990610992565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008135905061075f81610ce4565b92915050565b60008135905061077481610cfb565b92915050565b60008135905061078981610d12565b92915050565b6000602082840312156107a157600080fd5b60006107af84828501610750565b91505092915050565b6000602082840312156107ca57600080fd5b60006107d884828501610765565b91505092915050565b6000602082840312156107f357600080fd5b60006108018482850161077a565b91505092915050565b60008060006060848603121561081f57600080fd5b600061082d8682870161077a565b935050602061083e8682870161077a565b925050604061084f8682870161077a565b9150509250925092565b61086281610b3a565b82525050565b61087181610af2565b82525050565b61088081610b04565b82525050565b6000610893601f83610a44565b915061089e82610bce565b602082019050919050565b60006108b6602183610a44565b91506108c182610bf7565b604082019050919050565b60006108d9602283610a44565b91506108e482610c46565b604082019050919050565b60006108fc604083610a44565b915061090782610c95565b604082019050919050565b61091b81610b30565b82525050565b60006020820190506109366000830184610859565b92915050565b60006020820190506109516000830184610868565b92915050565b600060208201905061096c6000830184610877565b92915050565b6000602082019050818103600083015261098b81610886565b9050919050565b600060208201905081810360008301526109ab816108a9565b9050919050565b600060208201905081810360008301526109cb816108cc565b9050919050565b600060208201905081810360008301526109eb816108ef565b9050919050565b6000602082019050610a076000830184610912565b92915050565b6000606082019050610a226000830186610912565b610a2f6020830185610912565b610a3c6040830184610912565b949350505050565b600082825260208201905092915050565b6000610a6082610b30565b9150610a6b83610b30565b925082610a7b57610a7a610b9f565b5b828204905092915050565b6000610a9182610b30565b9150610a9c83610b30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610ad557610ad4610b70565b5b828202905092915050565b6000610aeb82610b10565b9050919050565b6000610afd82610b10565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610b4582610b4c565b9050919050565b6000610b5782610b5e565b9050919050565b6000610b6982610b10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b610ced81610ae0565b8114610cf857600080fd5b50565b610d0481610af2565b8114610d0f57600080fd5b50565b610d1b81610b30565b8114610d2657600080fd5b5056fea2646970667358221220b29fb1650df72186cf6da1b791d5df30fd43cc6ad8dd57f7894820c67ca6588564736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.StorageFeeCollector__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorMock__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"int256",name:"_r",type:"int256"},{internalType:"uint8",name:"_d",type:"uint8"},{internalType:"uint8",name:"_ra",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],f="0x608060405234801561001057600080fd5b50604051610360380380610360833981810160405281019061003291906100a0565b82600181905550816000806101000a81548160ff021916908360ff16021790555080600260006101000a81548160ff021916908360ff160217905550505050610134565b60008151905061008581610106565b92915050565b60008151905061009a8161011d565b92915050565b6000806000606084860312156100b557600080fd5b60006100c386828701610076565b93505060206100d48682870161008b565b92505060406100e58682870161008b565b9150509250925092565b6000819050919050565b600060ff82169050919050565b61010f816100ef565b811461011a57600080fd5b50565b610126816100f9565b811461013157600080fd5b50565b61021d806101436000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063313ce5671461004657806350d25bcd146100645780638205bf6a14610082575b600080fd5b61004e6100a0565b60405161005b9190610148565b60405180910390f35b61006c6100b6565b6040516100799190610112565b60405180910390f35b61008a6100c0565b604051610097919061012d565b60405180910390f35b60008060009054906101000a900460ff16905090565b6000600154905090565b6000600260009054906101000a900460ff1660ff16426100e09190610163565b905090565b6100ee81610197565b82525050565b6100fd816101a1565b82525050565b61010c816101ab565b82525050565b600060208201905061012760008301846100e5565b92915050565b600060208201905061014260008301846100f4565b92915050565b600060208201905061015d6000830184610103565b92915050565b600061016e826101a1565b9150610179836101a1565b92508282101561018c5761018b6101b8565b5b828203905092915050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220170ff96393a03c5b05a40420fc5d5d91798e6295b6660e223007e5a2f64bba9864736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r,n){return super.deploy(e,t,r,n||{})}getDeployTransaction(e,t,r,n){return super.getDeployTransaction(e,t,r,n||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.AggregatorMock__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BytesUtilsMock__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"bytes",name:"data",type:"bytes"},{internalType:"uint256",name:"offset",type:"uint256"}],name:"extractBytes32",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"extractBytes32Result",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"}],f="0x608060405234801561001057600080fd5b50610456806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063349f06931461003b578063b1e05e8a14610059575b600080fd5b610043610075565b60405161005091906101ff565b60405180910390f35b610073600480360381019061006e9190610179565b61007b565b005b60005481565b610085828261008f565b6000819055505050565b60008082101580156100ae575082516020836100ab91906102a1565b11155b6100ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e49061021a565b60405180910390fd5b81602001830151905092915050565b600061010f61010a8461025f565b61023a565b90508281526020810184848401111561012757600080fd5b61013284828561030b565b509392505050565b600082601f83011261014b57600080fd5b813561015b8482602086016100fc565b91505092915050565b60008135905061017381610409565b92915050565b6000806040838503121561018c57600080fd5b600083013567ffffffffffffffff8111156101a657600080fd5b6101b28582860161013a565b92505060206101c385828601610164565b9150509250929050565b6101d6816102f7565b82525050565b60006101e9602b83610290565b91506101f4826103ba565b604082019050919050565b600060208201905061021460008301846101cd565b92915050565b60006020820190508181036000830152610233816101dc565b9050919050565b6000610244610255565b9050610250828261031a565b919050565b6000604051905090565b600067ffffffffffffffff82111561027a5761027961037a565b5b610283826103a9565b9050602081019050919050565b600082825260208201905092915050565b60006102ac82610301565b91506102b783610301565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102ec576102eb61034b565b5b828201905092915050565b6000819050919050565b6000819050919050565b82818337600083830152505050565b610323826103a9565b810181811067ffffffffffffffff821117156103425761034161037a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b61041281610301565b811461041d57600080fd5b5056fea264697066735822122009aeb89a08b38eedf2372c654e82d812dd4a329cd3f2955b47009ca92f0f3caa64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BytesUtilsMock__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UsdtFake__factory=void 0;const n=r(6),i=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b5060b98061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063313ce56714602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006006905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600060ff8216905091905056fea264697066735822122018aaf7022b1bba53ad83be810b473bba6134b4631437f170a5f7961d3ed84e2d64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.UsdtFake__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Alpha__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"initialSupply",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b50604051620018d1380380620018d183398181016040528101906200003791906200033a565b6040518060400160405280600c81526020017f416c7068612045524320323000000000000000000000000000000000000000008152506040518060400160405280600581526020017f414c5048410000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000273565b508060049080519060200190620000d492919062000273565b505050620000e93382620000f060201b60201c565b506200052c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015a906200039e565b60405180910390fd5b62000177600083836200026960201b60201c565b80600260008282546200018b9190620003ee565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001e29190620003ee565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002499190620003c0565b60405180910390a362000265600083836200026e60201b60201c565b5050565b505050565b505050565b828054620002819062000455565b90600052602060002090601f016020900481019282620002a55760008555620002f1565b82601f10620002c057805160ff1916838001178555620002f1565b82800160010185558215620002f1579182015b82811115620002f0578251825591602001919060010190620002d3565b5b50905062000300919062000304565b5090565b5b808211156200031f57600081600090555060010162000305565b5090565b600081519050620003348162000512565b92915050565b6000602082840312156200034d57600080fd5b60006200035d8482850162000323565b91505092915050565b600062000375601f83620003dd565b91506200038282620004e9565b602082019050919050565b62000398816200044b565b82525050565b60006020820190508181036000830152620003b98162000366565b9050919050565b6000602082019050620003d760008301846200038d565b92915050565b600082825260208201905092915050565b6000620003fb826200044b565b915062000408836200044b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000440576200043f6200048b565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200046e57607f821691505b60208210811415620004855762000484620004ba565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6200051d816200044b565b81146200052957600080fd5b50565b611395806200053c6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610e35565b60405180910390f35b6100e660048036038101906100e19190610c83565b610308565b6040516100f39190610e1a565b60405180910390f35b610104610326565b6040516101119190610f37565b60405180910390f35b610134600480360381019061012f9190610c34565b610330565b6040516101419190610e1a565b60405180910390f35b610152610428565b60405161015f9190610f52565b60405180910390f35b610182600480360381019061017d9190610c83565b610431565b60405161018f9190610e1a565b60405180910390f35b6101b260048036038101906101ad9190610bcf565b6104dd565b6040516101bf9190610f37565b60405180910390f35b6101d0610525565b6040516101dd9190610e35565b60405180910390f35b61020060048036038101906101fb9190610c83565b6105b7565b60405161020d9190610e1a565b60405180910390f35b610230600480360381019061022b9190610c83565b6106a2565b60405161023d9190610e1a565b60405180910390f35b610260600480360381019061025b9190610bf8565b6106c0565b60405161026d9190610f37565b60405180910390f35b60606003805461028590611067565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190611067565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610eb7565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610f89565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490611067565b80601f016020809104026020016040519081016040528092919081815260200182805461056090611067565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a90610f17565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690610ef7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690610e77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610f37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190610ed7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190610e57565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290610e97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610f89565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610f37565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081359050610bb481611331565b92915050565b600081359050610bc981611348565b92915050565b600060208284031215610be157600080fd5b6000610bef84828501610ba5565b91505092915050565b60008060408385031215610c0b57600080fd5b6000610c1985828601610ba5565b9250506020610c2a85828601610ba5565b9150509250929050565b600080600060608486031215610c4957600080fd5b6000610c5786828701610ba5565b9350506020610c6886828701610ba5565b9250506040610c7986828701610bba565b9150509250925092565b60008060408385031215610c9657600080fd5b6000610ca485828601610ba5565b9250506020610cb585828601610bba565b9150509250929050565b610cc881610ff1565b82525050565b6000610cd982610f6d565b610ce38185610f78565b9350610cf3818560208601611034565b610cfc816110f7565b840191505092915050565b6000610d14602383610f78565b9150610d1f82611108565b604082019050919050565b6000610d37602283610f78565b9150610d4282611157565b604082019050919050565b6000610d5a602683610f78565b9150610d65826111a6565b604082019050919050565b6000610d7d602883610f78565b9150610d88826111f5565b604082019050919050565b6000610da0602583610f78565b9150610dab82611244565b604082019050919050565b6000610dc3602483610f78565b9150610dce82611293565b604082019050919050565b6000610de6602583610f78565b9150610df1826112e2565b604082019050919050565b610e058161101d565b82525050565b610e1481611027565b82525050565b6000602082019050610e2f6000830184610cbf565b92915050565b60006020820190508181036000830152610e4f8184610cce565b905092915050565b60006020820190508181036000830152610e7081610d07565b9050919050565b60006020820190508181036000830152610e9081610d2a565b9050919050565b60006020820190508181036000830152610eb081610d4d565b9050919050565b60006020820190508181036000830152610ed081610d70565b9050919050565b60006020820190508181036000830152610ef081610d93565b9050919050565b60006020820190508181036000830152610f1081610db6565b9050919050565b60006020820190508181036000830152610f3081610dd9565b9050919050565b6000602082019050610f4c6000830184610dfc565b92915050565b6000602082019050610f676000830184610e0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610f948261101d565b9150610f9f8361101d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610fd457610fd3611099565b5b828201905092915050565b6000610fea82610ffd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611052578082015181840152602081019050611037565b83811115611061576000848401525b50505050565b6000600282049050600182168061107f57607f821691505b60208210811415611093576110926110c8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61133a81610fdf565b811461134557600080fd5b50565b6113518161101d565b811461135c57600080fd5b5056fea2646970667358221220b69de2110057f2bacb3a0e4b4b3d30ffafee8ba9361a1e2709f879f88c5db67464736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Alpha__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20False__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b506101b8806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610093565b610060565b60405161005791906100f1565b60405180910390f35b60009392505050565b60008135905061007881610154565b92915050565b60008135905061008d8161016b565b92915050565b6000806000606084860312156100a857600080fd5b60006100b686828701610069565b93505060206100c786828701610069565b92505060406100d88682870161007e565b9150509250925092565b6100eb8161011e565b82525050565b600060208201905061010660008301846100e2565b92915050565b60006101178261012a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61015d8161010c565b811461016857600080fd5b50565b6101748161014a565b811461017f57600080fd5b5056fea2646970667358221220e3c10c12affa07d2e0fe8dbd1e08d671ef042df587a2ddf519f679a9d8434c6064736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20False__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20NoReturn__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b5061016a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a6004803603810190610045919061007b565b61004c565b005b505050565b60008135905061006081610106565b92915050565b6000813590506100758161011d565b92915050565b60008060006060848603121561009057600080fd5b600061009e86828701610051565b93505060206100af86828701610051565b92505060406100c086828701610066565b9150509250925092565b60006100d5826100dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61010f816100ca565b811461011a57600080fd5b50565b610126816100fc565b811461013157600080fd5b5056fea264697066735822122008b4588f4b00838a454d8d027ac35342a8401023b6dcb85d2c1a55030b4fed9764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20NoReturn__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Revert__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b5061021d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a600480360381019061004591906100b1565b61004c565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007e90610123565b60405180910390fd5b600081359050610096816101b9565b92915050565b6000813590506100ab816101d0565b92915050565b6000806000606084860312156100c657600080fd5b60006100d486828701610087565b93505060206100e586828701610087565b92505060406100f68682870161009c565b9150509250925092565b600061010d601283610143565b915061011882610190565b602082019050919050565b6000602082019050818103600083015261013c81610100565b9050919050565b600082825260208201905092915050565b600061015f82610166565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f626164207468696e672068617070656e65640000000000000000000000000000600082015250565b6101c281610154565b81146101cd57600080fd5b50565b6101d981610186565b81146101e457600080fd5b5056fea2646970667358221220ed44aff37f3912b9cc7bf6cca8e1640bd66be0174ec7d165cb7c4d99dc5f020964736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Revert__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20True__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b506101bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610097565b610060565b60405161005791906100f5565b60405180910390f35b6000600190509392505050565b60008135905061007c81610158565b92915050565b6000813590506100918161016f565b92915050565b6000806000606084860312156100ac57600080fd5b60006100ba8682870161006d565b93505060206100cb8682870161006d565b92505060406100dc86828701610082565b9150509250925092565b6100ef81610122565b82525050565b600060208201905061010a60008301846100e6565b92915050565b600061011b8261012e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61016181610110565b811461016c57600080fd5b50565b6101788161014e565b811461018357600080fd5b5056fea2646970667358221220a361898766bfc0ab2a00c4ec900076974ad621c75c315750472623f1547dc0bb64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20True__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestERC20__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"initialSupply",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5060405162001d9538038062001d95833981810160405281019062000037919062000636565b6040518060400160405280600681526020017f45524320323000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f45524332300000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb9291906200056f565b508060049080519060200190620000d49291906200056f565b505050620000e933826200011860201b60201c565b6200011073f17f52151ebef6c7334fad080c5704d77216b732600a6200029160201b60201c565b5050620009f0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200018b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001829062000775565b60405180910390fd5b6200019f60008383620002bf60201b60201c565b8060026000828254620001b39190620007c5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200020a9190620007c5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000271919062000797565b60405180910390a36200028d60008383620002c460201b60201c565b5050565b6000620002b5620002a7620002c960201b60201c565b8484620002d160201b60201c565b6001905092915050565b505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033b9062000753565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ae906200070f565b60405180910390fd5b620003ca838383620002bf60201b60201c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044a9062000731565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004e89190620007c5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200054e919062000797565b60405180910390a362000569848484620002c460201b60201c565b50505050565b8280546200057d906200082c565b90600052602060002090601f016020900481019282620005a15760008555620005ed565b82601f10620005bc57805160ff1916838001178555620005ed565b82800160010185558215620005ed579182015b82811115620005ec578251825591602001919060010190620005cf565b5b509050620005fc919062000600565b5090565b5b808211156200061b57600081600090555060010162000601565b5090565b6000815190506200063081620009d6565b92915050565b6000602082840312156200064957600080fd5b600062000659848285016200061f565b91505092915050565b600062000671602383620007b4565b91506200067e82620008c0565b604082019050919050565b600062000698602683620007b4565b9150620006a5826200090f565b604082019050919050565b6000620006bf602583620007b4565b9150620006cc826200095e565b604082019050919050565b6000620006e6601f83620007b4565b9150620006f382620009ad565b602082019050919050565b620007098162000822565b82525050565b600060208201905081810360008301526200072a8162000662565b9050919050565b600060208201905081810360008301526200074c8162000689565b9050919050565b600060208201905081810360008301526200076e81620006b0565b9050919050565b600060208201905081810360008301526200079081620006d7565b9050919050565b6000602082019050620007ae6000830184620006fe565b92915050565b600082825260208201905092915050565b6000620007d28262000822565b9150620007df8362000822565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000817576200081662000862565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200084557607f821691505b602082108114156200085c576200085b62000891565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620009e18162000822565b8114620009ed57600080fd5b50565b6113958062000a006000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610e35565b60405180910390f35b6100e660048036038101906100e19190610c83565b610308565b6040516100f39190610e1a565b60405180910390f35b610104610326565b6040516101119190610f37565b60405180910390f35b610134600480360381019061012f9190610c34565b610330565b6040516101419190610e1a565b60405180910390f35b610152610428565b60405161015f9190610f52565b60405180910390f35b610182600480360381019061017d9190610c83565b610431565b60405161018f9190610e1a565b60405180910390f35b6101b260048036038101906101ad9190610bcf565b6104dd565b6040516101bf9190610f37565b60405180910390f35b6101d0610525565b6040516101dd9190610e35565b60405180910390f35b61020060048036038101906101fb9190610c83565b6105b7565b60405161020d9190610e1a565b60405180910390f35b610230600480360381019061022b9190610c83565b6106a2565b60405161023d9190610e1a565b60405180910390f35b610260600480360381019061025b9190610bf8565b6106c0565b60405161026d9190610f37565b60405180910390f35b60606003805461028590611067565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190611067565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610eb7565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610f89565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490611067565b80601f016020809104026020016040519081016040528092919081815260200182805461056090611067565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a90610f17565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690610ef7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690610e77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610f37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190610ed7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190610e57565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290610e97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610f89565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610f37565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081359050610bb481611331565b92915050565b600081359050610bc981611348565b92915050565b600060208284031215610be157600080fd5b6000610bef84828501610ba5565b91505092915050565b60008060408385031215610c0b57600080fd5b6000610c1985828601610ba5565b9250506020610c2a85828601610ba5565b9150509250929050565b600080600060608486031215610c4957600080fd5b6000610c5786828701610ba5565b9350506020610c6886828701610ba5565b9250506040610c7986828701610bba565b9150509250925092565b60008060408385031215610c9657600080fd5b6000610ca485828601610ba5565b9250506020610cb585828601610bba565b9150509250929050565b610cc881610ff1565b82525050565b6000610cd982610f6d565b610ce38185610f78565b9350610cf3818560208601611034565b610cfc816110f7565b840191505092915050565b6000610d14602383610f78565b9150610d1f82611108565b604082019050919050565b6000610d37602283610f78565b9150610d4282611157565b604082019050919050565b6000610d5a602683610f78565b9150610d65826111a6565b604082019050919050565b6000610d7d602883610f78565b9150610d88826111f5565b604082019050919050565b6000610da0602583610f78565b9150610dab82611244565b604082019050919050565b6000610dc3602483610f78565b9150610dce82611293565b604082019050919050565b6000610de6602583610f78565b9150610df1826112e2565b604082019050919050565b610e058161101d565b82525050565b610e1481611027565b82525050565b6000602082019050610e2f6000830184610cbf565b92915050565b60006020820190508181036000830152610e4f8184610cce565b905092915050565b60006020820190508181036000830152610e7081610d07565b9050919050565b60006020820190508181036000830152610e9081610d2a565b9050919050565b60006020820190508181036000830152610eb081610d4d565b9050919050565b60006020820190508181036000830152610ed081610d70565b9050919050565b60006020820190508181036000830152610ef081610d93565b9050919050565b60006020820190508181036000830152610f1081610db6565b9050919050565b60006020820190508181036000830152610f3081610dd9565b9050919050565b6000602082019050610f4c6000830184610dfc565b92915050565b6000602082019050610f676000830184610e0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610f948261101d565b9150610f9f8361101d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610fd457610fd3611099565b5b828201905092915050565b6000610fea82610ffd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611052578082015181840152602081019050611037565b83811115611061576000848401525b50505050565b6000600282049050600182168061107f57607f821691505b60208210811415611093576110926110c8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61133a81610fdf565b811461134557600080fd5b50565b6113518161101d565b811461135c57600080fd5b5056fea26469706673582212209174d977515c6e02f3382f9e58ca0873dbf0b8048957e4606ef73443f672de3864736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.TestERC20__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthInputDataInfoRetriever=void 0;const n=r(15),i=r(587);t.EthInputDataInfoRetriever=class{constructor(e,t,r,n,i){this.toAddress=e,this.eventName=t,this.network=r,this.paymentReference=n,this.explorerApiKey=i}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if("private"===this.network)throw new Error("ETH input data info-retriever works with etherscan and cannot work on a local network");const e=new i.MultichainExplorerApiProvider(this.network,this.explorerApiKey),t=yield e.getHistory(this.toAddress);return t.filter(((e,r)=>t.findIndex((t=>t.hash===e.hash))===r)).filter((e=>e.to&&e.to.toLowerCase()===this.toAddress.toLowerCase())).filter((e=>e.data.toLowerCase()==="0x"+this.paymentReference.toLowerCase())).map((e=>({amount:e.value.toString(),name:this.eventName,parameters:{block:e.blockNumber,confirmations:e.confirmations,txHash:e.hash},timestamp:e.timestamp})))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MultichainExplorerApiProvider=void 0;const n=r(6),i={sokol:{chainId:77,name:"sokol"},fuse:{chainId:122,name:"fuse"},celo:{chainId:42220,name:"celo"},fantom:{chainId:250,name:"fantom"}};class f extends n.ethers.providers.EtherscanProvider{constructor(e,t){"string"==typeof e&&i[e]&&(e=i[e]),t||"mainnet"!==e&&"rinkeby"!==e||(t="TCVQQU5V39TAS1V6HF61P9K7IJZVEHH1D9"),super(e,t)}getBaseUrl(){switch(this.network.name){case"sokol":case"xdai":return`https://blockscout.com/poa/${this.network.name}`;case"fuse":return"https://explorer.fuse.io";case"celo":return"https://explorer.celo.org";case"matic":return"https://api.polygonscan.com";case"fantom":return"https://api.ftmscan.com";case"bsctest":return"https://api-testnet.bscscan.com/";case"bsc":return"https://api.bscscan.com/";case"aurora":return"https://explorer.mainnet.near.org";case"aurora-testnet":return"https://explorer.testnet.near.org";default:return super.getBaseUrl()}}}t.MultichainExplorerApiProvider=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToErc20InfoRetriever=void 0;const n=r(227);class i extends n.ConversionInfoRetriever{getFeeFilter(){const e=this.contractConversionProxy.filters.TransferWithReferenceAndFee(null,null,null,"0x"+this.paymentReference);return e.fromBlock=this.conversionProxyCreationBlockNumber,e.toBlock="latest",e}}t.AnyToErc20InfoRetriever=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TheGraphAnyToErc20Retriever=void 0;const n=r(15),i=r(6),f=r(37);t.TheGraphAnyToErc20Retriever=class{constructor(e,t,r,n,i,o,a,s=0){this.requestCurrency=e,this.paymentReference=t,this.conversionProxyContractAddress=r,this.toAddress=n,this.eventName=i,this.network=o,this.acceptedTokens=a,this.maxRateTimespan=s,this.client=(0,f.getTheGraphClient)(this.network),this.acceptedTokens=null==a?void 0:a.map((e=>e.toLowerCase()))}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const e={contractAddress:this.conversionProxyContractAddress,reference:i.utils.keccak256(`0x${this.paymentReference}`),to:this.toAddress,acceptedTokens:this.acceptedTokens,maxRateTimespan:this.maxRateTimespan};return(yield this.client.GetConversionPayments(e)).payments.map((e=>{var t;const r=8-this.requestCurrency.decimals,n=i.BigNumber.from(e.amount).div(Math.pow(10,r)).toString(),f=e.feeAmount?i.BigNumber.from(e.feeAmount).div(Math.pow(10,r)).toString():void 0;return{amount:n,name:this.eventName,parameters:{block:e.block,feeAddress:e.feeAddress?i.utils.getAddress(e.feeAddress):void 0,feeAmount:f,feeAmountInCrypto:e.feeAmountInCrypto||void 0,amountInCrypto:e.amountInCrypto,tokenAddress:i.utils.getAddress(e.tokenAddress),to:this.toAddress,txHash:e.txHash,maxRateTimespan:null===(t=e.maxRateTimespan)||void 0===t?void 0:t.toString()},timestamp:e.timestamp}}))}))}}},function(e,t,r){e.exports=r(230)},function(e,t,r){r(592),r(593),r(594),r(595),r(596),r(597),r(598)},function(e,t){Object.create||(Object.create=function(){function e(){}return function(t){if(1!=arguments.length)throw new Error("Object.create implementation only accepts one parameter.");return e.prototype=t,new e}}()),Object.keys||(Object.keys=function(){"use strict";var e=Object.prototype.hasOwnProperty,t=!{toString:null}.propertyIsEnumerable("toString"),r=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],n=r.length;return function(i){if("object"!=typeof i&&("function"!=typeof i||null===i))throw new TypeError("Object.keys called on non-object");var f,o,a=[];for(f in i)e.call(i,f)&&a.push(f);if(t)for(o=0;o<n;o++)e.call(i,r[o])&&a.push(r[o]);return a}}())},function(e,t){"function"!=typeof Array.prototype.reduce&&(Array.prototype.reduce=function(e){"use strict";var t,r,n,i;if(null==this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");if(t=(r=Object(this)).length>>>0,i=0,arguments.length>=2)n=arguments[1];else{for(;i<t&&!i in r;)i++;if(i>=t)throw new TypeError("Reduce of empty array with no initial value");n=r[i++]}for(;i<t;i++)i in r&&(n=e(n,r[i],i,r));return n}),"indexOf"in Array.prototype||(Array.prototype.indexOf=function(e,t){void 0===t&&(t=0),t<0&&(t+=this.length),t<0&&(t=0);for(var r=this.length;t<r;t++)if(t in this&&this[t]===e)return t;return-1}),"lastIndexOf"in Array.prototype||(Array.prototype.lastIndexOf=function(e,t){for(void 0===t&&(t=this.length-1),t<0&&(t+=this.length),t>this.length-1&&(t=this.length-1),t++;t-- >0;)if(t in this&&this[t]===e)return t;return-1}),"forEach"in Array.prototype||(Array.prototype.forEach=function(e,t){for(var r=0,n=this.length;r<n;r++)r in this&&e.call(t,this[r],r,this)}),"map"in Array.prototype||(Array.prototype.map=function(e,t){for(var r=new Array(this.length),n=0,i=this.length;n<i;n++)n in this&&(r[n]=e.call(t,this[n],n,this));return r}),"filter"in Array.prototype||(Array.prototype.filter=function(e,t){for(var r,n=[],i=0,f=this.length;i<f;i++)i in this&&e.call(t,r=this[i],i,this)&&n.push(r);return n}),"every"in Array.prototype||(Array.prototype.every=function(e,t){for(var r=0,n=this.length;r<n;r++)if(r in this&&!e.call(t,this[r],r,this))return!1;return!0}),"some"in Array.prototype||(Array.prototype.some=function(e,t){for(var r=0,n=this.length;r<n;r++)if(r in this&&e.call(t,this[r],r,this))return!0;return!1}),"function"!=typeof Array.prototype.reduceRight&&(Array.prototype.reduceRight=function(e){"use strict";if(null==this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,r=Object(this),n=r.length>>>0,i=n-1;if(arguments.length>=2)t=arguments[1];else{for(;i>=0&&!i in r;)i--;if(i<0)throw new TypeError("Reduce of empty array with no initial value");t=r[i--]}for(;i>=0;i--)i in r&&(t=e(t,r[i],i,r));return t})},function(e,t){"trim"in String.prototype||(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")})},function(e,t){Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,r=Array.prototype.slice.call(arguments,1);return function(){return t.apply(e,Array.prototype.concat.apply(r,arguments))}})},function(e,t){!function(e){var t;e||(e=window.console={log:function(e,t,r,n,i){},info:function(e,t,r,n,i){},warn:function(e,t,r,n,i){},error:function(e,t,r,n,i){},assert:function(e,t){}}),"object"==typeof e.log&&(e.log=Function.prototype.call.bind(e.log,e),e.info=Function.prototype.call.bind(e.info,e),e.warn=Function.prototype.call.bind(e.warn,e),e.error=Function.prototype.call.bind(e.error,e),e.debug=Function.prototype.call.bind(e.info,e)),"group"in e||(e.group=function(t){e.info("\n--- "+t+" ---\n")}),"groupEnd"in e||(e.groupEnd=function(){e.log("\n")}),"assert"in e||(e.assert=function(e,t){if(!e)try{throw new Error("assertion failed: "+t)}catch(e){setTimeout((function(){throw e}),0)}}),"time"in e||(t={},e.time=function(e){t[e]=(new Date).getTime()},e.timeEnd=function(r){var n=(new Date).getTime(),i=r in t?n-t[r]:0;e.info(r+": "+i+"ms")})}("undefined"!=typeof console?console:void 0)},function(e,t){"undefined"==typeof Uint8Array&&function(e,t){"use strict";var r=void 0;function n(e){switch(typeof e){case"undefined":return"undefined";case"boolean":return"boolean";case"number":return"number";case"string":return"string";default:return null===e?"null":"object"}}function i(e){return Object.prototype.toString.call(e).replace(/^\[object *|\]$/g,"")}function f(e){return"function"==typeof e}function o(e){if(null===e||e===r)throw TypeError();return Object(e)}function a(e){return e>>0}function s(e){return e>>>0}var c,u,l=Math.LN2,d=Math.abs,h=Math.floor,p=Math.log,b=Math.max,y=Math.min,m=Math.pow,g=Math.round;function v(e){if(e.length>1e5)throw RangeError("Array too large for polyfill");function t(t){Object.defineProperty(e,t,{get:function(){return e._getter(t)},set:function(r){e._setter(t,r)},enumerable:!0,configurable:!1})}var r;for(r=0;r<e.length;r+=1)t(r)}function _(e,t){var r=32-t;return e<<r>>r}function w(e,t){var r=32-t;return e<<r>>>r}function E(e){return[255&e]}function A(e){return _(e[0],8)}function S(e){return[255&e]}function T(e){return w(e[0],8)}function x(e){return[(e=g(Number(e)))<0?0:e>255?255:255&e]}function P(e){return[e>>8&255,255&e]}function R(e){return _(e[0]<<8|e[1],16)}function k(e){return[e>>8&255,255&e]}function C(e){return w(e[0]<<8|e[1],16)}function O(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}function M(e){return _(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function N(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}function I(e){return w(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function D(e,t,r){var n,i,f,o,a,s,c,u=(1<<t-1)-1;function b(e){var t=h(e),r=e-t;return r<.5?t:r>.5||t%2?t+1:t}for(e!=e?(i=(1<<t)-1,f=m(2,r-1),n=0):e===1/0||e===-1/0?(i=(1<<t)-1,f=0,n=e<0?1:0):0===e?(i=0,f=0,n=1/e==-1/0?1:0):(n=e<0,(e=d(e))>=m(2,1-u)?(i=y(h(p(e)/l),1023),(f=b(e/m(2,i)*m(2,r)))/m(2,r)>=2&&(i+=1,f=1),i>u?(i=(1<<t)-1,f=0):(i+=u,f-=m(2,r))):(i=0,f=b(e/m(2,1-u-r)))),a=[],o=r;o;o-=1)a.push(f%2?1:0),f=h(f/2);for(o=t;o;o-=1)a.push(i%2?1:0),i=h(i/2);for(a.push(n?1:0),a.reverse(),s=a.join(""),c=[];s.length;)c.push(parseInt(s.substring(0,8),2)),s=s.substring(8);return c}function B(e,t,r){var n,i,f,o,a,s,c,u,l=[];for(n=e.length;n;n-=1)for(f=e[n-1],i=8;i;i-=1)l.push(f%2?1:0),f>>=1;return l.reverse(),o=l.join(""),a=(1<<t-1)-1,s=parseInt(o.substring(0,1),2)?-1:1,c=parseInt(o.substring(1,1+t),2),u=parseInt(o.substring(1+t),2),c===(1<<t)-1?0!==u?NaN:s*(1/0):c>0?s*m(2,c-a)*(1+u/m(2,r)):0!==u?s*m(2,-(a-1))*(u/m(2,r)):s<0?-0:0}function F(e){return B(e,11,52)}function j(e){return D(e,11,52)}function L(e){return B(e,8,23)}function U(e){return D(e,8,23)}c=Object.defineProperty,u=!function(){try{return Object.defineProperty({},"x",{})}catch(e){return!1}}(),c&&!u||(Object.defineProperty=function(e,t,r){if(c)try{return c(e,t,r)}catch(e){}if(e!==Object(e))throw TypeError("Object.defineProperty called on non-object");return Object.prototype.__defineGetter__&&"get"in r&&Object.prototype.__defineGetter__.call(e,t,r.get),Object.prototype.__defineSetter__&&"set"in r&&Object.prototype.__defineSetter__.call(e,t,r.set),"value"in r&&(e[t]=r.value),e}),function(){function c(e){if((e=a(e))<0)throw RangeError("ArrayBuffer size is not a small enough positive integer.");Object.defineProperty(this,"byteLength",{value:e}),Object.defineProperty(this,"_bytes",{value:Array(e)});for(var t=0;t<e;t+=1)this._bytes[t]=0}function u(){if(!arguments.length||"object"!=typeof arguments[0])return function(e){if((e=a(e))<0)throw RangeError("length is not a small enough positive integer.");Object.defineProperty(this,"length",{value:e}),Object.defineProperty(this,"byteLength",{value:e*this.BYTES_PER_ELEMENT}),Object.defineProperty(this,"buffer",{value:new c(this.byteLength)}),Object.defineProperty(this,"byteOffset",{value:0})}.apply(this,arguments);if(arguments.length>=1&&"object"===n(arguments[0])&&arguments[0]instanceof u)return function(e){if(this.constructor!==e.constructor)throw TypeError();var t=e.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new c(t)}),Object.defineProperty(this,"byteLength",{value:t}),Object.defineProperty(this,"byteOffset",{value:0}),Object.defineProperty(this,"length",{value:e.length});for(var r=0;r<this.length;r+=1)this._setter(r,e._getter(r))}.apply(this,arguments);if(arguments.length>=1&&"object"===n(arguments[0])&&!(arguments[0]instanceof u)&&!(arguments[0]instanceof c||"ArrayBuffer"===i(arguments[0])))return function(e){var t=e.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new c(t)}),Object.defineProperty(this,"byteLength",{value:t}),Object.defineProperty(this,"byteOffset",{value:0}),Object.defineProperty(this,"length",{value:e.length});for(var r=0;r<this.length;r+=1){var n=e[r];this._setter(r,Number(n))}}.apply(this,arguments);if(arguments.length>=1&&"object"===n(arguments[0])&&(arguments[0]instanceof c||"ArrayBuffer"===i(arguments[0])))return function(e,t,n){if((t=s(t))>e.byteLength)throw RangeError("byteOffset out of range");if(t%this.BYTES_PER_ELEMENT)throw RangeError("buffer length minus the byteOffset is not a multiple of the element size.");if(n===r){var i=e.byteLength-t;if(i%this.BYTES_PER_ELEMENT)throw RangeError("length of buffer minus byteOffset not a multiple of the element size");n=i/this.BYTES_PER_ELEMENT}else i=(n=s(n))*this.BYTES_PER_ELEMENT;if(t+i>e.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:e}),Object.defineProperty(this,"byteLength",{value:i}),Object.defineProperty(this,"byteOffset",{value:t}),Object.defineProperty(this,"length",{value:n})}.apply(this,arguments);throw TypeError()}e.ArrayBuffer=e.ArrayBuffer||c,Object.defineProperty(u,"from",{value:function(e){return new this(e)}}),Object.defineProperty(u,"of",{value:function(){return new this(arguments)}});var l={};function p(e,t,r){var n=function(){Object.defineProperty(this,"constructor",{value:n}),u.apply(this,arguments),v(this)};"__proto__"in n?n.__proto__=u:(n.from=u.from,n.of=u.of),n.BYTES_PER_ELEMENT=e;var i=function(){};return i.prototype=l,n.prototype=new i,Object.defineProperty(n.prototype,"BYTES_PER_ELEMENT",{value:e}),Object.defineProperty(n.prototype,"_pack",{value:t}),Object.defineProperty(n.prototype,"_unpack",{value:r}),n}u.prototype=l,Object.defineProperty(u.prototype,"_getter",{value:function(e){if(arguments.length<1)throw SyntaxError("Not enough arguments");if((e=s(e))>=this.length)return r;var t,n,i=[];for(t=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;t<this.BYTES_PER_ELEMENT;t+=1,n+=1)i.push(this.buffer._bytes[n]);return this._unpack(i)}}),Object.defineProperty(u.prototype,"get",{value:u.prototype._getter}),Object.defineProperty(u.prototype,"_setter",{value:function(e,t){if(arguments.length<2)throw SyntaxError("Not enough arguments");if(!((e=s(e))>=this.length)){var r,n,i=this._pack(t);for(r=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;r<this.BYTES_PER_ELEMENT;r+=1,n+=1)this.buffer._bytes[n]=i[r]}}}),Object.defineProperty(u.prototype,"constructor",{value:u}),Object.defineProperty(u.prototype,"copyWithin",{value:function(e,t){var n=arguments[2],i=o(this),f=i.length,c=s(f);c=b(c,0);var u,l=a(e);u=l<0?b(c+l,0):y(l,c);var d,h,p,m=a(t);d=m<0?b(c+m,0):y(m,c),p=(h=n===r?c:a(n))<0?b(c+h,0):y(h,c);var g,v=y(p-d,c-u);for(from<u&&u<d+v?(g=-1,d=d+v-1,u=u+v-1):g=1;count>0;)i._setter(u,i._getter(d)),d+=g,u+=g,v-=1;return i}}),Object.defineProperty(u.prototype,"every",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=arguments[1],o=0;o<n;o++)if(!e.call(i,t._getter(o),o,t))return!1;return!0}}),Object.defineProperty(u.prototype,"fill",{value:function(e){var t=arguments[1],n=arguments[2],i=o(this),f=i.length,c=s(f);c=b(c,0);var u,l,d,h=a(t);for(u=h<0?b(c+h,0):y(h,c),d=(l=n===r?c:a(n))<0?b(c+l,0):y(l,c);u<d;)i._setter(u,e),u+=1;return i}}),Object.defineProperty(u.prototype,"filter",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=[],o=arguments[1],a=0;a<n;a++){var c=t._getter(a);e.call(o,c,a,t)&&i.push(c)}return new this.constructor(i)}}),Object.defineProperty(u.prototype,"find",{value:function(e){var t=o(this),n=t.length,i=s(n);if(!f(e))throw TypeError();for(var a=arguments.length>1?arguments[1]:r,c=0;c<i;){var u=t._getter(c),l=e.call(a,u,c,t);if(Boolean(l))return u;++c}return r}}),Object.defineProperty(u.prototype,"findIndex",{value:function(e){var t=o(this),n=t.length,i=s(n);if(!f(e))throw TypeError();for(var a=arguments.length>1?arguments[1]:r,c=0;c<i;){var u=t._getter(c),l=e.call(a,u,c,t);if(Boolean(l))return c;++c}return-1}}),Object.defineProperty(u.prototype,"forEach",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=arguments[1],o=0;o<n;o++)e.call(i,t._getter(o),o,t)}}),Object.defineProperty(u.prototype,"indexOf",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(0===n)return-1;var i,f=0;if(arguments.length>0&&((i=Number(arguments[1]))!==f?f=0:0!==i&&i!==1/0&&i!==-1/0&&(f=(i>0||-1)*h(d(i)))),f>=n)return-1;for(var o=f>=0?f:b(n-d(f),0);o<n;o++)if(t._getter(o)===e)return o;return-1}}),Object.defineProperty(u.prototype,"join",{value:function(e){if(this===r||null===this)throw TypeError();for(var t=Object(this),n=s(t.length),i=Array(n),f=0;f<n;++f)i[f]=t._getter(f);return i.join(e===r?",":e)}}),Object.defineProperty(u.prototype,"lastIndexOf",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(0===n)return-1;var i=n;arguments.length>1&&((i=Number(arguments[1]))!=i?i=0:0!==i&&i!==1/0&&i!==-1/0&&(i=(i>0||-1)*h(d(i))));for(var f=i>=0?y(i,n-1):n-d(i);f>=0;f--)if(t._getter(f)===e)return f;return-1}}),Object.defineProperty(u.prototype,"map",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();var i=[];i.length=n;for(var o=arguments[1],a=0;a<n;a++)i[a]=e.call(o,t._getter(a),a,t);return new this.constructor(i)}}),Object.defineProperty(u.prototype,"reduce",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();if(0===n&&1===arguments.length)throw TypeError();var i,o=0;for(i=arguments.length>=2?arguments[1]:t._getter(o++);o<n;)i=e.call(r,i,t._getter(o),o,t),o++;return i}}),Object.defineProperty(u.prototype,"reduceRight",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();if(0===n&&1===arguments.length)throw TypeError();var i,o=n-1;for(i=arguments.length>=2?arguments[1]:t._getter(o--);o>=0;)i=e.call(r,i,t._getter(o),o,t),o--;return i}}),Object.defineProperty(u.prototype,"reverse",{value:function(){if(this===r||null===this)throw TypeError();for(var e=Object(this),t=s(e.length),n=h(t/2),i=0,f=t-1;i<n;++i,--f){var o=e._getter(i);e._setter(i,e._getter(f)),e._setter(f,o)}return e}}),Object.defineProperty(u.prototype,"set",{value:function(e,t){if(arguments.length<1)throw SyntaxError("Not enough arguments");var r,n,i,f,o,a,c,u,l,d;if("object"==typeof arguments[0]&&arguments[0].constructor===this.constructor){if(r=arguments[0],(i=s(arguments[1]))+r.length>this.length)throw RangeError("Offset plus length of array is out of range");if(u=this.byteOffset+i*this.BYTES_PER_ELEMENT,l=r.length*this.BYTES_PER_ELEMENT,r.buffer===this.buffer){for(d=[],o=0,a=r.byteOffset;o<l;o+=1,a+=1)d[o]=r.buffer._bytes[a];for(o=0,c=u;o<l;o+=1,c+=1)this.buffer._bytes[c]=d[o]}else for(o=0,a=r.byteOffset,c=u;o<l;o+=1,a+=1,c+=1)this.buffer._bytes[c]=r.buffer._bytes[a]}else{if("object"!=typeof arguments[0]||void 0===arguments[0].length)throw TypeError("Unexpected argument type(s)");if(f=s((n=arguments[0]).length),(i=s(arguments[1]))+f>this.length)throw RangeError("Offset plus length of array is out of range");for(o=0;o<f;o+=1)a=n[o],this._setter(i+o,Number(a))}}}),Object.defineProperty(u.prototype,"slice",{value:function(e,t){for(var n=o(this),i=s(n.length),f=a(e),c=f<0?b(i+f,0):y(f,i),u=t===r?i:a(t),l=u<0?b(i+u,0):y(u,i),d=l-c,h=new(0,n.constructor)(d),p=0;c<l;){var m=n._getter(c);h._setter(p,m),++c,++p}return h}}),Object.defineProperty(u.prototype,"some",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=arguments[1],o=0;o<n;o++)if(e.call(i,t._getter(o),o,t))return!0;return!1}}),Object.defineProperty(u.prototype,"sort",{value:function(e){if(this===r||null===this)throw TypeError();for(var t=Object(this),n=s(t.length),i=Array(n),f=0;f<n;++f)i[f]=t._getter(f);for(e?i.sort(e):i.sort(),f=0;f<n;++f)t._setter(f,i[f]);return t}}),Object.defineProperty(u.prototype,"subarray",{value:function(e,t){function r(e,t,r){return e<t?t:e>r?r:e}e=a(e),t=a(t),arguments.length<1&&(e=0),arguments.length<2&&(t=this.length),e<0&&(e=this.length+e),t<0&&(t=this.length+t),e=r(e,0,this.length);var n=(t=r(t,0,this.length))-e;return n<0&&(n=0),new this.constructor(this.buffer,this.byteOffset+e*this.BYTES_PER_ELEMENT,n)}});var m=p(1,E,A),g=p(1,S,T),_=p(1,x,T),w=p(2,P,R),D=p(2,k,C),B=p(4,O,M),q=p(4,N,I),z=p(4,U,L),H=p(8,j,F);e.Int8Array=t.Int8Array=e.Int8Array||m,e.Uint8Array=t.Uint8Array=e.Uint8Array||g,e.Uint8ClampedArray=t.Uint8ClampedArray=e.Uint8ClampedArray||_,e.Int16Array=t.Int16Array=e.Int16Array||w,e.Uint16Array=t.Uint16Array=e.Uint16Array||D,e.Int32Array=t.Int32Array=e.Int32Array||B,e.Uint32Array=t.Uint32Array=e.Uint32Array||q,e.Float32Array=t.Float32Array=e.Float32Array||z,e.Float64Array=t.Float64Array=e.Float64Array||H}(),function(){function t(e,t){return f(e.get)?e.get(t):e[t]}var n,o=(n=new e.Uint16Array([4660]),18===t(new e.Uint8Array(n.buffer),0));function a(e,t,n){if(!(e instanceof ArrayBuffer||"ArrayBuffer"===i(e)))throw TypeError();if((t=s(t))>e.byteLength)throw RangeError("byteOffset out of range");if(t+(n=n===r?e.byteLength-t:s(n))>e.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:e}),Object.defineProperty(this,"byteLength",{value:n}),Object.defineProperty(this,"byteOffset",{value:t})}function c(r){return function(n,i){if((n=s(n))+r.BYTES_PER_ELEMENT>this.byteLength)throw RangeError("Array index out of range");n+=this.byteOffset;for(var f=new e.Uint8Array(this.buffer,n,r.BYTES_PER_ELEMENT),a=[],c=0;c<r.BYTES_PER_ELEMENT;c+=1)a.push(t(f,c));return Boolean(i)===Boolean(o)&&a.reverse(),t(new r(new e.Uint8Array(a).buffer),0)}}function u(r){return function(n,i,f){if((n=s(n))+r.BYTES_PER_ELEMENT>this.byteLength)throw RangeError("Array index out of range");var a,c=new r([i]),u=new e.Uint8Array(c.buffer),l=[];for(a=0;a<r.BYTES_PER_ELEMENT;a+=1)l.push(t(u,a));Boolean(f)===Boolean(o)&&l.reverse(),new Uint8Array(this.buffer,n,r.BYTES_PER_ELEMENT).set(l)}}Object.defineProperty(a.prototype,"getUint8",{value:c(e.Uint8Array)}),Object.defineProperty(a.prototype,"getInt8",{value:c(e.Int8Array)}),Object.defineProperty(a.prototype,"getUint16",{value:c(e.Uint16Array)}),Object.defineProperty(a.prototype,"getInt16",{value:c(e.Int16Array)}),Object.defineProperty(a.prototype,"getUint32",{value:c(e.Uint32Array)}),Object.defineProperty(a.prototype,"getInt32",{value:c(e.Int32Array)}),Object.defineProperty(a.prototype,"getFloat32",{value:c(e.Float32Array)}),Object.defineProperty(a.prototype,"getFloat64",{value:c(e.Float64Array)}),Object.defineProperty(a.prototype,"setUint8",{value:u(e.Uint8Array)}),Object.defineProperty(a.prototype,"setInt8",{value:u(e.Int8Array)}),Object.defineProperty(a.prototype,"setUint16",{value:u(e.Uint16Array)}),Object.defineProperty(a.prototype,"setInt16",{value:u(e.Int16Array)}),Object.defineProperty(a.prototype,"setUint32",{value:u(e.Uint32Array)}),Object.defineProperty(a.prototype,"setInt32",{value:u(e.Int32Array)}),Object.defineProperty(a.prototype,"setFloat32",{value:u(e.Float32Array)}),Object.defineProperty(a.prototype,"setFloat64",{value:u(e.Float64Array)}),e.DataView=e.DataView||a}()}(t,window),"undefined"!=typeof window&&("Uint8ClampedArray"in window||(window.Uint8ClampedArray=window.Uint8Array))},function(module,exports){"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(e){return e<10?"0"+e:e}var cx,escapable,gap,indent,meta,rep;function quote(e){return escapable.lastIndex=0,escapable.test(e)?'"'+e.replace(escapable,(function(e){var t=meta[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))+'"':'"'+e+'"'}function str(e,t){var r,n,i,f,o,a=gap,s=t[e];switch(s&&"object"==typeof s&&"function"==typeof s.toJSON&&(s=s.toJSON(e)),"function"==typeof rep&&(s=rep.call(t,e,s)),typeof s){case"string":return quote(s);case"number":return isFinite(s)?String(s):"null";case"boolean":case"null":return String(s);case"object":if(!s)return"null";if(gap+=indent,o=[],"[object Array]"===Object.prototype.toString.apply(s)){for(f=s.length,r=0;r<f;r+=1)o[r]=str(r,s)||"null";return i=0===o.length?"[]":gap?"[\n"+gap+o.join(",\n"+gap)+"\n"+a+"]":"["+o.join(",")+"]",gap=a,i}if(rep&&"object"==typeof rep)for(f=rep.length,r=0;r<f;r+=1)"string"==typeof rep[r]&&(i=str(n=rep[r],s))&&o.push(quote(n)+(gap?": ":":")+i);else for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(i=str(n,s))&&o.push(quote(n)+(gap?": ":":")+i);return i=0===o.length?"{}":gap?"{\n"+gap+o.join(",\n"+gap)+"\n"+a+"}":"{"+o.join(",")+"}",gap=a,i}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}),"function"!=typeof JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(e,t,r){var n;if(gap="",indent="","number"==typeof r)for(n=0;n<r;n+=1)indent+=" ";else"string"==typeof r&&(indent=r);if(rep=t,t&&"function"!=typeof t&&("object"!=typeof t||"number"!=typeof t.length))throw new Error("JSON.stringify");return str("",{"":e})}),"function"!=typeof JSON.parse&&(cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(text,reviver){var j;function walk(e,t){var r,n,i=e[t];if(i&&"object"==typeof i)for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(void 0!==(n=walk(i,r))?i[r]=n:delete i[r]);return reviver.call(e,t,i)}if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,(function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),exports.JSON=JSON},function(e){e.exports=JSON.parse('{"name":"autobahn","version":"20.9.2","description":"An implementation of The Web Application Messaging Protocol (WAMP).","main":"index.js","files":["index.js","/lib"],"scripts":{"test":"nodeunit test/test.js"},"engines":{"node":">= 7.10.1"},"dependencies":{"cbor":">= 3.0.0","crypto-js":">=3.1.8","msgpack5":">= 3.6.0","tweetnacl":">= 0.14.3","ws":">= 1.1.4"},"optionalDependencies":{"bufferutil":">= 1.2.1","utf-8-validate":">= 1.2.1","when":">= 3.7.7"},"devDependencies":{"browserify":">= 13.1.1","deep-equal":">= 1.0.1","google-closure-compiler":">= 20170218.0.0","nodeunit":">= 0.11.3","random-bytes-seed":">=1.0.3"},"browser":{"cbor":false,"ws":false,"./lib/transport/rawsocket.js":false},"repository":{"type":"git","url":"git://github.com/crossbario/autobahn-js.git"},"keywords":["WAMP","WebSocket","RPC","PubSub","ethereum","solidity","xbr","crossbar","autobahn","wamp","data-service","data-monetization"],"author":"Crossbar.io Technologies GmbH","license":"MIT"}')},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(88),n=r(232);function i(e,r,n,i){return t.setTimer((function(){e(n,i,r)}),r)}return function(e){function r(e,t,r){i(f,e,t,r)}function f(e,t){t.resolve(e)}function o(e,t,r){var i=void 0===e?new n("timed out after "+r+"ms"):e;t.reject(i)}return e.prototype.delay=function(e){var t=this._beget();return this._handler.fold(r,e,void 0,t._handler),t},e.prototype.timeout=function(e,r){var n=this._beget(),f=n._handler,a=i(o,e,r,n._handler);return this._handler.visit(f,(function(e){t.clearTimer(a),this.resolve(e)}),(function(e){t.clearTimer(a),this.reject(e)}),f.notify),n},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t){},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(233),n=r(234);return function(e){var r=n(e),i=e.resolve,f=e.all,o=Array.prototype.reduce,a=Array.prototype.reduceRight,s=Array.prototype.slice;return e.any=function(t){for(var r,n,i=e._defer(),f=i._handler,o=t.length>>>0,a=o,s=[],c=0;c<o;++c)if(void 0!==(n=t[c])||c in t){if((r=e._handler(n)).state()>0){f.become(r),e._visitRemaining(t,c,r);break}r.visit(f,u,l)}else--a;0===a&&f.reject(new RangeError("any(): array must not be empty"));return i;function u(e){s=null,this.resolve(e)}function l(e){this.resolved||(s.push(e),0==--a&&this.reject(s))}},e.some=function(t,r){var n,i,f,o=e._defer(),a=o._handler,s=[],c=[],u=t.length>>>0,l=0;for(f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&++l;r=Math.max(r,0),n=l-r+1,l=Math.min(r,l),r>l?a.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+l)):0===l&&a.resolve(s);for(f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&e._handler(i).visit(a,d,h,a.notify);return o;function d(e){this.resolved||(s.push(e),0==--l&&(c=null,this.resolve(s)))}function h(e){this.resolved||(c.push(e),0==--n&&(s=null,this.reject(c)))}},e.settle=function(e){return f(e.map(c))},e.map=function(t,r){return e._traverse(r,t)},e.filter=function(t,r){var n=s.call(t);return e._traverse(r,n).then((function(t){return function(t,r){for(var n=r.length,i=new Array(n),f=0,o=0;f<n;++f)r[f]&&(i[o++]=e._handler(t[f]).value);return i.length=o,i}(n,t)}))},e.reduce=function(e,t){return arguments.length>2?o.call(e,u(t),arguments[2]):o.call(e,u(t))},e.reduceRight=function(e,t){return arguments.length>2?a.call(e,u(t),arguments[2]):a.call(e,u(t))},e.prototype.spread=function(e){return this.then(f).then((function(t){return e.apply(this,t)}))},e;function c(r){var n;return r instanceof e&&(n=r._handler.join()),n&&0===n.state()||!n?i(r).then(t.fulfilled,t.rejected):(n._unreport(),t.inspect(n))}function u(e){return function(t,n,i){return r(e,void 0,[t,n,i])}}}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(r){var n=r.resolve,i=r.reject,f=r.prototype.catch;function o(e,t){return function(r){return function(e,t){return function(e){return e===Error||null!=e&&e.prototype instanceof Error}(t)?e instanceof t:t(e)}(r,t)?e.call(this,r):i(r)}}function a(e,t,r,i){var f,o=e.call(t);return"object"!=typeof(f=o)&&"function"!=typeof f||null===f?r(i):function(e,t,r){return n(e).then((function(){return t(r)}))}(o,r,i)}return r.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},r.prototype.catch=r.prototype.otherwise=function(t){return arguments.length<2?f.call(this,t):"function"!=typeof t?this.ensure(e):f.call(this,o(arguments[1],t))},r.prototype.finally=r.prototype.ensure=function(e){return"function"!=typeof e?this:this.then((function(r){return a(e,this,t,r)}),(function(t){return a(e,this,i,t)}))},r.prototype.else=r.prototype.orElse=function(e){return this.then(void 0,(function(){return e}))},r.prototype.yield=function(e){return this.then((function(){return e}))},r.prototype.tap=function(e){return this.then(e).yield(this)},r};function e(){throw new TypeError("catch predicate must be a function")}function t(e){return e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){return e.prototype.fold=function(t,r){var n=this._beget();return this._handler.fold((function(r,n,i){e._handler(r).fold((function(e,r,n){n.resolve(t.call(this,r,e))}),n,this,i)}),r,n._handler.receiver,n._handler),n},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(233).inspect;return function(e){return e.prototype.inspect=function(){return t(e._handler(this))},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){var t=e.resolve;return e.iterate=function(e,t,n,i){return r((function(t){return[t,e(t)]}),t,n,i)},e.unfold=r,e;function r(e,n,i,f){return t(f).then((function(r){return t(n(r)).then((function(n){return n?r:t(e(r)).spread(o)}))}));function o(f,o){return t(i(f)).then((function(){return r(e,n,i,o)}))}}}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){return e.prototype.progress=function(e){return this.then(void 0,void 0,e)},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){return e.prototype.with=e.prototype.withThis=function(e){var t=this._beget(),r=t._handler;return r.receiver=e,this._handler.chain(r,e),t},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(88).setTimer,n=r(610);return function(e){var r,o=f,a=f;"undefined"!=typeof console&&(r=console,o=void 0!==r.error?function(e){r.error(e)}:function(e){r.log(e)},a=void 0!==r.info?function(e){r.info(e)}:function(e){r.log(e)}),e.onPotentiallyUnhandledRejection=function(e){h(l,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){h(d,e)},e.onFatalRejection=function(e){h(i,e.value)};var s=[],c=[],u=null;function l(e){e.handled||(c.push(e),o("Potentially unhandled rejection ["+e.id+"] "+n.formatError(e.value)))}function d(e){var t=c.indexOf(e);t>=0&&(c.splice(t,1),a("Handled previous rejection ["+e.id+"] "+n.formatObject(e.value)))}function h(e,r){s.push(e,r),null===u&&(u=t(p,0))}function p(){for(u=null;s.length>0;)s.shift()(s.shift())}return e};function i(e){throw e}function f(){}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return{formatError:function(t){var r="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?r:r+" (WARNING: non-Error used)"},formatObject:e,tryStringify:t};function e(e){var r=String(e);return"[object Object]"===r&&"undefined"!=typeof JSON&&(r=t(e,r)),r}function t(e,t){try{return JSON.stringify(e)}catch(e){return t}}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){return r(612)({scheduler:new(r(613))(r(88).asap)})}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){(function(n){var i;!function(f){"use strict";void 0===(i=function(){return function(e){var t=e.scheduler,r=function(){if(null!=n&&"function"==typeof n.emit)return function(e,t){return"unhandledRejection"===e?n.emit(e,t.value,t):n.emit(e,t)};if("undefined"!=typeof self&&function(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(e){}return!1}())return function(e,t){return function(r,n){var i=new t(r,{detail:{reason:n.value,key:n},bubbles:!1,cancelable:!0});return!e.dispatchEvent(i)}}(self,CustomEvent);if("undefined"!=typeof self&&function(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}())return function(e,t){return function(r,n){var i=t.createEvent("CustomEvent");return i.initCustomEvent(r,!1,!0,{reason:n.value,key:n}),!e.dispatchEvent(i)}}(self,document);return L}(),i=Object.create||function(e){function t(){}return t.prototype=e,new t};function f(e,t){this._handler=e===b?t:function(e){var t=new g;try{e(r,n,i)}catch(e){n(e)}return t;function r(e){t.resolve(e)}function n(e){t.reject(e)}function i(e){t.notify(e)}}(e)}function o(e){return M(e)?e:new f(b,new v(h(e)))}function a(e){return new f(b,new v(new A(e)))}function s(){return P}function c(e,t,r){for(var n,i="function"==typeof t?function(n,i,f){f.resolved||u(r,l,n,e(t,i,n),f)}:l,o=new g,a=r.length>>>0,s=new Array(a),c=0;c<r.length&&!o.resolved;++c)void 0!==(n=r[c])||c in r?u(r,i,c,n,o):--a;return 0===a&&o.become(new w(s)),new f(b,o);function l(e,t,r){s[e]=t,0==--a&&r.become(new w(s))}}function u(e,t,r,n,i){if(N(n)){var f=function(e){return M(e)?e._handler.join():p(e)}(n),o=f.state();0===o?f.fold(t,r,void 0,i):o>0?t(r,f.value,i):(i.become(f),l(e,r+1,f))}else t(r,n,i)}function l(e,t,r){for(var n=t;n<e.length;++n)d(h(e[n]),r)}function d(e,t){if(e!==t){var r=e.state();0===r?e.visit(e,void 0,e._unreport):r<0&&e._unreport()}}function h(e){return M(e)?e._handler.join():N(e)?p(e):new w(e)}function p(e){try{var t=e.then;return"function"==typeof t?new _(t,e):new w(e)}catch(e){return new A(e)}}function b(){}function y(){}f.resolve=o,f.reject=a,f.never=s,f._defer=function(){return new f(b,new g)},f._handler=h,f.prototype.then=function(e,t,r){var n=this._handler,i=n.join().state();if("function"!=typeof e&&i>0||"function"!=typeof t&&i<0)return new this.constructor(b,n);var f=this._beget(),o=f._handler;return n.chain(o,n.receiver,e,t,r),f},f.prototype.catch=function(e){return this.then(void 0,e)},f.prototype._beget=function(){return function(e,t){var r=new g(e.receiver,e.join().context);return new t(b,r)}(this._handler,this.constructor)},f.all=function(e){return c(j,null,e)},f.race=function(e){if("object"!=typeof e||null===e)return a(new TypeError("non-iterable passed to race()"));return 0===e.length?s():1===e.length?o(e[0]):function(e){var t,r,n,i=new g;for(t=0;t<e.length;++t)if(void 0!==(r=e[t])||t in e){if(0!==(n=h(r)).state()){i.become(n),l(e,t+1,n);break}n.visit(i,i.resolve,i.reject)}return new f(b,i)}(e)},f._traverse=function(e,t){return c(B,e,t)},f._visitRemaining=l,b.prototype.when=b.prototype.become=b.prototype.notify=b.prototype.fail=b.prototype._unreport=b.prototype._report=L,b.prototype._state=0,b.prototype.state=function(){return this._state},b.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},b.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},b.prototype.visit=function(e,t,r,n){this.chain(m,e,t,r,n)},b.prototype.fold=function(e,t,r,n){this.when(new O(e,t,r,n))},F(b,y),y.prototype.become=function(e){e.fail()};var m=new y;function g(e,t){f.createContext(this,t),this.consumers=void 0,this.receiver=e,this.handler=void 0,this.resolved=!1}function v(e){this.handler=e}function _(e,r){g.call(this),t.enqueue(new C(e,r,this))}function w(e){f.createContext(this),this.value=e}F(b,g),g.prototype._state=0,g.prototype.resolve=function(e){this.become(h(e))},g.prototype.reject=function(e){this.resolved||this.become(new A(e))},g.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=new A(new TypeError("Promise cycle"));return e},g.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r<e.length;++r)t.when(e[r])},g.prototype.become=function(e){this.resolved||(this.resolved=!0,this.handler=e,void 0!==this.consumers&&t.enqueue(this),void 0!==this.context&&e._report(this.context))},g.prototype.when=function(e){this.resolved?t.enqueue(new R(e,this.handler)):void 0===this.consumers?this.consumers=[e]:this.consumers.push(e)},g.prototype.notify=function(e){this.resolved||t.enqueue(new k(e,this))},g.prototype.fail=function(e){var t=void 0===e?this.context:e;this.resolved&&this.handler.join().fail(t)},g.prototype._report=function(e){this.resolved&&this.handler.join()._report(e)},g.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},F(b,v),v.prototype.when=function(e){t.enqueue(new R(e,this))},v.prototype._report=function(e){this.join()._report(e)},v.prototype._unreport=function(){this.join()._unreport()},F(g,_),F(b,w),w.prototype._state=1,w.prototype.fold=function(e,t,r,n){!function(e,t,r,n,i){if("function"!=typeof e)return i.become(r);f.enterContext(r),function(e,t,r,n,i){try{e.call(n,t,r,i)}catch(e){i.become(new A(e))}}(e,t,r.value,n,i),f.exitContext()}(e,t,this,r,n)},w.prototype.when=function(e){I(e.fulfilled,this,e.receiver,e.resolver)};var E=0;function A(e){f.createContext(this),this.id=++E,this.value=e,this.handled=!1,this.reported=!1,this._report()}function S(e,t){this.rejection=e,this.context=t}function T(e){this.rejection=e}F(b,A),A.prototype._state=-1,A.prototype.fold=function(e,t,r,n){n.become(this)},A.prototype.when=function(e){"function"==typeof e.rejected&&this._unreport(),I(e.rejected,this,e.receiver,e.resolver)},A.prototype._report=function(e){t.afterQueue(new S(this,e))},A.prototype._unreport=function(){this.handled||(this.handled=!0,t.afterQueue(new T(this)))},A.prototype.fail=function(e){this.reported=!0,r("unhandledRejection",this),f.onFatalRejection(this,void 0===e?this.context:e)},S.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,r("unhandledRejection",this.rejection)||f.onPotentiallyUnhandledRejection(this.rejection,this.context))},T.prototype.run=function(){this.rejection.reported&&(r("rejectionHandled",this.rejection)||f.onPotentiallyUnhandledRejectionHandled(this.rejection))},f.createContext=f.enterContext=f.exitContext=f.onPotentiallyUnhandledRejection=f.onPotentiallyUnhandledRejectionHandled=f.onFatalRejection=L;var x=new b,P=new f(b,x);function R(e,t){this.continuation=e,this.handler=t}function k(e,t){this.handler=t,this.value=e}function C(e,t,r){this._then=e,this.thenable=t,this.resolver=r}function O(e,t,r,n){this.f=e,this.z=t,this.c=r,this.to=n,this.resolver=m,this.receiver=this}function M(e){return e instanceof f}function N(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function I(e,t,r,n){if("function"!=typeof e)return n.become(t);f.enterContext(t),function(e,t,r,n){try{n.become(h(e.call(r,t)))}catch(e){n.become(new A(e))}}(e,t.value,r,n),f.exitContext()}function D(e,t,r,n,i){if("function"!=typeof e)return i.notify(t);f.enterContext(r),function(e,t,r,n){try{n.notify(e.call(r,t))}catch(e){n.notify(e)}}(e,t,n,i),f.exitContext()}function B(e,t,r){try{return e(t,r)}catch(e){return a(e)}}function F(e,t){t.prototype=i(e.prototype),t.prototype.constructor=t}function j(e,t){return t}function L(){}return R.prototype.run=function(){this.handler.join().when(this.continuation)},k.prototype.run=function(){var e=this.handler.consumers;if(void 0!==e)for(var t,r=0;r<e.length;++r)D((t=e[r]).progress,this.value,this.handler,t.receiver,t.resolver)},C.prototype.run=function(){var e=this.resolver;!function(e,t,r,n,i){try{e.call(t,r,n,i)}catch(e){n(e)}}(this._then,this.thenable,(function(t){e.resolve(t)}),(function(t){e.reject(t)}),(function(t){e.notify(t)}))},O.prototype.fulfilled=function(e){this.f.call(this.c,this.z,e,this.to)},O.prototype.rejected=function(e){this.to.reject(e)},O.prototype.progress=function(e){this.to.notify(e)},f}}.call(t,r,t,e))||(e.exports=i)}(r(16))}).call(this,r(10))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){function e(e){this._async=e,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var t=this;this.drain=function(){t._drain()}}return e.prototype.enqueue=function(e){this._queue[this._queueLen++]=e,this.run()},e.prototype.afterQueue=function(e){this._afterQueue[this._afterQueueLen++]=e,this.run()},e.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},e.prototype._drain=function(){for(var e=0;e<this._queueLen;++e)this._queue[e].run(),this._queue[e]=void 0;for(this._queueLen=0,this._running=!1,e=0;e<this._afterQueueLen;++e)this._afterQueue[e].run(),this._afterQueue[e]=void 0;this._afterQueueLen=0},e}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){"use strict";(function(t){var n=r(615);function i(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,f=Math.min(r,n);i<f;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function f(e){return t.Buffer&&"function"==typeof t.Buffer.isBuffer?t.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}var o=r(236),a=Object.prototype.hasOwnProperty,s=Array.prototype.slice,c="foo"===function(){}.name;function u(e){return Object.prototype.toString.call(e)}function l(e){return!f(e)&&("function"==typeof t.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}var d=e.exports=g,h=/\s*function\s+([^\(\s]*)\s*/;function p(e){if(o.isFunction(e)){if(c)return e.name;var t=e.toString().match(h);return t&&t[1]}}function b(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function y(e){if(c||!o.isFunction(e))return o.inspect(e);var t=p(e);return"[Function"+(t?": "+t:"")+"]"}function m(e,t,r,n,i){throw new d.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function g(e,t){e||m(e,!0,t,"==",d.ok)}function v(e,t,r,n){if(e===t)return!0;if(f(e)&&f(t))return 0===i(e,t);if(o.isDate(e)&&o.isDate(t))return e.getTime()===t.getTime();if(o.isRegExp(e)&&o.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(l(e)&&l(t)&&u(e)===u(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===i(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(f(e)!==f(t))return!1;var a=(n=n||{actual:[],expected:[]}).actual.indexOf(e);return-1!==a&&a===n.expected.indexOf(t)||(n.actual.push(e),n.expected.push(t),function(e,t,r,n){if(null==e||null==t)return!1;if(o.isPrimitive(e)||o.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=_(e),f=_(t);if(i&&!f||!i&&f)return!1;if(i)return v(e=s.call(e),t=s.call(t),r);var a,c,u=A(e),l=A(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),c=u.length-1;c>=0;c--)if(u[c]!==l[c])return!1;for(c=u.length-1;c>=0;c--)if(!v(e[a=u[c]],t[a],r,n))return!1;return!0}(e,t,r,n))}return r?e===t:e==t}function _(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function w(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function E(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&m(i,r,"Missing expected exception"+n);var f="string"==typeof n,a=!e&&i&&!r;if((!e&&o.isError(i)&&f&&w(i,r)||a)&&m(i,r,"Got unwanted exception"+n),e&&i&&r&&!w(i,r)||!e&&i)throw i}d.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return b(y(e.actual),128)+" "+e.operator+" "+b(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||m;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=p(t),f=n.indexOf("\n"+i);if(f>=0){var o=n.indexOf("\n",f+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(d.AssertionError,Error),d.fail=m,d.ok=g,d.equal=function(e,t,r){e!=t&&m(e,t,r,"==",d.equal)},d.notEqual=function(e,t,r){e==t&&m(e,t,r,"!=",d.notEqual)},d.deepEqual=function(e,t,r){v(e,t,!1)||m(e,t,r,"deepEqual",d.deepEqual)},d.deepStrictEqual=function(e,t,r){v(e,t,!0)||m(e,t,r,"deepStrictEqual",d.deepStrictEqual)},d.notDeepEqual=function(e,t,r){v(e,t,!1)&&m(e,t,r,"notDeepEqual",d.notDeepEqual)},d.notDeepStrictEqual=function e(t,r,n){v(t,r,!0)&&m(t,r,n,"notDeepStrictEqual",e)},d.strictEqual=function(e,t,r){e!==t&&m(e,t,r,"===",d.strictEqual)},d.notStrictEqual=function(e,t,r){e===t&&m(e,t,r,"!==",d.notStrictEqual)},d.throws=function(e,t,r){E(!0,e,t,r)},d.doesNotThrow=function(e,t,r){E(!1,e,t,r)},d.ifError=function(e){if(e)throw e},d.strict=n((function e(t,r){t||m(t,!0,r,"==",e)}),d,{equal:d.strictEqual,deepEqual:d.deepStrictEqual,notEqual:d.notStrictEqual,notDeepEqual:d.notDeepStrictEqual}),d.strict.strict=d.strict;var A=Object.keys||function(e){var t=[];for(var r in e)a.call(e,r)&&t.push(r);return t}}).call(this,r(12))},function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,a,s=o(e),c=1;c<arguments.length;c++){for(var u in r=Object(arguments[c]))i.call(r,u)&&(s[u]=r[u]);if(n){a=n(r);for(var l=0;l<a.length;l++)f.call(r,a[l])&&(s[a[l]]=r[a[l]])}}return s}},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t,r){(t=e.exports=r(237)).Stream=t,t.Readable=t,t.Writable=r(241),t.Duplex=r(53),t.Transform=r(242),t.PassThrough=r(624),t.finished=r(123),t.pipeline=r(625)},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=r(7).Buffer,a=r(621).inspect,s=a&&a.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,c;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,n,i=o.allocUnsafe(e>>>0),f=this.head,a=0;f;)t=f.data,r=i,n=a,o.prototype.copy.call(t,r,n),a+=f.data.length,f=f.next;return i}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,f=e>i.length?i.length:e;if(f===i.length?n+=i:n+=i.slice(0,e),0==(e-=f)){f===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(f));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,f=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,f),0==(e-=f)){f===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(f));break}++n}return this.length-=n,t}},{key:s,value:function(e,t){return a(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}])&&f(t.prototype,r),c&&f(t,c),e}()},function(e,t){},function(e,t,r){"use strict";(function(t){var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=r(123),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[d].read();null!==r&&(e[u]=null,e[o]=null,e[a]=null,t(h(r,!1)))}}function b(e){t.nextTick(p,e)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((i(n={get stream(){return this[d]},next:function(){var e=this,r=this[s];if(null!==r)return Promise.reject(r);if(this[c])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise((function(r,n){t.nextTick((function(){e[s]?n(e[s]):r(h(void 0,!0))}))}));var n,i=this[u];if(i)n=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(h(void 0,!0)):t[l](r,n)}),n)}}(i,this));else{var f=this[d].read();if(null!==f)return Promise.resolve(h(f,!1));n=new Promise(this[l])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[d].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),n),y);e.exports=function(e){var t,r=Object.create(m,(i(t={},d,{value:e,writable:!0}),i(t,o,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,l,{value:function(e,t){var n=r[d].read();n?(r[u]=null,r[o]=null,r[a]=null,e(h(n,!1))):(r[o]=e,r[a]=t)},writable:!0}),t));return r[u]=null,f(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[a];return null!==t&&(r[u]=null,r[o]=null,r[a]=null,t(e)),void(r[s]=e)}var n=r[o];null!==n&&(r[u]=null,r[o]=null,r[a]=null,n(h(void 0,!0))),r[c]=!0})),e.on("readable",b.bind(null,r)),r}}).call(this,r(10))},function(e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(e,t,r){"use strict";e.exports=i;var n=r(242);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(9)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var n;var i=r(52).codes,f=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function s(e,t,i,f){f=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(f);var a=!1;e.on("close",(function(){a=!0})),void 0===n&&(n=r(123)),n(e,{readable:t,writable:i},(function(e){if(e)return f(e);a=!0,f()}));var s=!1;return function(t){if(!a&&!s)return s=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void f(t||new o("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?a:e.pop():a}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new f("streams");var o=t.map((function(e,r){var f=r<t.length-1;return s(e,f,r>0,(function(e){n||(n=e),e&&o.forEach(c),f||(o.forEach(c),i(n))}))}));return t.reduce(u)}},function(e,t,r){"use strict";const{Buffer:n}=r(7),i=Symbol.for("BufferList");function f(e){if(!(this instanceof f))return new f(e);f._init.call(this,e)}f._init=function(e){Object.defineProperty(this,i,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},f.prototype._new=function(e){return new f(e)},f.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;r<this._bufs.length;r++){const n=t+this._bufs[r].length;if(e<n||r===this._bufs.length-1)return[r,e-t];t=n}},f.prototype._reverseOffset=function(e){const t=e[0];let r=e[1];for(let e=0;e<t;e++)r+=this._bufs[e].length;return r},f.prototype.get=function(e){if(e>this.length||e<0)return;const t=this._offset(e);return this._bufs[t[0]][t[1]]},f.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},f.prototype.copy=function(e,t,r,i){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof i||i>this.length)&&(i=this.length),r>=this.length)return e||n.alloc(0);if(i<=0)return e||n.alloc(0);const f=!!e,o=this._offset(r),a=i-r;let s=a,c=f&&t||0,u=o[1];if(0===r&&i===this.length){if(!f)return 1===this._bufs.length?this._bufs[0]:n.concat(this._bufs,this.length);for(let t=0;t<this._bufs.length;t++)this._bufs[t].copy(e,c),c+=this._bufs[t].length;return e}if(s<=this._bufs[o[0]].length-u)return f?this._bufs[o[0]].copy(e,t,u,u+s):this._bufs[o[0]].slice(u,u+s);f||(e=n.allocUnsafe(a));for(let t=o[0];t<this._bufs.length;t++){const r=this._bufs[t].length-u;if(!(s>r)){this._bufs[t].copy(e,c,u,u+s),c+=r;break}this._bufs[t].copy(e,c,u),c+=r,s-=r,u&&(u=0)}return e.length>c?e.slice(0,c):e},f.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),i=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?i.pop():i[i.length-1]=i[i.length-1].slice(0,n[1]),0!==r[1]&&(i[0]=i[0].slice(r[1])),this._new(i)},f.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},f.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},f.prototype.duplicate=function(){const e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e},f.prototype.append=function(e){if(null==e)return this;if(e.buffer)this._appendBuffer(n.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else"number"==typeof e&&(e=e.toString()),this._appendBuffer(n.from(e));return this},f.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},f.prototype.indexOf=function(e,t,r){if(void 0===r&&"string"==typeof t&&(r=t,t=void 0),"function"==typeof e||Array.isArray(e))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if("number"==typeof e?e=n.from([e]):"string"==typeof e?e=n.from(e,r):this._isBufferList(e)?e=e.slice():Array.isArray(e.buffer)?e=n.from(e.buffer,e.byteOffset,e.byteLength):n.isBuffer(e)||(e=n.from(e)),t=Number(t||0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),0===e.length)return t>this.length?this.length:t;const i=this._offset(t);let f=i[0],o=i[1];for(;f<this._bufs.length;f++){const t=this._bufs[f];for(;o<t.length;){if(t.length-o>=e.length){const r=t.indexOf(e,o);if(-1!==r)return this._reverseOffset([f,r]);o=t.length-e.length+1}else{const t=this._reverseOffset([f,o]);if(this._match(t,e))return t;o++}}o=0}return-1},f.prototype._match=function(e,t){if(this.length-e<t.length)return!1;for(let r=0;r<t.length;r++)if(this.get(e+r)!==t[r])return!1;return!0},function(){const e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(const t in e)!function(t){f.prototype[t]=null===e[t]?function(e,r){return this.slice(e,e+r)[t](0,r)}:function(r=0){return this.slice(r,r+e[t])[t](0)}}(t)}(),f.prototype._isBufferList=function(e){return e instanceof f||f.isBufferList(e)},f.isBufferList=function(e){return null!=e&&e[i]},e.exports=f},function(e,t,r){"use strict";const n=r(628).Transform,i=r(9),f=r(89);function o(e){(e=e||{}).objectMode=!0,e.highWaterMark=16,n.call(this,e),this._msgpack=e.msgpack}function a(e){if(!(this instanceof a))return(e=e||{}).msgpack=this,new a(e);o.call(this,e),this._wrap="wrap"in e&&e.wrap}function s(e){if(!(this instanceof s))return(e=e||{}).msgpack=this,new s(e);o.call(this,e),this._chunks=f(),this._wrap="wrap"in e&&e.wrap}i(o,n),i(a,o),a.prototype._transform=function(e,t,r){let n=null;try{n=this._msgpack.encode(this._wrap?e.value:e).slice(0)}catch(e){return this.emit("error",e),r()}this.push(n),r()},i(s,o),s.prototype._transform=function(e,t,r){e&&this._chunks.append(e);try{let e=this._msgpack.decode(this._chunks);this._wrap&&(e={value:e}),this.push(e)}catch(e){return void(e instanceof this._msgpack.IncompleteBufferError?r():this.emit("error",e))}this._chunks.length>0?this._transform(null,t,r):r()},e.exports.decoder=s,e.exports.encoder=a},function(e,t,r){(t=e.exports=r(243)).Stream=t,t.Readable=t,t.Writable=r(247),t.Duplex=r(55),t.Transform=r(248),t.PassThrough=r(634),t.finished=r(124),t.pipeline=r(635)},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=r(7).Buffer,a=r(631).inspect,s=a&&a.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,c;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,n,i=o.allocUnsafe(e>>>0),f=this.head,a=0;f;)t=f.data,r=i,n=a,o.prototype.copy.call(t,r,n),a+=f.data.length,f=f.next;return i}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,f=e>i.length?i.length:e;if(f===i.length?n+=i:n+=i.slice(0,e),0==(e-=f)){f===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(f));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,f=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,f),0==(e-=f)){f===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(f));break}++n}return this.length-=n,t}},{key:s,value:function(e,t){return a(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}])&&f(t.prototype,r),c&&f(t,c),e}()},function(e,t){},function(e,t,r){"use strict";(function(t){var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=r(124),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[d].read();null!==r&&(e[u]=null,e[o]=null,e[a]=null,t(h(r,!1)))}}function b(e){t.nextTick(p,e)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((i(n={get stream(){return this[d]},next:function(){var e=this,r=this[s];if(null!==r)return Promise.reject(r);if(this[c])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise((function(r,n){t.nextTick((function(){e[s]?n(e[s]):r(h(void 0,!0))}))}));var n,i=this[u];if(i)n=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(h(void 0,!0)):t[l](r,n)}),n)}}(i,this));else{var f=this[d].read();if(null!==f)return Promise.resolve(h(f,!1));n=new Promise(this[l])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[d].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),n),y);e.exports=function(e){var t,r=Object.create(m,(i(t={},d,{value:e,writable:!0}),i(t,o,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,l,{value:function(e,t){var n=r[d].read();n?(r[u]=null,r[o]=null,r[a]=null,e(h(n,!1))):(r[o]=e,r[a]=t)},writable:!0}),t));return r[u]=null,f(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[a];return null!==t&&(r[u]=null,r[o]=null,r[a]=null,t(e)),void(r[s]=e)}var n=r[o];null!==n&&(r[u]=null,r[o]=null,r[a]=null,n(h(void 0,!0))),r[c]=!0})),e.on("readable",b.bind(null,r)),r}}).call(this,r(10))},function(e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(e,t,r){"use strict";e.exports=i;var n=r(248);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(9)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var n;var i=r(54).codes,f=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function s(e,t,i,f){f=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(f);var a=!1;e.on("close",(function(){a=!0})),void 0===n&&(n=r(124)),n(e,{readable:t,writable:i},(function(e){if(e)return f(e);a=!0,f()}));var s=!1;return function(t){if(!a&&!s)return s=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void f(t||new o("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?a:e.pop():a}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new f("streams");var o=t.map((function(e,r){var f=r<t.length-1;return s(e,f,r>0,(function(e){n||(n=e),e&&o.forEach(c),f||(o.forEach(c),i(n))}))}));return t.reduce(u)}},function(e,t,r){"use strict";const n=r(89),i=r(125).IncompleteBufferError,f={196:2,197:3,198:5,199:3,200:4,201:6,202:5,203:9,204:2,205:3,206:5,207:9,208:2,209:3,210:5,211:9,212:3,213:4,214:6,215:10,216:18,217:2,218:3,219:5,222:3,220:3,221:5};function o(e,t,r){return t>=r+e}function a(e,t,r,n,i){let f=t;const o=[];let a=0;for(;a++<r;){const t=c(e,f,i);if(!t)return null;o.push(t[0]),f+=t[1]}return[o,n+f-t]}function s(e,t,r,n,i){const f=a(e,t,2*r,n,i);if(!f)return null;const[o,s]=f;let c=!i.options.preferMap;if(c)for(let e=0;e<2*r;e+=2)if("string"!=typeof o[e]){c=!1;break}if(c){const e={};for(let t=0;t<2*r;t+=2){const r=o[t],n=o[t+1];if("__proto__"===r){if("error"===i.options.protoAction)throw new SyntaxError("Object contains forbidden prototype property");if("remove"===i.options.protoAction)continue}e[r]=n}return[e,s]}{const e=new Map;for(let t=0;t<2*r;t+=2){const r=o[t],n=o[t+1];e.set(r,n)}return[e,s]}}function c(e,t,r){if(e.length<=t)return null;const n=e.length-t;let i=t;const c=e.readUInt8(i);i+=1;const l=f[c]||-1;if(n<l)return null;if(c<128)return[c,1];if(128==(240&c)){return s(e,i,15&c,i-t,r)}if(144==(240&c)){return a(e,i,15&c,i-t,r)}if(160==(224&c)){const t=31&c;if(!o(t,n,1))return null;return[e.toString("utf8",i,i+t),t+1]}if(c>=192&&c<=195)return function(e){if(192===e)return[null,1];if(194===e)return[!1,1];if(195===e)return[!0,1]}(c);if(c>=196&&c<=198){const t=e.readUIntBE(i,l-1);if(i+=l-1,!o(t,n,l))return null;return[e.slice(i,i+t),l+t]}if(c>=199&&c<=201){const t=e.readUIntBE(i,l-2);i+=l-2;const f=e.readInt8(i);return i+=1,o(t,n,l)?u(e,i,f,t,l,r):null}if(c>=202&&c<=203)return function(e,t,r){let n;4===r&&(n=e.readFloatBE(t));8===r&&(n=e.readDoubleBE(t));return[n,r+1]}(e,i,l-1);if(c>=204&&c<=207)return function(e,t,r){const n=t+r;let i=0;for(;t<n;)i+=e.readUInt8(t++)*Math.pow(256,n-t);return[i,r+1]}(e,i,l-1);if(c>=208&&c<=211)return function(e,t,r){let n;1===r&&(n=e.readInt8(t));2===r&&(n=e.readInt16BE(t));4===r&&(n=e.readInt32BE(t));8===r&&(n=function(e,t){var r=128==(128&e[t]);if(r){let r=1;for(let n=t+7;n>=t;n--){const t=(255^e[n])+r;e[n]=255&t,r=t>>8}}const n=e.readUInt32BE(t+0),i=e.readUInt32BE(t+4);return(4294967296*n+i)*(r?-1:1)}(e.slice(t,t+8),0));return[n,r+1]}(e,i,l-1);if(c>=212&&c<=216){const t=e.readInt8(i);return i+=1,u(e,i,t,l-2,2,r)}if(c>=217&&c<=219){const t=e.readUIntBE(i,l-1);if(i+=l-1,!o(t,n,l))return null;return[e.toString("utf8",i,i+t),l+t]}if(c>=220&&c<=221){const t=e.readUIntBE(i,l-1);return i+=l-1,a(e,i,t,l,r)}if(c>=222&&c<=223){let t;switch(c){case 222:return t=e.readUInt16BE(i),i+=2,s(e,i,t,3,r);case 223:return t=e.readUInt32BE(i),i+=4,s(e,i,t,5,r)}}if(c>=224)return[c-256,1];throw new Error("not implemented yet")}function u(e,t,r,n,i,f){const o=e.slice(t,t+n),a=f.decodingTypes.get(r);if(!a)throw new Error("unable to find ext type "+r);return[a(o),i+n]}e.exports=function(e,t){const r={decodingTypes:e,options:t,decode:f};return f;function f(e){e instanceof n||(e=n().append(e));const t=c(e,0,r);if(!t)throw new i;return e.consume(t[1]),t[0]}}},function(e,t,r){"use strict";const n=r(11).Buffer,i=r(89),f=r(125).isFloat;function o(e,t,r){const n=r%4294967296,i=Math.floor(r/4294967296);e.writeUInt32BE(i,t+0),e.writeUInt32BE(n,t+4)}e.exports=function(e,t){function r(a){if(void 0===a)throw new Error("undefined is not encodable in msgpack!");if(null===a)return n.from([192]);if(!0===a)return n.from([195]);if(!1===a)return n.from([194]);if(a instanceof Map)return function(e,t,r){const n=[u(e.size,128,222)],f=[...e.keys()];t.preferMap||f.every((e=>"string"==typeof e))&&console.warn("Map with string only keys will be deserialized as an object!");return f.forEach((t=>{n.push(r(t),r(e.get(t)))})),i(n)}(a,t,r);if("string"==typeof a)return function(e,t){const r=n.byteLength(e);let i;r<32?(i=n.allocUnsafe(1+r),i[0]=160|r,r>0&&i.write(e,1)):r<=255&&!t.compatibilityMode?(i=n.allocUnsafe(2+r),i[0]=217,i[1]=r,i.write(e,2)):r<=65535?(i=n.allocUnsafe(3+r),i[0]=218,i.writeUInt16BE(r,1),i.write(e,3)):(i=n.allocUnsafe(5+r),i[0]=219,i.writeUInt32BE(r,1),i.write(e,5));return i}(a,t);if(a&&(a.readUInt32LE||a instanceof Uint8Array))return a instanceof Uint8Array&&(a=n.from(a)),i([l(a.length),a]);if(Array.isArray(a))return function(e,t){const r=[u(e.length,144,220)];if(e.forEach((e=>{r.push(t(e))})),r.length!==e.length+1)throw new Error("Sparse arrays are not encodable in msgpack");return i(r)}(a,r);if("object"==typeof a)return function(e,t){const r=t.find((t=>t.check(e)));if(!r)return null;const n=r.encode(e);return n?i([c(n.length-1),n]):null}(a,e)||function(e,t,r){const n=[];for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&void 0!==e[t]&&"function"!=typeof e[t]&&n.push(t);const f=[u(n.length,128,222)];t.sortKeys&&n.sort();return n.forEach((t=>{f.push(r(t),r(e[t]))})),i(f)}(a,t,r);if("number"==typeof a)return function(e,t){let r;if(f(e))return s(e,t.forceFloat64);if(Math.abs(e)>9007199254740991)return s(e,!0);if(e>=0){if(e<128)return n.from([e]);if(e<256)return n.from([204,e]);if(e<65536)return n.from([205,255&e>>8,255&e]);if(e<=4294967295)return n.from([206,255&e>>24,255&e>>16,255&e>>8,255&e]);e<=9007199254740991&&(r=n.allocUnsafe(9),r[0]=207,o(r,1,e))}else e>=-32?(r=n.allocUnsafe(1),r[0]=256+e):e>=-128?(r=n.allocUnsafe(2),r[0]=208,r.writeInt8(e,1)):e>=-32768?(r=n.allocUnsafe(3),r[0]=209,r.writeInt16BE(e,1)):e>-214748365?(r=n.allocUnsafe(5),r[0]=210,r.writeInt32BE(e,1)):e>=-9007199254740991&&(r=n.allocUnsafe(9),r[0]=211,function(e,t,r){const n=r<0;r=Math.abs(r),o(e,t,r),n&&function(e,t){let r=t+8;for(;r-- >t;)if(0!==e[r]){e[r]=1+(255^e[r]);break}for(;r-- >t;)e[r]=255^e[r]}(e,t)}(r,1,e));return r}(a,t);throw new Error("not implemented yet")}return function(e){return r(e).slice()}};const a=Math.fround;function s(e,t){let r;return!t&&a&&Object.is(a(e),e)?(r=n.allocUnsafe(5),r[0]=202,r.writeFloatBE(e,1)):(r=n.allocUnsafe(9),r[0]=203,r.writeDoubleBE(e,1)),r}function c(e){return 1===e?n.from([212]):2===e?n.from([213]):4===e?n.from([214]):8===e?n.from([215]):16===e?n.from([216]):e<256?n.from([199,e]):e<65536?n.from([200,e>>8,255&e]):n.from([201,e>>24,e>>16&255,e>>8&255,255&e])}function u(e,t,r){if(e<16)return n.from([t|e]);const i=e<65536?2:4,f=n.allocUnsafe(1+i);return f[0]=e<65536?r:r+1,f.writeUIntBE(e,1,i),f}function l(e){let t;return e<=255?(t=n.allocUnsafe(2),t[0]=196,t[1]=e):e<=65535?(t=n.allocUnsafe(3),t[0]=197,t.writeUInt16BE(e,1)):(t=n.allocUnsafe(5),t[0]=198,t.writeUInt32BE(e,1)),t}},function(e,t,r){(function(t){e.exports={check:function(e){return"function"==typeof e.getDate},type:-1,encode:function(e){if(null===e)return;const r=1*e,n=Math.floor(r/1e3),i=1e6*(r-1e3*n);if(n<0||n>17179869184){const e=t.allocUnsafe(13);e[0]=-1,e.writeUInt32BE(i,1);let r="";if(n>=0){const e="0000000000000000";r=n.toString(16),r=e.slice(0,-1*r.length)+r}else{let e=(-1*n).toString(2),t=e.length-1;for(;"0"===e[t];)t--;e=e.slice(0,t).split("").map((function(e){return"1"===e?0:1})).join("")+e.slice(t,e.length);e="1111111111111111111111111111111111111111111111111111111111111111".slice(0,-1*e.length)+e,e.match(/.{1,8}/g).forEach((function(e){1===(e=parseInt(e,2).toString(16)).length&&(e="0"+e),r+=e}))}return e.write(r,5,"hex"),e}if(i||n>4294967295){const e=t.allocUnsafe(9);e[0]=-1;const r=4*i+n/Math.pow(2,32)&4294967295,f=4294967295&n;return e.writeInt32BE(r,1),e.writeInt32BE(f,5),e}{const e=t.allocUnsafe(5);return e[0]=-1,e.writeUInt32BE(Math.floor(r/1e3),1),e}},decode:function(e){let t,r,n,i,f=0;switch(e.length){case 4:t=e.readUInt32BE(0);break;case 8:r=e.readUInt32BE(0),n=e.readUInt32BE(4),f=r/4,t=(3&r)*Math.pow(2,32)+n;break;case 12:if(i=e.toString("hex",4,12),128&parseInt(e.toString("hex",4,6),16)){let e="";const r="00000000";i.match(/.{1,2}/g).forEach((function(t){t=parseInt(t,16).toString(2),t=r.slice(0,-1*t.length)+t,e+=t})),t=-1*parseInt(e.split("").map((function(e){return"1"===e?0:1})).join(""),2)-1}else t=parseInt(i,16);f=e.readUInt32BE(0)}const o=1e3*t+Math.round(f/1e6);return new Date(o)}}}).call(this,r(7).Buffer)},function(e,t){},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){return r(641)(r(644).Promise)}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=new(r(642))(new(r(643)));return function(e){return t.monitor(e)}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=/[\s\(\/\\](node|module|timers)\.js:|when([\/\\]{1,2}(lib|monitor|es6-shim)[\/\\]{1,2}|\.js)|(new\sPromise)\b|(\b(PromiseMonitor|ConsoleReporter|Scheduler|RunHandlerTask|ProgressTask|Promise|.*Handler)\.[\w_]\w\w+\b)|\b(tryCatch\w+|getHandler\w*)\b/i,n=r(88).setTimer,i=r(250),f=[];function o(e){this.logDelay=0,this.stackFilter=t,this.stackJumpSeparator="from execution context:",this.filterDuplicateFrames=!0,this._reporter=e,"function"==typeof e.configurePromiseMonitor&&e.configurePromiseMonitor(this),this._traces=[],this._traceTask=0;var r=this;this._doLogTraces=function(){r._logTraces()}}function a(e,t,r){t.length>1&&(t[0]=r,e.push.apply(e,t))}function s(e,t){return t.filter((function(t){return!e.test(t)}))}function c(e){return!e.handler.handled}return o.prototype.monitor=function(e){var t=this;return e.createContext=function(e,r){e.context=t.createContext(e,r)},e.enterContext=function(e){f.push(e.context)},e.exitContext=function(){f.pop()},e.onPotentiallyUnhandledRejection=function(e,r){return t.addTrace(e,r)},e.onPotentiallyUnhandledRejectionHandled=function(e){return t.removeTrace(e)},e.onFatalRejection=function(e,r){return t.fatal(e,r)},this},o.prototype.createContext=function(e,t){var r={parent:t||f[f.length-1],stack:void 0};return i.captureStack(r,e.constructor),r},o.prototype.addTrace=function(e,t){var r,n;for(n=this._traces.length-1;n>=0&&(r=this._traces[n]).handler!==e;--n);n>=0?r.extraContext=t:this._traces.push({handler:e,extraContext:t}),this.logTraces()},o.prototype.removeTrace=function(){this.logTraces()},o.prototype.fatal=function(e,t){var r=new Error;r.stack=this._createLongTrace(e.value,e.context,t).join("\n"),n((function(){throw r}),0)},o.prototype.logTraces=function(){this._traceTask||(this._traceTask=n(this._doLogTraces,this.logDelay))},o.prototype._logTraces=function(){this._traceTask=void 0,this._traces=this._traces.filter(c),this._reporter.log(this.formatTraces(this._traces))},o.prototype.formatTraces=function(e){return e.map((function(e){return this._createLongTrace(e.handler.value,e.handler.context,e.extraContext)}),this)},o.prototype._createLongTrace=function(e,t,r){var n=i.parse(e)||[String(e)+" (WARNING: non-Error used)"];return n=s(this.stackFilter,n),this._appendContext(n,t),this._appendContext(n,r),this.filterDuplicateFrames?this._removeDuplicates(n):n},o.prototype._removeDuplicates=function(e){var t={},r=this.stackJumpSeparator,n=0;return e.reduceRight((function(e,i,f){return 0===f?e.unshift(i):i===r?n>0&&(e.unshift(i),n=0):t[i]||(t[i]=!0,e.unshift(i),++n),e}),[])},o.prototype._appendContext=function(e,t){e.push.apply(e,this._createTrace(t))},o.prototype._createTrace=function(e){for(var t,r=[];e;)(t=i.parse(e))&&a(r,t=s(this.stackFilter,t),this.stackJumpSeparator),e=e.parent;return r},o}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(250);function n(){this._previouslyReported=!1}function i(){}return n.prototype=function(){var e,t,r,n;if("undefined"==typeof console)e=t=i;else{var f=console;"function"==typeof f.error&&"function"==typeof f.dir?(t=function(e){f.error(e)},e=function(e){f.log(e)},"function"==typeof f.groupCollapsed&&(r=function(e){f.groupCollapsed(e)},n=function(){f.groupEnd()})):e=t=void 0!==f.log&&"undefined"!=typeof JSON?function(e){if("string"!=typeof e)try{e=JSON.stringify(e)}catch(e){}f.log(e)}:i}return{msg:e,warn:t,groupStart:r||t,groupEnd:n||i}}(),n.prototype.log=function(e){if(0!==e.length){this._previouslyReported=!0,this.groupStart("[promises] Unhandled rejections: "+e.length);try{this._log(e)}finally{this.groupEnd()}}else this._previouslyReported&&(this._previouslyReported=!1,this.msg("[promises] All previously unhandled rejections have now been handled"))},n.prototype._log=function(e){for(var r=0;r<e.length;++r)this.warn(t.format(e[r]))},n}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){(function(t){e.exports=function(){var e;return function e(t,r,n){function i(o,a){if(!r[o]){if(!t[o]){if(f)return f(o,!0);throw new Error("Cannot find module '"+o+"'")}var s=r[o]={exports:{}};t[o][0].call(s.exports,(function(e){var r=t[o][1][e];return i(r||e)}),s,s.exports,e,t,r,n)}return r[o].exports}for(var f=!1,o=0;o<n.length;o++)i(n[o]);return i}({1:[function(e,t,r){var n=t.exports=e("../when");n.callbacks=e("../callbacks"),n.cancelable=e("../cancelable"),n.delay=e("../delay"),n.fn=e("../function"),n.guard=e("../guard"),n.keys=e("../keys"),n.nodefn=n.node=e("../node"),n.parallel=e("../parallel"),n.pipeline=e("../pipeline"),n.poll=e("../poll"),n.sequence=e("../sequence"),n.timeout=e("../timeout")},{"../callbacks":2,"../cancelable":3,"../delay":4,"../function":5,"../guard":6,"../keys":7,"../node":26,"../parallel":27,"../pipeline":28,"../poll":29,"../sequence":30,"../timeout":31,"../when":32}],2:[function(t,r,n){!function(e){e((function(e){var t=e("./when").Promise,r=e("./lib/liftAll"),n=Array.prototype.slice,i=e("./lib/apply")(t,o);return{lift:c,liftAll:u,apply:f,call:s,promisify:l};function f(e,t){return i(e,this,t||[])}function o(e,t,r,n){r.push(p(n.resolve,n),p(n.reject,n)),a(e,t,r,n)}function a(e,t,r,n){try{e.apply(t,r)}catch(e){n.reject(e)}}function s(e){return i(e,this,n.call(arguments,1))}function c(e){var t=arguments.length>1?n.call(arguments,1):[];return function(){return i(e,this,t.concat(n.call(arguments)))}}function u(e,t,n){return r(c,t,n,e)}function l(e,r){return function(){var n=this;return t.all(arguments).then((function(i){var f,o,a=t._defer();return"number"==typeof r.callback&&(f=d(i,r.callback)),"number"==typeof r.errback&&(o=d(i,r.errback)),o<f?(h(i,o,a._handler.reject,a._handler),h(i,f,a._handler.resolve,a._handler)):(h(i,f,a._handler.resolve,a._handler),h(i,o,a._handler.reject,a._handler)),e.apply(n,i),a}))}}function d(e,t){return t<0?e.length+t+2:t}function h(e,t,r,n){"number"==typeof t&&e.splice(t,0,p(r,n))}function p(e,t){return function(){arguments.length>1?e.call(t,n.call(arguments)):e.apply(t,arguments)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],3:[function(t,r,n){!function(e){e((function(){return function(e,t){return e.cancel=function(){try{e.reject(t(e))}catch(t){e.reject(t)}return e.promise},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],4:[function(t,r,n){!function(e){e((function(e){var t=e("./when");return function(e,r){return t(r).delay(e)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],5:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.try,n=e("./lib/liftAll"),i=e("./lib/apply")(t.Promise),f=Array.prototype.slice;return{lift:a,liftAll:s,call:r,apply:o,compose:c};function o(e,t){return i(e,this,null==t?[]:f.call(t))}function a(e){var t=arguments.length>1?f.call(arguments,1):[];return function(){return i(e,this,t.concat(f.call(arguments)))}}function s(e,t,r){return n(a,t,r,e)}function c(e){var n=f.call(arguments,1);return function(){var i=this,o=f.call(arguments),a=r.apply(i,[e].concat(o));return t.reduce(n,(function(e,t){return t.call(i,e)}),a)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],6:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=Array.prototype.slice;return n.n=i,n;function n(e,n){return function(){var i=r.call(arguments);return t(e()).withThis(this).then((function(e){return t(n.apply(this,i)).finally(e)}))}}function i(e){var r=0,n=[];return function(){return t.promise((function(t){r<e?t(i):n.push(t),r+=1}))};function i(){r=Math.max(r-1,0),n.length>0&&n.shift()(i)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],7:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("./when"),r=t.Promise,n=t.resolve;return{all:t.lift(i),map:f,settle:o};function i(e){for(var t,n=r._defer(),i=r._handler(n),f={},o=Object.keys(e),a=o.length,s=0;s<o.length;++s)t=o[s],r._handler(e[t]).fold(c,t,f,i);return 0===a&&i.resolve(f),n;function c(e,t,r){this[e]=t,0==--a&&r.resolve(f)}}function f(e,t){return n(e).then((function(e){return i(Object.keys(e).reduce((function(t,i){return t[i]=n(e[i]).fold(r,i),t}),{}))}));function r(e,r){return t(r,e)}}function o(e){var i=Object.keys(e),f={};if(0===i.length)return n(f);var o=r._defer(),s=r._handler(o),c=i.map((function(t){return e[t]}));return t.settle(c).then((function(e){a(i,e,f,s)})),o}function a(e,t,r,n){for(var i=0;i<e.length;i++)r[e[i]]=t[i];n.resolve(r)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],8:[function(t,r,n){!function(e){"use strict";e((function(e){return e("./makePromise")({scheduler:new(e("./Scheduler"))(e("./env").asap)})}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./Scheduler":9,"./env":21,"./makePromise":24}],9:[function(t,r,n){!function(e){"use strict";e((function(){function e(e){this._async=e,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var t=this;this.drain=function(){t._drain()}}return e.prototype.enqueue=function(e){this._queue[this._queueLen++]=e,this.run()},e.prototype.afterQueue=function(e){this._afterQueue[this._afterQueueLen++]=e,this.run()},e.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},e.prototype._drain=function(){for(var e=0;e<this._queueLen;++e)this._queue[e].run(),this._queue[e]=void 0;for(this._queueLen=0,this._running=!1,e=0;e<this._afterQueueLen;++e)this._afterQueue[e].run(),this._afterQueue[e]=void 0;this._afterQueueLen=0},e}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],10:[function(t,r,n){!function(e){"use strict";e((function(){function e(t){Error.call(this),this.message=t,this.name=e.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],11:[function(t,r,n){!function(e){"use strict";e((function(){return e.tryCatchResolve=t,e;function e(e,r){return arguments.length<2&&(r=t),n;function n(t,n,f){var o=e._defer(),a=f.length;return i({f:t,thisArg:n,args:f,params:new Array(a),i:a-1,call:r},o._handler),o}function i(t,n){if(t.i<0)return r(t.f,t.thisArg,t.params,n);e._handler(t.args[t.i]).fold(f,t,void 0,n)}function f(e,t,r){e.params[e.i]=t,e.i-=1,i(e,r)}}function t(e,t,r,n){try{n.resolve(e.apply(t,r))}catch(e){n.reject(e)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],12:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../state"),r=e("../apply");return function(e){var n=r(e),i=e.resolve,f=e.all,o=Array.prototype.reduce,a=Array.prototype.reduceRight,s=Array.prototype.slice;return e.any=c,e.some=u,e.settle=p,e.map=l,e.filter=d,e.reduce=y,e.reduceRight=m,e.prototype.spread=function(e){return this.then(f).then((function(t){return e.apply(this,t)}))},e;function c(t){for(var r,n,i=e._defer(),f=i._handler,o=t.length>>>0,a=o,s=[],c=0;c<o;++c)if(void 0!==(n=t[c])||c in t){if((r=e._handler(n)).state()>0){f.become(r),e._visitRemaining(t,c,r);break}r.visit(f,u,l)}else--a;return 0===a&&f.reject(new RangeError("any(): array must not be empty")),i;function u(e){s=null,this.resolve(e)}function l(e){this.resolved||(s.push(e),0==--a&&this.reject(s))}}function u(t,r){var n,i,f,o=e._defer(),a=o._handler,s=[],c=[],u=t.length>>>0,l=0;for(f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&++l;for(r=Math.max(r,0),n=l-r+1,r>(l=Math.min(r,l))?a.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+l)):0===l&&a.resolve(s),f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&e._handler(i).visit(a,d,h,a.notify);return o;function d(e){this.resolved||(s.push(e),0==--l&&(c=null,this.resolve(s)))}function h(e){this.resolved||(c.push(e),0==--n&&(s=null,this.reject(c)))}}function l(t,r){return e._traverse(r,t)}function d(t,r){var n=s.call(t);return e._traverse(r,n).then((function(e){return h(n,e)}))}function h(t,r){for(var n=r.length,i=new Array(n),f=0,o=0;f<n;++f)r[f]&&(i[o++]=e._handler(t[f]).value);return i.length=o,i}function p(e){return f(e.map(b))}function b(r){var n;return r instanceof e&&(n=r._handler.join()),n&&0===n.state()||!n?i(r).then(t.fulfilled,t.rejected):(n._unreport(),t.inspect(n))}function y(e,t){return arguments.length>2?o.call(e,g(t),arguments[2]):o.call(e,g(t))}function m(e,t){return arguments.length>2?a.call(e,g(t),arguments[2]):a.call(e,g(t))}function g(e){return function(t,r,i){return n(e,void 0,[t,r,i])}}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../apply":11,"../state":25}],13:[function(t,r,n){!function(e){"use strict";e((function(){return function(r){var f=r.resolve,o=r.reject,a=r.prototype.catch;function s(e,r){return function(n){return t(n,r)?e.call(this,n):o(n)}}function c(e,t,r,i){var f=e.call(t);return n(f)?u(f,r,i):r(i)}function u(e,t,r){return f(e).then((function(){return t(r)}))}return r.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},r.prototype.catch=r.prototype.otherwise=function(t){return arguments.length<2?a.call(this,t):"function"!=typeof t?this.ensure(e):a.call(this,s(arguments[1],t))},r.prototype.finally=r.prototype.ensure=function(e){return"function"!=typeof e?this:this.then((function(t){return c(e,this,i,t)}),(function(t){return c(e,this,o,t)}))},r.prototype.else=r.prototype.orElse=function(e){return this.then(void 0,(function(){return e}))},r.prototype.yield=function(e){return this.then((function(){return e}))},r.prototype.tap=function(e){return this.then(e).yield(this)},r};function e(){throw new TypeError("catch predicate must be a function")}function t(e,t){return r(t)?e instanceof t:t(e)}function r(e){return e===Error||null!=e&&e.prototype instanceof Error}function n(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function i(e){return e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],14:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){return e.prototype.fold=function(t,r){var n=this._beget();return this._handler.fold((function(r,n,i){e._handler(r).fold((function(e,r,n){n.resolve(t.call(this,r,e))}),n,this,i)}),r,n._handler.receiver,n._handler),n},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],15:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../state").inspect;return function(e){return e.prototype.inspect=function(){return t(e._handler(this))},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../state":25}],16:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){var t=e.resolve;return e.iterate=r,e.unfold=n,e;function r(e,t,r,i){return n((function(t){return[t,e(t)]}),t,r,i)}function n(e,r,i,f){return t(f).then((function(n){return t(r(n)).then((function(r){return r?n:t(e(n)).spread(o)}))}));function o(f,o){return t(i(f)).then((function(){return n(e,r,i,o)}))}}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],17:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){return e.prototype.progress=function(e){return this.then(void 0,void 0,e)},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],18:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../env"),r=e("../TimeoutError");function n(e,r,n,i){return t.setTimer((function(){e(n,i,r)}),r)}return function(e){function i(e,t,r){n(f,e,t,r)}function f(e,t){t.resolve(e)}function o(e,t,n){var i=void 0===e?new r("timed out after "+n+"ms"):e;t.reject(i)}return e.prototype.delay=function(e){var t=this._beget();return this._handler.fold(i,e,void 0,t._handler),t},e.prototype.timeout=function(e,r){var i=this._beget(),f=i._handler,a=n(o,e,r,i._handler);return this._handler.visit(f,(function(e){t.clearTimer(a),this.resolve(e)}),(function(e){t.clearTimer(a),this.reject(e)}),f.notify),i},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../TimeoutError":10,"../env":21}],19:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../env").setTimer,r=e("../format");return function(e){var f,o=i,a=i;"undefined"!=typeof console&&(f=console,o=void 0!==f.error?function(e){f.error(e)}:function(e){f.log(e)},a=void 0!==f.info?function(e){f.info(e)}:function(e){f.log(e)}),e.onPotentiallyUnhandledRejection=function(e){h(l,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){h(d,e)},e.onFatalRejection=function(e){h(n,e.value)};var s=[],c=[],u=null;function l(e){e.handled||(c.push(e),o("Potentially unhandled rejection ["+e.id+"] "+r.formatError(e.value)))}function d(e){var t=c.indexOf(e);t>=0&&(c.splice(t,1),a("Handled previous rejection ["+e.id+"] "+r.formatObject(e.value)))}function h(e,r){s.push(e,r),null===u&&(u=t(p,0))}function p(){for(u=null;s.length>0;)s.shift()(s.shift())}return e};function n(e){throw e}function i(){}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../env":21,"../format":22}],20:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){return e.prototype.with=e.prototype.withThis=function(e){var t=this._beget(),r=t._handler;return r.receiver=e,this._handler.chain(r,e),t},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],21:[function(r,n,i){!function(e){"use strict";e((function(e){var r,n="undefined"!=typeof setTimeout&&setTimeout,i=function(e,t){return setTimeout(e,t)},f=function(e){return clearTimeout(e)},o=function(e){return n(e,0)};if(s())o=function(e){return t.nextTick(e)};else if(r=c())o=u(r);else if(!n){var a=e("vertx");i=function(e,t){return a.setTimer(t,e)},f=a.cancelTimer,o=a.runOnLoop||a.runOnContext}return{setTimer:i,clearTimer:f,asap:o};function s(){return void 0!==t&&"[object process]"===Object.prototype.toString.call(t)}function c(){return"undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver}function u(e){var t,r=document.createTextNode("");function n(){var e=t;t=void 0,e()}new e(n).observe(r,{characterData:!0});var i=0;return function(e){t=e,r.data=i^=1}}}))}("function"==typeof e&&e.amd?e:function(e){n.exports=e(r)})},{}],22:[function(t,r,n){!function(e){"use strict";e((function(){return{formatError:e,formatObject:t,tryStringify:r};function e(e){var r="object"==typeof e&&null!==e&&(e.stack||e.message)?e.stack||e.message:t(e);return e instanceof Error?r:r+" (WARNING: non-Error used)"}function t(e){var t=String(e);return"[object Object]"===t&&"undefined"!=typeof JSON&&(t=r(e,t)),t}function r(e,t){try{return JSON.stringify(e)}catch(e){return t}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],23:[function(t,r,n){!function(e){"use strict";e((function(){return function(r,n,i,f){return void 0===n&&(n=e),Object.keys(f).reduce((function(e,t){var i=f[t];return"function"==typeof i?n(e,r(i),t):e}),void 0===i?t(f):i)};function e(e,t,r){return e[r]=t,e}function t(e){return"function"==typeof e?e.bind():Object.create(e)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],24:[function(r,n,i){!function(e){"use strict";e((function(){return function(e){var r=e.scheduler,n=re(),i=Object.create||function(e){function t(){}return t.prototype=e,new t};function f(e,t){this._handler=e===A?t:o(e)}function o(e){var t=new x;try{e(r,n,i)}catch(e){n(e)}return t;function r(e){t.resolve(e)}function n(e){t.reject(e)}function i(e){t.notify(e)}}function a(e){return z(e)?e:new f(A,new P(_(e)))}function s(e){return new f(A,new P(new O(e)))}function c(){return D}function u(){return new f(A,new x)}function l(e,t){return new t(A,new x(e.receiver,e.join().context))}function d(e){return p(Z,null,e)}function h(e,t){return p(W,e,t)}function p(e,t,r){for(var n,i="function"==typeof t?u:l,o=new x,a=r.length>>>0,s=new Array(a),c=0;c<r.length&&!o.resolved;++c)void 0!==(n=r[c])||c in r?b(r,i,c,n,o):--a;return 0===a&&o.become(new k(s)),new f(A,o);function u(n,i,f){f.resolved||b(r,l,n,e(t,i,n),f)}function l(e,t,r){s[e]=t,0==--a&&r.become(new k(s))}}function b(e,t,r,n,i){if(H(n)){var f=w(n),o=f.state();0===o?f.fold(t,r,void 0,i):o>0?t(r,f.value,i):(i.become(f),y(e,r+1,f))}else t(r,n,i)}function y(e,t,r){for(var n=t;n<e.length;++n)m(_(e[n]),r)}function m(e,t){if(e!==t){var r=e.state();0===r?e.visit(e,void 0,e._unreport):r<0&&e._unreport()}}function g(e){return"object"!=typeof e||null===e?s(new TypeError("non-iterable passed to race()")):0===e.length?c():1===e.length?a(e[0]):v(e)}function v(e){var t,r,n,i=new x;for(t=0;t<e.length;++t)if(void 0!==(r=e[t])||t in e){if(0!==(n=_(r)).state()){i.become(n),y(e,t+1,n);break}n.visit(i,i.resolve,i.reject)}return new f(A,i)}function _(e){return z(e)?e._handler.join():H(e)?E(e):new k(e)}function w(e){return z(e)?e._handler.join():E(e)}function E(e){try{var t=e.then;return"function"==typeof t?new R(t,e):new k(e)}catch(e){return new O(e)}}function A(){}function S(){}f.resolve=a,f.reject=s,f.never=c,f._defer=u,f._handler=_,f.prototype.then=function(e,t,r){var n=this._handler,i=n.join().state();if("function"!=typeof e&&i>0||"function"!=typeof t&&i<0)return new this.constructor(A,n);var f=this._beget(),o=f._handler;return n.chain(o,n.receiver,e,t,r),f},f.prototype.catch=function(e){return this.then(void 0,e)},f.prototype._beget=function(){return l(this._handler,this.constructor)},f.all=d,f.race=g,f._traverse=h,f._visitRemaining=y,A.prototype.when=A.prototype.become=A.prototype.notify=A.prototype.fail=A.prototype._unreport=A.prototype._report=Q,A.prototype._state=0,A.prototype.state=function(){return this._state},A.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},A.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},A.prototype.visit=function(e,t,r,n){this.chain(T,e,t,r,n)},A.prototype.fold=function(e,t,r,n){this.when(new q(e,t,r,n))},X(A,S),S.prototype.become=function(e){e.fail()};var T=new S;function x(e,t){f.createContext(this,t),this.consumers=void 0,this.receiver=e,this.handler=void 0,this.resolved=!1}function P(e){this.handler=e}function R(e,t){x.call(this),r.enqueue(new L(e,t,this))}function k(e){f.createContext(this),this.value=e}X(A,x),x.prototype._state=0,x.prototype.resolve=function(e){this.become(_(e))},x.prototype.reject=function(e){this.resolved||this.become(new O(e))},x.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=B();return e},x.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r<e.length;++r)t.when(e[r])},x.prototype.become=function(e){this.resolved||(this.resolved=!0,this.handler=e,void 0!==this.consumers&&r.enqueue(this),void 0!==this.context&&e._report(this.context))},x.prototype.when=function(e){this.resolved?r.enqueue(new F(e,this.handler)):void 0===this.consumers?this.consumers=[e]:this.consumers.push(e)},x.prototype.notify=function(e){this.resolved||r.enqueue(new j(e,this))},x.prototype.fail=function(e){var t=void 0===e?this.context:e;this.resolved&&this.handler.join().fail(t)},x.prototype._report=function(e){this.resolved&&this.handler.join()._report(e)},x.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},X(A,P),P.prototype.when=function(e){r.enqueue(new F(e,this))},P.prototype._report=function(e){this.join()._report(e)},P.prototype._unreport=function(){this.join()._unreport()},X(x,R),X(A,k),k.prototype._state=1,k.prototype.fold=function(e,t,r,n){V(e,t,this,r,n)},k.prototype.when=function(e){G(e.fulfilled,this,e.receiver,e.resolver)};var C=0;function O(e){f.createContext(this),this.id=++C,this.value=e,this.handled=!1,this.reported=!1,this._report()}function M(e,t){this.rejection=e,this.context=t}function N(e){this.rejection=e}X(A,O),O.prototype._state=-1,O.prototype.fold=function(e,t,r,n){n.become(this)},O.prototype.when=function(e){"function"==typeof e.rejected&&this._unreport(),G(e.rejected,this,e.receiver,e.resolver)},O.prototype._report=function(e){r.afterQueue(new M(this,e))},O.prototype._unreport=function(){this.handled||(this.handled=!0,r.afterQueue(new N(this)))},O.prototype.fail=function(e){this.reported=!0,n("unhandledRejection",this),f.onFatalRejection(this,void 0===e?this.context:e)},M.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,n("unhandledRejection",this.rejection)||f.onPotentiallyUnhandledRejection(this.rejection,this.context))},N.prototype.run=function(){this.rejection.reported&&(n("rejectionHandled",this.rejection)||f.onPotentiallyUnhandledRejectionHandled(this.rejection))},f.createContext=f.enterContext=f.exitContext=f.onPotentiallyUnhandledRejection=f.onPotentiallyUnhandledRejectionHandled=f.onFatalRejection=Q;var I=new A,D=new f(A,I);function B(){return new O(new TypeError("Promise cycle"))}function F(e,t){this.continuation=e,this.handler=t}function j(e,t){this.handler=t,this.value=e}function L(e,t,r){this._then=e,this.thenable=t,this.resolver=r}function U(e,t,r,n,i){try{e.call(t,r,n,i)}catch(e){n(e)}}function q(e,t,r,n){this.f=e,this.z=t,this.c=r,this.to=n,this.resolver=T,this.receiver=this}function z(e){return e instanceof f}function H(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function G(e,t,r,n){if("function"!=typeof e)return n.become(t);f.enterContext(t),$(e,t.value,r,n),f.exitContext()}function V(e,t,r,n,i){if("function"!=typeof e)return i.become(r);f.enterContext(r),Y(e,t,r.value,n,i),f.exitContext()}function K(e,t,r,n,i){if("function"!=typeof e)return i.notify(t);f.enterContext(r),J(e,t,n,i),f.exitContext()}function W(e,t,r){try{return e(t,r)}catch(e){return s(e)}}function $(e,t,r,n){try{n.become(_(e.call(r,t)))}catch(e){n.become(new O(e))}}function Y(e,t,r,n,i){try{e.call(n,t,r,i)}catch(e){i.become(new O(e))}}function J(e,t,r,n){try{n.notify(e.call(r,t))}catch(e){n.notify(e)}}function X(e,t){t.prototype=i(e.prototype),t.prototype.constructor=t}function Z(e,t){return t}function Q(){}function ee(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(e){}return!1}function te(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}function re(){return null!=t&&"function"==typeof t.emit?function(e,r){return"unhandledRejection"===e?t.emit(e,r.value,r):t.emit(e,r)}:"undefined"!=typeof self&&ee()?function(e,t){return function(r,n){var i=new t(r,{detail:{reason:n.value,key:n},bubbles:!1,cancelable:!0});return!e.dispatchEvent(i)}}(self,CustomEvent):"undefined"!=typeof self&&te()?function(e,t){return function(r,n){var i=t.createEvent("CustomEvent");return i.initCustomEvent(r,!1,!0,{reason:n.value,key:n}),!e.dispatchEvent(i)}}(self,document):Q}return F.prototype.run=function(){this.handler.join().when(this.continuation)},j.prototype.run=function(){var e=this.handler.consumers;if(void 0!==e)for(var t,r=0;r<e.length;++r)K((t=e[r]).progress,this.value,this.handler,t.receiver,t.resolver)},L.prototype.run=function(){var e=this.resolver;function t(t){e.resolve(t)}function r(t){e.reject(t)}function n(t){e.notify(t)}U(this._then,this.thenable,t,r,n)},q.prototype.fulfilled=function(e){this.f.call(this.c,this.z,e,this.to)},q.prototype.rejected=function(e){this.to.reject(e)},q.prototype.progress=function(e){this.to.notify(e)},f}}))}("function"==typeof e&&e.amd?e:function(e){n.exports=e()})},{}],25:[function(t,r,n){!function(e){"use strict";e((function(){return{pending:e,fulfilled:r,rejected:t,inspect:n};function e(){return{state:"pending"}}function t(e){return{state:"rejected",reason:e}}function r(e){return{state:"fulfilled",value:e}}function n(n){var i=n.state();return 0===i?e():i>0?r(n.value):t(n.value)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],26:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=e("./lib/liftAll"),n=e("./lib/env").setTimer,i=Array.prototype.slice,f=e("./lib/apply")(t.Promise,a);return{lift:c,liftAll:u,apply:o,call:s,createCallback:l,bindCallback:d,liftCallback:h};function o(e,t){return f(e,this,t||[])}function a(e,t,r,n){var i=l(n);try{switch(r.length){case 2:e.call(t,r[0],r[1],i);break;case 1:e.call(t,r[0],i);break;case 0:e.call(t,i);break;default:r.push(i),e.apply(t,r)}}catch(e){n.reject(e)}}function s(e){return f(e,this,i.call(arguments,1))}function c(e){var t=arguments.length>1?i.call(arguments,1):[];return function(){var r,n=t.length,i=arguments.length,o=new Array(i+n);for(r=0;r<n;++r)o[r]=t[r];for(r=0;r<i;++r)o[r+n]=arguments[r];return f(e,this,o)}}function u(e,t,n){return r(c,t,n,e)}function l(e){return function(t,r){t?e.reject(t):arguments.length>2?e.resolve(i.call(arguments,1)):e.resolve(r)}}function d(e,r){return e=t(e),r&&e.then(i,f),e;function i(e){f(null,e)}function f(e,t){n((function(){r(e,t)}),0)}}function h(e){return function(t){return d(t,e)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/apply":11,"./lib/env":21,"./lib/liftAll":23,"./when":32}],27:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.Promise.all,n=Array.prototype.slice;return function(e){return r(n.call(arguments,1)).then((function(r){return t.map(e,(function(e){return e.apply(void 0,r)}))}))}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],28:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.Promise.all,n=Array.prototype.slice;return function(e){var i=function(e,t){return i=function(e,t){return t(e)},t.apply(null,e)};return r(n.call(arguments,1)).then((function(r){return t.reduce(e,(function(e,t){return i(e,t)}),r)}))}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],29:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("./when"),r=t.try,n=e("./cancelable");return function(e,i,f,o){var a,s,c;function u(e){a.resolve(e)}function l(e){r(i).then(d,c),void 0!==e&&a.notify(e)}function d(){s||t(e(),(function(e){t(f(e),(function(t){return t?u(e):l(e)}),(function(){l(e)}))}),c)}return s=!1,a=n(t.defer(),(function(){s=!0})),c=a.reject,f=f||function(){return!1},"function"!=typeof i&&(i=function(e){return function(){return t().delay(e)}}(i)),o?l():d(),a.promise=Object.create(a.promise),a.promise.cancel=a.cancel,a.promise}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./cancelable":3,"./when":32}],30:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.Promise.all,n=Array.prototype.slice;return function(e){var i=[];return r(n.call(arguments,1)).then((function(r){return t.reduce(e,(function(e,n){return t(n.apply(void 0,r),f)}),i)}));function f(e){return i.push(e),i}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],31:[function(t,r,n){!function(e){e((function(e){var t=e("./when");return function(e,r){return t(r).timeout(e)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],32:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("./lib/decorators/timed"),r=e("./lib/decorators/array"),n=e("./lib/decorators/flow"),i=e("./lib/decorators/fold"),f=e("./lib/decorators/inspect"),o=e("./lib/decorators/iterate"),a=e("./lib/decorators/progress"),s=e("./lib/decorators/with"),c=e("./lib/decorators/unhandledRejection"),u=e("./lib/TimeoutError"),l=[r,n,i,o,a,f,s,t,c].reduce((function(e,t){return t(e)}),e("./lib/Promise")),d=e("./lib/apply")(l);function h(e,t,r,n){var i=l.resolve(e);return arguments.length<2?i:i.then(t,r,n)}function p(e){return new l(e)}function b(e){return function(){for(var t=0,r=arguments.length,n=new Array(r);t<r;++t)n[t]=arguments[t];return d(e,this,n)}}function y(e){for(var t=0,r=arguments.length-1,n=new Array(r);t<r;++t)n[t]=arguments[t+1];return d(e,this,n)}function m(){return new g}function g(){var e=l._defer();function t(t){e._handler.resolve(t)}function r(t){e._handler.reject(t)}function n(t){e._handler.notify(t)}this.promise=e,this.resolve=t,this.reject=r,this.notify=n,this.resolver={resolve:t,reject:r,notify:n}}function v(e){return e&&"function"==typeof e.then}function _(){return l.all(arguments)}function w(e){return h(e,l.all)}function E(e){return h(e,l.settle)}function A(e,t){return h(e,(function(e){return l.map(e,t)}))}function S(e,t){return h(e,(function(e){return l.filter(e,t)}))}return h.promise=p,h.resolve=l.resolve,h.reject=l.reject,h.lift=b,h.try=y,h.attempt=y,h.iterate=l.iterate,h.unfold=l.unfold,h.join=_,h.all=w,h.settle=E,h.any=b(l.any),h.some=b(l.some),h.race=b(l.race),h.map=A,h.filter=S,h.reduce=b(l.reduce),h.reduceRight=b(l.reduceRight),h.isPromiseLike=v,h.Promise=l,h.defer=m,h.TimeoutError=u,h}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/Promise":8,"./lib/TimeoutError":10,"./lib/apply":11,"./lib/decorators/array":12,"./lib/decorators/flow":13,"./lib/decorators/fold":14,"./lib/decorators/inspect":15,"./lib/decorators/iterate":16,"./lib/decorators/progress":17,"./lib/decorators/timed":18,"./lib/decorators/unhandledRejection":19,"./lib/decorators/with":20}]},{},[1])(1)}()}).call(this,r(10))},function(e,t,r){function n(){this._repository={}}n.prototype.register=function(e,t){this._repository[e]=t},n.prototype.isRegistered=function(e){return!!this._repository[e]},n.prototype.get=function(e){if(void 0!==this._repository[e])return this._repository[e];throw"no such transport: "+e},n.prototype.list=function(){var e=[];for(var t in this._repository)e.push(t);return e};var i=new n,f=r(646);i.register("websocket",f.Factory);var o=r(648);i.register("longpoll",o.Factory);var a=r(649);i.register("rawsocket",a.Factory),t.transports=i},function(e,t,r){(function(e){var n=r(56),i=r(33),f=r(127);function o(e){n.assert(void 0!==e.url,"options.url missing"),n.assert("string"==typeof e.url,"options.url must be a string"),e.serializers?n.assert(Array.isArray(e.serializers),"options.serializers must be an array"):(e.serializers=[new f.JSONSerializer],f.MsgpackSerializer&&e.serializers.push(new f.MsgpackSerializer)),e.protocols?n.assert(Array.isArray(e.protocols),"options.protocols must be an array"):(e.protocols=[],e.serializers.forEach((function(t){e.protocols.push("wamp.2."+t.SERIALIZER_ID)}))),e.autoping_interval?(n.assert(e.autoping_interval>0,"options.autoping_interval must be greater than 0"),e.autoping_interval=1e3*e.autoping_interval):e.autoping_interval=1e4,e.autoping_timeout?(n.assert(e.autoping_timeout>0,"options.autoping_timeout must be greater than 0"),e.autoping_timeout=1e3*e.autoping_timeout):e.autoping_timeout=5e3,e.autoping_size?n.assert(e.autoping_size>=4&&e.autoping_size<=125,"options.autoping_size must be between 4 and 125"):e.autoping_size=4,this._options=e}o.prototype.type="websocket",o.prototype.create=function(){var t,n=this,f={};return f.protocol=void 0,f.serializer=void 0,f.send=void 0,f.close=void 0,f.onmessage=function(){},f.onopen=function(){},f.onclose=function(){},f.info={type:"websocket",url:n._options.url,protocol:null},"WebSocket"in e?((t=n._options.protocols?new e.WebSocket(n._options.url,n._options.protocols):new e.WebSocket(n._options.url)).binaryType="arraybuffer",t.onmessage=function(e){i.debug("WebSocket transport receive",e.data);var t=f.serializer.unserialize(e.data);f.onmessage(t)},t.onopen=function(){var e=t.protocol.split(".")[2];for(var r in n._options.serializers){var i=n._options.serializers[r];if(i.SERIALIZER_ID==e){f.serializer=i;break}}f.info.protocol=t.protocol,f.onopen()},t.onclose=function(e){var t={code:e.code,reason:e.message,wasClean:e.wasClean};f.onclose(t)},f.send=function(e){var r=f.serializer.serialize(e);i.debug("WebSocket transport send",r),t.send(r)},f.close=function(e,r){t.close(e,r)}):function(){var e,t,o,a,s=r(647),c=r(126).randomBytes,u={agent:n._options.agent,headers:n._options.headers};function l(){a=new Date}n._options.protocols&&(t=n._options.protocols,Array.isArray(t)&&(t=t.join(",")),u.protocol=t),n._options.url.startsWith("wss://")&&n._options.tlsConfiguration?n._options.tlsConfiguration.ca&&n._options.tlsConfiguration.cert&&n._options.tlsConfiguration.key?(i.debug("Using TLS Client Authentication."),u.ca=n._options.tlsConfiguration.ca,u.cert=n._options.tlsConfiguration.cert,u.key=n._options.tlsConfiguration.key,u.rejectUnauthorized=!1):i.debug("Not using TLS Client Authentication. tlsConfiguration should include 'ca' 'cert' and 'key' parameters."):i.debug("Not using TLS Client Authentication."),e=new s(n._options.url,t,u),f.send=function(t){var r=f.serializer.serialize(t);e.send(r,{binary:f.serializer.BINARY})},f.close=function(t,r){e.close()},e.on("open",(function(){l();var t=e.protocol.split(".")[2];for(var r in n._options.serializers){var i=n._options.serializers[r];if(i.SERIALIZER_ID==t){f.serializer=i;break}}f.info.protocol=e.protocol,e.isAlive=!0,o=setInterval((function(){if(!1===e.isAlive)return clearInterval(o),e.terminate();new Date-a<n._options.autoping_interval||(e.isAlive=!1,e.ping(c(n._options.autoping_size)))}),n._options.autoping_interval),f.onopen()})),e.on("pong",(function(){l(),this.isAlive=!0})),e.on("message",(function(e,t){l();var r=f.serializer.unserialize(e);f.onmessage(r)})),e.on("close",(function(e,t){null!=o&&clearInterval(o);var r={code:e,reason:t,wasClean:1e3===e};f.onclose(r)})),e.on("error",(function(e){null!=o&&clearInterval(o);f.onclose({code:1006,reason:"",wasClean:!1})}))}(),f},t.Factory=o}).call(this,r(12))},function(e,t){},function(e,t,r){var n=r(56),i=r(33),f=r(127);function o(e){n.assert(void 0!==e.url,"options.url missing"),n.assert("string"==typeof e.url,"options.url must be a string"),this._options=e}o.prototype.type="longpoll",o.prototype.create=function(){var e=this;i.debug("longpoll.Factory.create");var t={protocol:void 0};return t.serializer=new f.JSONSerializer,t.send=void 0,t.close=void 0,t.onmessage=function(){},t.onopen=function(){},t.onclose=function(){},t.info={type:"longpoll",url:null,protocol:"wamp.2.json"},t._run=function(){var r=null,f=!1,o=e._options.request_timeout||12e3;n.http_post(e._options.url+"/open",JSON.stringify({protocols:["wamp.2.json"]}),o).then((function(a){r=JSON.parse(a);var s=e._options.url+"/"+r.transport;t.info.url=s,i.debug("longpoll.Transport: open",r),t.close=function(e,r){if(f)throw"transport is already closing";f=!0,n.http_post(s+"/close",null,o).then((function(){i.debug("longpoll.Transport: transport closed");t.onclose({code:1e3,reason:"transport closed",wasClean:!0})}),(function(e){i.debug("longpoll.Transport: could not close transport",e.code,e.text)}))},t.send=function(e){if(f)throw"transport is closing or closed already";1,i.debug("longpoll.Transport: sending message ...",e);var r=JSON.stringify(e);n.http_post(s+"/send",r,o).then((function(){i.debug("longpoll.Transport: message sent")}),(function(e){i.debug("longpoll.Transport: could not send message",e.code,e.text),f=!0;var r={code:1001,reason:"transport send failure (HTTP/POST status "+e.code+" - '"+e.text+"')",wasClean:!1};t.onclose(r)}))},function e(){1,i.debug("longpoll.Transport: polling for message ..."),n.http_post(s+"/receive",null,o).then((function(r){if(r){var n=JSON.parse(r);i.debug("longpoll.Transport: message received",n),t.onmessage(n)}f||e()}),(function(e){i.debug("longpoll.Transport: could not receive message",e.code,e.text),f=!0;var r={code:1001,reason:"transport receive failure (HTTP/POST status "+e.code+" - '"+e.text+"')",wasClean:!1};t.onclose(r)}))}(),t.onopen()}),(function(e){i.debug("longpoll.Transport: could not open transport",e.code,e.text),f=!0;var r={code:1001,reason:"transport open failure (HTTP/POST status "+e.code+" - '"+e.text+"')",wasClean:!1};t.onclose(r)}))},t._run(),t},t.Factory=o},function(e,t){},function(e,t){t.auth=function(e,t,r){var n=e.defer();return navigator.id.watch({loggedInUser:t,onlogin:function(e){n.resolve(e)},onlogout:function(){e.leave("wamp.close.logout")}}),n.promise.then?n.promise:n}},function(e,t,r){var n=r(652);t.sign=function(e,t){return n.HmacSHA256(t,e).toString(n.enc.Base64)},t.derive_key=function(e,t,r,i){var f={keySize:(i=i||32)/4,iterations:r=r||1e3,hasher:n.algo.SHA256};return n.PBKDF2(e,t,f).toString(n.enc.Base64)}},function(e,t,r){var n;e.exports=(n=r(14),r(90),r(654),r(655),r(57),r(656),r(58),r(128),r(253),r(657),r(254),r(658),r(659),r(660),r(129),r(661),r(38),r(18),r(662),r(663),r(664),r(665),r(666),r(667),r(668),r(669),r(670),r(671),r(672),r(673),r(674),r(675),r(676),r(677),n)},function(e,t){},function(e,t,r){var n;e.exports=(n=r(14),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init;(e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var r=e.byteLength,n=[],i=0;i<r;i++)n[i>>>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),n.lib.WordArray)},function(e,t,r){var n;e.exports=(n=r(14),function(){var e=n,t=e.lib.WordArray,r=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i+=2){var f=t[i>>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(f))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i<r;i++)n[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},r.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],f=0;f<r;f+=2){var o=i(t[f>>>2]>>>16-f%4*8&65535);n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,n=[],f=0;f<r;f++)n[f>>>1]|=i(e.charCodeAt(f)<<16-f%2*16);return t.create(n,2*r)}}}(),n.enc.Utf16)},function(e,t,r){var n;e.exports=(n=r(14),function(){var e=n,t=e.lib.WordArray;function r(e,r,n){for(var i=[],f=0,o=0;o<r;o++)if(o%4){var a=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;i[f>>>2]|=a<<24-f%4*8,f++}return t.create(i,f)}e.enc.Base64url={stringify:function(e,t=!0){var r=e.words,n=e.sigBytes,i=t?this._safe_map:this._map;e.clamp();for(var f=[],o=0;o<n;o+=3)for(var a=(r[o>>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<n;s++)f.push(i.charAt(a>>>6*(3-s)&63));var c=i.charAt(64);if(c)for(;f.length%4;)f.push(c);return f.join("")},parse:function(e,t=!0){var n=e.length,i=t?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var o=0;o<i.length;o++)f[i.charCodeAt(o)]=o}var a=i.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(n=s)}return r(e,n,f)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),n.enc.Base64url)},function(e,t,r){var n,i,f,o,a,s;e.exports=(s=r(14),r(253),i=(n=s).lib.WordArray,f=n.algo,o=f.SHA256,a=f.SHA224=o.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=o._createHelper(a),n.HmacSHA224=o._createHmacHelper(a),s.SHA224)},function(e,t,r){var n,i,f,o,a,s,c,u;e.exports=(u=r(14),r(90),r(254),i=(n=u).x64,f=i.Word,o=i.WordArray,a=n.algo,s=a.SHA512,c=a.SHA384=s.extend({_doReset:function(){this._hash=new o.init([new f.init(3418070365,3238371032),new f.init(1654270250,914150663),new f.init(2438529370,812702999),new f.init(355462360,4144912697),new f.init(1731405415,4290775857),new f.init(2394180231,1750603025),new f.init(3675008525,1694076839),new f.init(1203062813,3204075428)])},_doFinalize:function(){var e=s._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=s._createHelper(c),n.HmacSHA384=s._createHmacHelper(c),u.SHA384)},function(e,t,r){var n;e.exports=(n=r(14),r(90),function(e){var t=n,r=t.lib,i=r.WordArray,f=r.Hasher,o=t.x64.Word,a=t.algo,s=[],c=[],u=[];!function(){for(var e=1,t=0,r=0;r<24;r++){s[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,f=0;f<24;f++){for(var a=0,l=0,d=0;d<7;d++){if(1&i){var h=(1<<d)-1;h<32?l^=1<<h:a^=1<<h-32}128&i?i=i<<1^113:i<<=1}u[f]=o.create(a,l)}}();var l=[];!function(){for(var e=0;e<25;e++)l[e]=o.create()}();var d=a.SHA3=f.extend({cfg:f.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var r=this._state,n=this.blockSize/2,i=0;i<n;i++){var f=e[t+2*i],o=e[t+2*i+1];f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(R=r[i]).high^=o,R.low^=f}for(var a=0;a<24;a++){for(var d=0;d<5;d++){for(var h=0,p=0,b=0;b<5;b++)h^=(R=r[d+5*b]).high,p^=R.low;var y=l[d];y.high=h,y.low=p}for(d=0;d<5;d++){var m=l[(d+4)%5],g=l[(d+1)%5],v=g.high,_=g.low;for(h=m.high^(v<<1|_>>>31),p=m.low^(_<<1|v>>>31),b=0;b<5;b++)(R=r[d+5*b]).high^=h,R.low^=p}for(var w=1;w<25;w++){var E=(R=r[w]).high,A=R.low,S=s[w];S<32?(h=E<<S|A>>>32-S,p=A<<S|E>>>32-S):(h=A<<S-32|E>>>64-S,p=E<<S-32|A>>>64-S);var T=l[c[w]];T.high=h,T.low=p}var x=l[0],P=r[0];for(x.high=P.high,x.low=P.low,d=0;d<5;d++)for(b=0;b<5;b++){var R=r[w=d+5*b],k=l[w],C=l[(d+1)%5+5*b],O=l[(d+2)%5+5*b];R.high=k.high^~C.high&O.high,R.low=k.low^~C.low&O.low}R=r[0];var M=u[a];R.high^=M.high,R.low^=M.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),f=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/f)*f>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var o=this._state,a=this.cfg.outputLength/8,s=a/8,c=[],u=0;u<s;u++){var l=o[u],d=l.high,h=l.low;d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8),c.push(h),c.push(d)}return new i.init(c,a)},clone:function(){for(var e=f.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=f._createHelper(d),t.HmacSHA3=f._createHmacHelper(d)}(Math),n.SHA3)},function(e,t,r){var n;e.exports=(n=r(14),function(e){var t=n,r=t.lib,i=r.WordArray,f=r.Hasher,o=t.algo,a=i.create([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]),s=i.create([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]),c=i.create([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=i.create([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=i.create([0,1518500249,1859775393,2400959708,2840853838]),d=i.create([1352829926,1548603684,1836072691,2053994217,0]),h=o.RIPEMD160=f.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var f,o,h,_,w,E,A,S,T,x,P,R=this._hash.words,k=l.words,C=d.words,O=a.words,M=s.words,N=c.words,I=u.words;for(E=f=R[0],A=o=R[1],S=h=R[2],T=_=R[3],x=w=R[4],r=0;r<80;r+=1)P=f+e[t+O[r]]|0,P+=r<16?p(o,h,_)+k[0]:r<32?b(o,h,_)+k[1]:r<48?y(o,h,_)+k[2]:r<64?m(o,h,_)+k[3]:g(o,h,_)+k[4],P=(P=v(P|=0,N[r]))+w|0,f=w,w=_,_=v(h,10),h=o,o=P,P=E+e[t+M[r]]|0,P+=r<16?g(A,S,T)+C[0]:r<32?m(A,S,T)+C[1]:r<48?y(A,S,T)+C[2]:r<64?b(A,S,T)+C[3]:p(A,S,T)+C[4],P=(P=v(P|=0,I[r]))+x|0,E=x,x=T,T=v(S,10),S=A,A=P;P=R[1]+h+T|0,R[1]=R[2]+_+x|0,R[2]=R[3]+w+E|0,R[3]=R[4]+f+A|0,R[4]=R[0]+o+S|0,R[0]=P},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,f=i.words,o=0;o<5;o++){var a=f[o];f[o]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var e=f.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,t,r){return e^t^r}function b(e,t,r){return e&t|~e&r}function y(e,t,r){return(e|~t)^r}function m(e,t,r){return e&r|t&~r}function g(e,t,r){return e^(t|~r)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=f._createHelper(h),t.HmacRIPEMD160=f._createHmacHelper(h)}(Math),n.RIPEMD160)},function(e,t,r){var n,i,f,o,a,s,c,u,l;e.exports=(l=r(14),r(128),r(129),i=(n=l).lib,f=i.Base,o=i.WordArray,a=n.algo,s=a.SHA1,c=a.HMAC,u=a.PBKDF2=f.extend({cfg:f.extend({keySize:4,hasher:s,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r=this.cfg,n=c.create(r.hasher,e),i=o.create(),f=o.create([1]),a=i.words,s=f.words,u=r.keySize,l=r.iterations;a.length<u;){var d=n.update(t).finalize(f);n.reset();for(var h=d.words,p=h.length,b=d,y=1;y<l;y++){b=n.finalize(b),n.reset();for(var m=b.words,g=0;g<p;g++)h[g]^=m[g]}i.concat(d),s[0]++}return i.sigBytes=4*u,i}}),n.PBKDF2=function(e,t,r){return u.create(r).compute(e,t)},l.PBKDF2)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,r,n){var i,f=this._iv;f?(i=f.slice(0),this._iv=void 0):i=this._prevBlock,n.encryptBlock(i,0);for(var o=0;o<r;o++)e[t+o]^=i[o]}return e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize;t.call(this,e,r,i,n),this._prevBlock=e.slice(r,r+i)}}),e.Decryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize,f=e.slice(r,r+i);t.call(this,e,r,i,n),this._prevBlock=f}}),e}(),n.mode.CFB)},function(e,t,r){var n,i,f;e.exports=(f=r(14),r(18),f.mode.CTR=(n=f.lib.BlockCipherMode.extend(),i=n.Encryptor=n.extend({processBlock:function(e,t){var r=this._cipher,n=r.blockSize,i=this._iv,f=this._counter;i&&(f=this._counter=i.slice(0),this._iv=void 0);var o=f.slice(0);r.encryptBlock(o,0),f[n-1]=f[n-1]+1|0;for(var a=0;a<n;a++)e[t+a]^=o[a]}}),n.Decryptor=i,n),f.mode.CTR)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){if(255==(e>>24&255)){var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}else e+=1<<24;return e}function r(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var i=e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,f=this._iv,o=this._counter;f&&(o=this._counter=f.slice(0),this._iv=void 0),r(o);var a=o.slice(0);n.encryptBlock(a,0);for(var s=0;s<i;s++)e[t+s]^=a[s]}});return e.Decryptor=i,e}(),n.mode.CTRGladman)},function(e,t,r){var n,i,f;e.exports=(f=r(14),r(18),f.mode.OFB=(n=f.lib.BlockCipherMode.extend(),i=n.Encryptor=n.extend({processBlock:function(e,t){var r=this._cipher,n=r.blockSize,i=this._iv,f=this._keystream;i&&(f=this._keystream=i.slice(0),this._iv=void 0),r.encryptBlock(f,0);for(var o=0;o<n;o++)e[t+o]^=f[o]}}),n.Decryptor=i,n),f.mode.OFB)},function(e,t,r){var n,i;e.exports=(i=r(14),r(18),i.mode.ECB=((n=i.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),i.mode.ECB)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.AnsiX923={pad:function(e,t){var r=e.sigBytes,n=4*t,i=n-r%n,f=r+i-1;e.clamp(),e.words[f>>>2]|=i<<24-f%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){var t=e.words,r=e.sigBytes-1;for(r=e.sigBytes-1;r>=0;r--)if(t[r>>>2]>>>24-r%4*8&255){e.sigBytes=r+1;break}}},n.pad.ZeroPadding)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},function(e,t,r){var n,i,f,o;e.exports=(o=r(14),r(18),i=(n=o).lib.CipherParams,f=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(f)},parse:function(e){var t=f.parse(e);return i.create({ciphertext:t})}},o.format.Hex)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],f=[],o=[],a=[],s=[],c=[],u=[],l=[],d=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,f[p]=r;var b=e[r],y=e[b],m=e[y],g=257*e[p]^16843008*p;o[r]=g<<24|g>>>8,a[r]=g<<16|g>>>16,s[r]=g<<8|g>>>24,c[r]=g,g=16843009*m^65537*y^257*b^16843008*r,u[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,d[p]=g<<8|g>>>24,h[p]=g,r?(r=b^e[e[e[m^b]]],n^=e[e[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],b=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),f=this._keySchedule=[],o=0;o<n;o++)o<r?f[o]=t[o]:(c=f[o-1],o%r?r>6&&o%r==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=p[o/r|0]<<24),f[o]=f[o-r]^c);for(var a=this._invKeySchedule=[],s=0;s<n;s++){if(o=n-s,s%4)var c=f[o];else c=f[o-4];a[s]=s<4||o<=4?c:u[i[c>>>24]]^l[i[c>>>16&255]]^d[i[c>>>8&255]]^h[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,c,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,u,l,d,h,f),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,f,o,a){for(var s=this._nRounds,c=e[t]^r[0],u=e[t+1]^r[1],l=e[t+2]^r[2],d=e[t+3]^r[3],h=4,p=1;p<s;p++){var b=n[c>>>24]^i[u>>>16&255]^f[l>>>8&255]^o[255&d]^r[h++],y=n[u>>>24]^i[l>>>16&255]^f[d>>>8&255]^o[255&c]^r[h++],m=n[l>>>24]^i[d>>>16&255]^f[c>>>8&255]^o[255&u]^r[h++],g=n[d>>>24]^i[c>>>16&255]^f[u>>>8&255]^o[255&l]^r[h++];c=b,u=y,l=m,d=g}b=(a[c>>>24]<<24|a[u>>>16&255]<<16|a[l>>>8&255]<<8|a[255&d])^r[h++],y=(a[u>>>24]<<24|a[l>>>16&255]<<16|a[d>>>8&255]<<8|a[255&c])^r[h++],m=(a[l>>>24]<<24|a[d>>>16&255]<<16|a[c>>>8&255]<<8|a[255&u])^r[h++],g=(a[d>>>24]<<24|a[c>>>16&255]<<16|a[u>>>8&255]<<8|a[255&l])^r[h++],e[t]=b,e[t+1]=y,e[t+2]=m,e[t+3]=g},keySize:8});e.AES=t._createHelper(b)}(),n.AES)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib,r=t.WordArray,i=t.BlockCipher,f=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],s=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],u=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=f.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=o[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],f=0;f<16;f++){var c=i[f]=[],u=s[f];for(r=0;r<24;r++)c[r/6|0]|=t[(a[r]-1+u)%28]<<31-r%6,c[4+(r/6|0)]|=t[28+(a[r+24]-1+u)%28]<<31-r%6;for(c[0]=c[0]<<1|c[0]>>>31,r=1;r<7;r++)c[r]=c[r]>>>4*(r-1)+3;c[7]=c[7]<<5|c[7]>>>27}var l=this._invSubKeys=[];for(r=0;r<16;r++)l[r]=i[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],d.call(this,4,252645135),d.call(this,16,65535),h.call(this,2,858993459),h.call(this,8,16711935),d.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],f=this._lBlock,o=this._rBlock,a=0,s=0;s<8;s++)a|=c[s][((o^i[s])&u[s])>>>0];this._lBlock=o,this._rBlock=f^a}var l=this._lBlock;this._lBlock=this._rBlock,this._rBlock=l,d.call(this,1,1431655765),h.call(this,8,16711935),h.call(this,2,858993459),d.call(this,16,65535),d.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function d(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r<<e}function h(e,t){var r=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r<<e}e.DES=i._createHelper(l);var p=f.TripleDES=i.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),n=e.length<4?e.slice(0,2):e.slice(2,4),i=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=l.createEncryptor(r.create(t)),this._des2=l.createEncryptor(r.create(n)),this._des3=l.createEncryptor(r.create(i))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=i._createHelper(p)}(),n.TripleDES)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,r=e.sigBytes,n=this._S=[],i=0;i<256;i++)n[i]=i;i=0;for(var f=0;i<256;i++){var o=i%r,a=t[o>>>2]>>>24-o%4*8&255;f=(f+n[i]+a)%256;var s=n[i];n[i]=n[f],n[f]=s}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=f.call(this)},keySize:8,ivSize:0});function f(){for(var e=this._S,t=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+e[t=(t+1)%256])%256;var f=e[t];e[t]=e[r],e[r]=f,n|=e[(e[t]+e[r])%256]<<24-8*i}return this._i=t,this._j=r,n}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)f.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],f=[],o=[],a=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)s.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(t){var f=t.words,o=f[0],a=f[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=c>>>16|4294901760&u,d=u<<16|65535&c;for(i[0]^=c,i[1]^=l,i[2]^=u,i[3]^=d,i[4]^=c,i[5]^=l,i[6]^=u,i[7]^=d,r=0;r<4;r++)s.call(this)}},_doProcessBlock:function(e,t){var r=this._X;s.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function s(){for(var e=this._X,t=this._C,r=0;r<8;r++)f[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<f[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<f[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<f[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<f[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<f[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<f[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<f[6]>>>0?1:0)|0,this._b=t[7]>>>0<f[7]>>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,a=n>>>16,s=((i*i>>>17)+i*a>>>15)+a*a,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[r]=s^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(a)}(),n.Rabbit)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],f=[],o=[],a=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)s.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(t){var f=t.words,o=f[0],a=f[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=c>>>16|4294901760&u,d=u<<16|65535&c;for(n[0]^=c,n[1]^=l,n[2]^=u,n[3]^=d,n[4]^=c,n[5]^=l,n[6]^=u,n[7]^=d,i=0;i<4;i++)s.call(this)}},_doProcessBlock:function(e,t){var r=this._X;s.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function s(){for(var e=this._X,t=this._C,r=0;r<8;r++)f[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<f[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<f[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<f[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<f[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<f[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<f[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<f[6]>>>0?1:0)|0,this._b=t[7]>>>0<f[7]>>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,a=n>>>16,s=((i*i>>>17)+i*a>>>15)+a*a,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[r]=s^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(a)}(),n.RabbitLegacy)},function(e,t,r){var n=r(126),i=r(56),f=r(33),o=r(252);function a(e,t){var r=i.htob(t.challenge),f=n.sign.detached(r,e.secretKey);return i.btoh(f)+i.btoh(r)}function s(e){return i.btoh(e.publicKey)}t.load_private_key=function(e,t){var r=i.atob(localStorage.getItem(e));return!r||t?(r=n.randomBytes(n.sign.seedLength),localStorage.setItem(e,i.btoa(r)),f.debug('new key seed "'+e+'" saved to local storage!')):f.debug('key seed "'+e+'" loaded from local storage!'),n.sign.keyPair.fromSeed(r)},t.delete_private_key=function(e){for(var t=0;t<5;++t)seed=n.randomBytes(n.sign.seedLength),localStorage.setItem(e,i.btoa(seed)),localStorage.setItem(e,""),localStorage.setItem(e,null)},t.sign_challenge=a,t.public_key=s,t.create_connection=function(e){var t=e.url,r=e.realm,n=e.authid,i=e.pkey,f=e.activation_code,c=e.request_new_activation_code,u=e.serializers;return e.debug&&(console.log(t),console.log(r),console.log(n),console.log(i),console.log(f),console.log(c),console.log(u)),authextra={pubkey:s(i),trustroot:null,challenge:null,channel_binding:null,activation_code:f,request_new_activation_code:c},new o.Connection({url:t,realm:r,authid:n,authmethods:["cryptosign"],onchallenge:function(e,t,r){if("cryptosign"==t)return a(i,r);throw"don't know how to authenticate using '"+t+"'"},authextra:authextra,serializers:e.serializers})}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthInfoRetriever=void 0;const n=r(227);class i extends n.ConversionInfoRetriever{getFeeFilter(){const e=this.contractConversionProxy.filters.TransferWithReferenceAndFee(null,null,"0x"+this.paymentReference);return e.fromBlock=this.conversionProxyCreationBlockNumber,e.toBlock="latest",e}}t.AnyToEthInfoRetriever=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToAnyDetector=void 0;const n=r(15),i=r(13),f=r(86);class o extends f.FeeReferenceBasedDetector{constructor(e,t,r){super(e,t),this.currencyManager=r}createExtensionsDataForCreation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return e.salt=e.salt||(yield i.default.crypto.generate8randomBytes()),this.extension.createCreationAction(Object.assign({feeAddress:e.feeAddress,feeAmount:e.feeAmount,paymentAddress:e.paymentAddress,refundAddress:e.refundAddress,network:e.network,maxRateTimespan:e.maxRateTimespan},e))}))}}t.AnyToAnyDetector=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Providers=t.DefaultBitcoinDetectionProvider=t.BtcTestnetAddressBasedDetector=t.BtcMainnetAddressBasedDetector=void 0;var n=r(143);Object.defineProperty(t,"BtcMainnetAddressBasedDetector",{enumerable:!0,get:function(){return n.BtcMainnetAddressBasedDetector}});var i=r(208);Object.defineProperty(t,"BtcTestnetAddressBasedDetector",{enumerable:!0,get:function(){return i.BtcTestnetAddressBasedDetector}});var f=r(145);Object.defineProperty(t,"DefaultBitcoinDetectionProvider",{enumerable:!0,get:function(){return f.DefaultBitcoinDetectionProvider}});const o=r(146);t.Providers=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20ProxyPaymentDetector=t.ERC20FeeProxyPaymentDetector=t.ERC20AddressBasedPaymentDetector=void 0;var n=r(209);Object.defineProperty(t,"ERC20AddressBasedPaymentDetector",{enumerable:!0,get:function(){return n.ERC20AddressBasedPaymentDetector}});var i=r(118);Object.defineProperty(t,"ERC20FeeProxyPaymentDetector",{enumerable:!0,get:function(){return i.ERC20FeeProxyPaymentDetector}});var f=r(222);Object.defineProperty(t,"ERC20ProxyPaymentDetector",{enumerable:!0,get:function(){return f.ERC20ProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthFeeProxyPaymentDetector=t.AnyToERC20PaymentDetector=void 0;var n=r(226);Object.defineProperty(t,"AnyToERC20PaymentDetector",{enumerable:!0,get:function(){return n.AnyToERC20PaymentDetector}});var i=r(255);Object.defineProperty(t,"AnyToEthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return i.AnyToEthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthFeeProxyPaymentDetector=t.EthInputDataPaymentDetector=void 0;var n=r(223);Object.defineProperty(t,"EthInputDataPaymentDetector",{enumerable:!0,get:function(){return n.EthInputDataPaymentDetector}});var i=r(225);Object.defineProperty(t,"EthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return i.EthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(686),i=r(275),f=r(772),o=r(779),a=r(780);class s extends n.default{constructor({decryptionProvider:e,httpConfig:t,nodeConnectionConfig:r,useLocalEthereumBroadcast:n,signatureProvider:s,useMockStorage:c,web3:u,ethereumProviderUrl:l,currencies:d}={httpConfig:{},nodeConnectionConfig:{},useLocalEthereumBroadcast:!1,useMockStorage:!1}){let h;c&&(h=new a.default);super({dataAccess:c?new o.default(h):n?new f.default({httpConfig:t,nodeConnectionConfig:r,web3:u,ethereumProviderUrl:l}):new i.default({httpConfig:t,nodeConnectionConfig:r}),signatureProvider:s,decryptionProvider:e,currencies:d}),this._mockStorage=h}}t.default=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59),i=r(6),f=r(687),o=r(139),a=r(698),s=r(719),c=r(4),u=r(13),l=r(72),d=r(726),h=r(256),p=r(130);t.default=class{constructor({dataAccess:e,signatureProvider:t,decryptionProvider:r,bitcoinDetectionProvider:n,currencies:i}){this.supportedIdentities=u.default.identity.supportedIdentities,this.advancedLogic=new f.AdvancedLogic,this.transaction=new s.TransactionManager(e,r),this.requestLogic=new a.RequestLogic(this.transaction,t,this.advancedLogic),this.contentData=new d.default(this.advancedLogic),this.bitcoinDetectionProvider=n,this.currencyManager=new l.CurrencyManager(i||l.CurrencyManager.getDefaultList())}createRequest(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:t,topics:r,paymentNetwork:n}=yield this.prepareRequestParameters(e),i=yield this.requestLogic.createRequest(t,e.signer,r),f=new h.default(i.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,requestLogicCreateResult:i,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield f.refresh(),f}))}_createEncryptedRequest(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:r,topics:n,paymentNetwork:i}=yield this.prepareRequestParameters(e),f=yield this.requestLogic.createEncryptedRequest(r,e.signer,t,n),o=new h.default(f.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:i,requestLogicCreateResult:f,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield o.refresh(),o}))}computeRequestId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:t}=yield this.prepareRequestParameters(e);return this.requestLogic.computeRequestId(t,e.signer)}))}fromRequestId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.requestLogic.getRequestFromId(e);if(!r.result.request&&!r.result.pending)throw new Error(p.default.formatGetRequestFromIdError(r));const n=r.result.request?r.result.request:r.result.pending,i=o.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:n,explorerApiKeys:null==t?void 0:t.explorerApiKeys,currencyManager:this.currencyManager}),f=new h.default(e,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:i,skipPaymentDetection:null==t?void 0:t.disablePaymentDetection,disableEvents:null==t?void 0:t.disableEvents});return yield f.refresh(r),f}))}fromIdentity(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.supportedIdentities.includes(e.type))throw new Error(`${e.type} is not supported`);return this.fromTopic(e,t,r)}))}fromMultipleIdentities(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=e.find((e=>!this.supportedIdentities.includes(e.type)));if(n)throw new Error(`${n.type} is not supported`);return this.fromMultipleTopics(e,t,r)}))}fromTopic(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const i=(yield this.requestLogic.getRequestsByTopic(e,t)).result.requests.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e.request?e.request:e.pending,n=o.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),i=new h.default(t.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,skipPaymentDetection:null==r?void 0:r.disablePaymentDetection,disableEvents:null==r?void 0:r.disableEvents});return yield i.refresh(),i}))));return Promise.all(i)}))}fromMultipleTopics(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const i=(yield this.requestLogic.getRequestsByMultipleTopics(e,t)).result.requests.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e.request?e.request:e.pending,n=o.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),i=new h.default(t.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,skipPaymentDetection:null==r?void 0:r.disablePaymentDetection,disableEvents:null==r?void 0:r.disableEvents});return yield i.refresh(),i}))));return Promise.all(i)}))}getCurrency(e){if("string"==typeof e){const t=this.currencyManager.from(e);if(!t)throw new l.UnsupportedCurrencyError(e);return l.CurrencyManager.toStorageCurrency(t)}return e}prepareRequestParameters(e){var t;return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=this.getCurrency(e.requestInfo.currency),n=Object.assign(Object.assign({},e.requestInfo),{currency:r}),i=e.paymentNetwork,f=e.contentData,a=(null===(t=e.topics)||void 0===t?void 0:t.slice())||[];if(n.extensionsData)throw new Error("extensionsData in request parameters must be empty");if(n.currency.type===c.RequestLogicTypes.CURRENCY.ERC20&&!this.validERC20Address(n.currency.value))throw new Error("The ERC20 currency address needs to be a valid Ethereum checksum address");const s=u.default.deepCopy(n);s.extensionsData=[];let l=null;return i&&(l=o.PaymentNetworkFactory.createPaymentNetwork({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,currency:n.currency,paymentNetworkCreationParameters:i,currencyManager:this.currencyManager}),l&&s.extensionsData.push(yield l.createExtensionsDataForCreation(i.parameters))),f&&s.extensionsData.push(this.contentData.createExtensionsDataForCreation(f)),s.payee&&a.push(s.payee),s.payer&&a.push(s.payer),{requestParameters:s,topics:a,paymentNetwork:l}}))}validERC20Address(e){return i.utils.getAddress(e)===e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AdvancedLogic=void 0;var n=r(688);Object.defineProperty(t,"AdvancedLogic",{enumerable:!0,get:function(){return n.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(689),f=r(258),o=r(690),a=r(259),s=r(691),c=r(260),u=r(692),l=r(262),d=r(693),h=r(694),p=r(696),b=r(697);t.default=class{constructor(){this.extensions={addressBasedBtc:new f.default,addressBasedErc20:new s.default,addressBasedTestnetBtc:new o.default,contentData:new i.default,anyToErc20Proxy:new p.default,declarative:new a.default,ethereumInputData:new d.default,nativeToken:[new h.default],feeProxyContractErc20:new c.default,proxyContractErc20:new u.default,feeProxyContractEth:new l.default,anyToEthProxy:new b.default}}applyActionToExtensions(e,t,r,n,i){return this.getExtensionForActionAndState(t,r).applyActionToExtension(e,t,r,n,i)}getExtensionForActionAndState(e,t){const r=e.id,i={[n.ExtensionTypes.ID.CONTENT_DATA]:this.extensions.contentData,[n.ExtensionTypes.ID.PAYMENT_NETWORK_BITCOIN_ADDRESS_BASED]:this.extensions.addressBasedBtc,[n.ExtensionTypes.ID.PAYMENT_NETWORK_TESTNET_BITCOIN_ADDRESS_BASED]:this.extensions.addressBasedTestnetBtc,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_DECLARATIVE]:this.extensions.declarative,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_ADDRESS_BASED]:this.extensions.addressBasedErc20,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_PROXY_CONTRACT]:this.extensions.proxyContractErc20,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_FEE_PROXY_CONTRACT]:this.extensions.feeProxyContractErc20,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_INPUT_DATA]:this.extensions.ethereumInputData,[n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN]:this.getNativeTokenExtensionForActionAndState(e,t),[n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ERC20_PROXY]:this.extensions.anyToErc20Proxy,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_FEE_PROXY_CONTRACT]:this.extensions.feeProxyContractEth,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ETH_PROXY]:this.extensions.anyToEthProxy}[r];if(!i){if(r===n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN)throw Error(`extension with id: ${r} not found for network: ${t.currency.network}`);throw Error(`extension not recognized, id: ${r}`)}return i}getNativeTokenExtensionForActionAndState(e,t){var r;if(t.currency.network&&e.parameters.paymentNetworkName&&t.currency.network!==e.parameters.paymentNetworkName)throw new Error(`Cannot apply action for network ${e.parameters.paymentNetworkName} on state with payment network: ${t.currency.network}`);const n=null!==(r=t.currency.network)&&void 0!==r?r:e.parameters.paymentNetworkName;return n?this.extensions.nativeToken.find((e=>e.supportedNetworks.includes(n))):void 0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(257);class f extends i.AbstractExtension{constructor(e=n.ExtensionTypes.ID.CONTENT_DATA,t="0.1.0"){super(n.ExtensionTypes.TYPE.CONTENT_DATA,e,t),this.extensionId=e,this.currentVersion=t}createCreationAction(e){if(!e.content)throw Error("No content has been given for the extension content-data");return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.content)throw Error("No content has been given for the extension content-data");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[],id:this.extensionId,type:this.extensionType,values:Object.assign(Object.assign({},r.values),{content:e.parameters.content})})}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(258);class f extends i.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_TESTNET_BITCOIN_ADDRESS_BASED,"0.1.0",["testnet"])}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(74),f=["mainnet","rinkeby","private"];class o extends i.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_ADDRESS_BASED,"0.1.0",f,n.RequestLogicTypes.CURRENCY.ERC20)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(91);class f extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_PROXY_CONTRACT,t="0.1.0",r=["mainnet","rinkeby","private"],i=n.RequestLogicTypes.CURRENCY.ERC20){super(e,t,r,i),this.extensionId=e,this.currentVersion=t,this.supportedNetworks=r,this.supportedCurrencyType=i}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(91),f=["mainnet","rinkeby","xdai","sokol","fuse","matic","celo","fantom","bsctest","bsc"];class o extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_INPUT_DATA,t="0.2.0"){super(e,t,f,n.RequestLogicTypes.CURRENCY.ETH)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(74),f=r(695),o=["aurora","aurora-testnet"];class a extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN,t="0.2.0"){super(e,t,o)}isValidAddress(e,t){switch(t){case"aurora":return this.isValidMainnetAddress(e);case"aurora-testnet":return this.isValidTestnetAddress(e);case void 0:return this.isValidMainnetAddress(e)||this.isValidTestnetAddress(e);default:throw new i.UnsupportedNetworkError(t,this.supportedNetworks)}}isValidMainnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR","aurora")}isValidTestnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR-testnet","aurora-testnet")}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(74),f=r(91);class o extends f.default{constructor(e,t,r){super(e,t,r,n.RequestLogicTypes.CURRENCY.ETH)}createCreationAction(e){const t=e.paymentNetworkName;if(!t&&(e.paymentAddress||e.refundAddress))throw new Error(`The network name is mandatory for the creation of the extension ${this.extensionId}.`);if(e.paymentAddress&&!this.isValidAddress(e.paymentAddress,t))throw new i.InvalidPaymentAddressError(e.paymentAddress);if(e.refundAddress&&!this.isValidAddress(e.refundAddress,t))throw new i.InvalidPaymentAddressError(e.refundAddress,"refundAddress");return super.createCreationAction(e)}isValidAddress(e,t){throw new Error("Default implementation of isValidAddress() does not support native tokens. Please override this method.")}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(260),f=r(263);class o extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ERC20_PROXY,t="0.1.0"){super(e,t,Object.keys(f.currenciesWithConversionOracles),n.RequestLogicTypes.CURRENCY.ERC20)}createCreationAction(e){if(!e.acceptedTokens||0===e.acceptedTokens.length)throw Error("acceptedTokens is required");if(e.acceptedTokens.some((e=>!this.isValidAddress(e))))throw Error("acceptedTokens must contains only valid ethereum addresses");const t=e.network;if(!t)throw Error("network is required");if(!f.currenciesWithConversionOracles[t])throw Error(`network ${t} not supported`);const r=f.currenciesWithConversionOracles[t][n.RequestLogicTypes.CURRENCY.ERC20];for(const n of e.acceptedTokens)if(!r.includes(n.toLowerCase()))throw Error(`acceptedTokens must contain only supported token addresses (ERC20 only). ${n} is not supported for ${t}.`);return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.network||0===e.parameters.network.length)throw Error("network is required");if(!e.parameters.acceptedTokens||0===e.parameters.acceptedTokens.length)throw Error("acceptedTokens is required and cannot be empty");if(e.parameters.acceptedTokens.some((e=>!this.isValidAddress(e))))throw Error("acceptedTokens must contains only valid ethereum addresses");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[{name:"create",parameters:{feeAddress:e.parameters.feeAddress,feeAmount:e.parameters.feeAmount,paymentAddress:e.parameters.paymentAddress,refundAddress:e.parameters.refundAddress,salt:e.parameters.salt,network:e.parameters.network,acceptedTokens:e.parameters.acceptedTokens,maxRateTimespan:e.parameters.maxRateTimespan},timestamp:t}],values:Object.assign(Object.assign({},r.values),{network:e.parameters.network,acceptedTokens:e.parameters.acceptedTokens,maxRateTimespan:e.parameters.maxRateTimespan})})}validate(e,t){var r;const i=t.parameters.network||(null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network);if(!i)return;if(!f.currenciesWithConversionOracles[i])throw new Error(`The network (${i}) is not supported for this payment network.`);if(!f.currenciesWithConversionOracles[i][e.currency.type])throw new Error(`The currency type (${e.currency.type}) of the request is not supported for this payment network.`);const o=e.currency.type===n.RequestLogicTypes.CURRENCY.ERC20?e.currency.value.toLowerCase():e.currency.value;if(!f.currenciesWithConversionOracles[i][e.currency.type].includes(o))throw new Error(`The currency (${e.currency.value}) of the request is not supported for this payment network.`)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(262),f=r(263);class o extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ETH_PROXY,t="0.1.0"){super(e,t,Object.keys(f.currenciesWithConversionOracles))}createCreationAction(e){const t=e.network;if(!t)throw Error("network is required");if(!f.currenciesWithConversionOracles[t])throw Error(`network ${t} not supported`);return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.network||0===e.parameters.network.length)throw Error("network is required");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[{name:"create",parameters:{feeAddress:e.parameters.feeAddress,feeAmount:e.parameters.feeAmount,paymentAddress:e.parameters.paymentAddress,refundAddress:e.parameters.refundAddress,salt:e.parameters.salt,network:e.parameters.network,maxRateTimespan:e.parameters.maxRateTimespan},timestamp:t}],values:Object.assign(Object.assign({},r.values),{network:e.parameters.network,maxRateTimespan:e.parameters.maxRateTimespan})})}validate(e,t){var r;const i=t.parameters.network||(null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network);if(!i)throw new Error("The network must be provided from the creation action or from the extension state");if(!f.currenciesWithConversionOracles[i])throw new Error(`The network (${i}) is not supported for this payment network.`);if(!f.currenciesWithConversionOracles[i][e.currency.type])throw new Error(`The currency type (${e.currency.type}) of the request is not supported for this payment network.`);const o=e.currency.type===n.RequestLogicTypes.CURRENCY.ERC20?e.currency.value.toLowerCase():e.currency.value;if(!f.currenciesWithConversionOracles[i][e.currency.type].includes(o))throw new Error(`The currency (${e.currency.value}) of the request is not supported for this payment network.`)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestLogic=void 0;var n=r(699);Object.defineProperty(t,"RequestLogic",{enumerable:!0,get:function(){return n.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(700),i=r(17),f=r(28),o=r(4),a=r(13),s=r(711);t.default=class{constructor(e,t,r){this.transactionManager=e,this.signatureProvider=t,this.advancedLogic=r}createRequest(e,t,r=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{action:n,requestId:f,hashedTopics:o}=yield this.createCreationActionRequestIdAndTopics(e,t,r);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const a=yield this.transactionManager.persistTransaction(JSON.stringify(n),f,o),c=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:a.meta},result:{requestId:f}});return a.on("confirmed",(e=>{c.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:f}})})).on("error",(e=>{c.emit("error",e)})),c}))}createEncryptedRequest(e,t,r,f=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(0===r.length)throw new Error("You must give at least one encryption parameter to create an encrypted request");const{action:n,requestId:o,hashedTopics:a}=yield this.createCreationActionRequestIdAndTopics(e,t,f);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const c=yield this.transactionManager.persistTransaction(JSON.stringify(n),o,a,r),u=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:c.meta},result:{requestId:o}});return c.on("confirmed",(e=>{u.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:o}})})).on("error",(e=>{u.emit("error",e)})),u}))}computeRequestId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const r=yield s.default.formatCreate(e,t,this.signatureProvider);return s.default.applyActionToRequest(null,r,Date.now(),this.advancedLogic),s.default.getRequestIdFromAction(r)}))}acceptRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatAccept(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}cancelRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatCancel(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}increaseExpectedAmountRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatIncreaseExpectedAmount(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}reduceExpectedAmountRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatReduceExpectedAmount(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}addExtensionsDataRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatAddExtensionsData(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}getRequestFromId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{ignoredTransactions:t,confirmedRequestState:r,pendingRequestState:n,transactionManagerMeta:i}=yield this.computeRequestFromRequestId(e);return{meta:{ignoredTransactions:t,transactionManagerMeta:i},result:{request:r,pending:this.computeDiffBetweenPendingAndConfirmedRequestState(r,n)}}}))}getRequestsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=f.default.serialize(a.default.crypto.normalizeKeccak256Hash(e)),n=yield this.transactionManager.getChannelsByTopic(r,t);return this.computeMultipleRequestFromChannels(n)}))}getRequestsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=e.map((e=>f.default.serialize(a.default.crypto.normalizeKeccak256Hash(e)))),n=yield this.transactionManager.getChannelsByMultipleTopics(r,t);return this.computeMultipleRequestFromChannels(n)}))}createCreationActionRequestIdAndTopics(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatCreate(e,t,this.signatureProvider),i=s.default.getRequestIdFromAction(n);return{action:n,hashedTopics:r.map((e=>f.default.serialize(a.default.crypto.normalizeKeccak256Hash(e)))),requestId:i}}))}computeRequestFromRequestId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.transactionManager.getTransactionsByChannelId(e),r=t.result.transactions.filter(a.default.notNull).sort(((e,t)=>e.timestamp-t.timestamp));let{ignoredTransactions:n,keptTransactions:i}=this.removeOldPendingTransactions(r);const f=a.default.uniqueByProperty(i.filter(a.default.notNull).map((e=>{try{return{action:JSON.parse(e.transaction.data||""),state:e.state,timestamp:e.timestamp}}catch(t){return void n.push({reason:"JSON parsing error",transaction:e})}})).filter(a.default.notNull),"action");n=n.concat(f.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:o,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(f.uniqueItems);return n=n.concat(c),{confirmedRequestState:o,ignoredTransactions:n,pendingRequestState:s,transactionManagerMeta:t.meta}}))}computeRequestFromTransactions(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=[],r=e.filter((e=>e.state===o.TransactionTypes.TransactionState.CONFIRMED)).reduce(((e,r)=>{try{return s.default.applyActionToRequest(e,r.action,r.timestamp,this.advancedLogic)}catch(n){return t.push({reason:n.message,transaction:r}),e}}),null),n=e.filter((e=>e.state===o.TransactionTypes.TransactionState.PENDING)).reduce(((e,r)=>{try{return s.default.applyActionToRequest(e,r.action,r.timestamp,this.advancedLogic)}catch(n){return t.push({reason:n.message,transaction:r}),e}}),r);return{confirmedRequestState:r,ignoredTransactionsByApplication:t,pendingRequestState:n}}))}computeMultipleRequestFromChannels(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e.result.transactions,r=e.meta.dataAccessMeta,i=Object.keys(e.result.transactions).map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){let{ignoredTransactions:n,keptTransactions:i}=this.removeOldPendingTransactions(t[e]);const f=a.default.uniqueByProperty(i.filter(a.default.notNull).map((e=>{try{return{action:JSON.parse(e.transaction.data||""),state:e.state,timestamp:e.timestamp}}catch(t){return void n.push({reason:"JSON parsing error",transaction:e})}})).filter(a.default.notNull),"action");n=n.concat(f.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:o,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(f.uniqueItems);n=n.concat(c);const u=this.computeDiffBetweenPendingAndConfirmedRequestState(o,s);return{ignoredTransactions:n,pending:u,request:o,transactionManagerMeta:r[e]}}))));return(yield Promise.all(i)).reduce(((e,t)=>((t.request||t.pending)&&(e.result.requests.push({pending:t.pending,request:t.request}),(e.meta.ignoredTransactions||[]).push(t.ignoredTransactions),(e.meta.transactionManagerMeta||[]).push(t.transactionManagerMeta)),e)),{meta:{ignoredTransactions:[],transactionManagerMeta:[]},result:{requests:[]}})}))}validateAction(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{confirmedRequestState:r,pendingRequestState:n}=yield this.computeRequestFromRequestId(e);try{s.default.applyActionToRequest(r,t,Date.now(),this.advancedLogic)}catch(e){n&&s.default.applyActionToRequest(n,t,Date.now(),this.advancedLogic)}}))}computeDiffBetweenPendingAndConfirmedRequestState(e,t){let r=null;if(e){if(t)for(const n in t)n in t&&a.default.crypto.normalizeKeccak256Hash(t[n]).value!==a.default.crypto.normalizeKeccak256Hash(e[n]).value&&(r||(r={}),r[n]="events"===n?t[n].slice(e[n].length):t[n])}else r=t;return r}removeOldPendingTransactions(e){const t=[];let r=!1;const n=e.reverse().filter((e=>!!e&&(r=r||e.state===o.TransactionTypes.TransactionState.CONFIRMED,e.state===o.TransactionTypes.TransactionState.CONFIRMED||e.state===o.TransactionTypes.TransactionState.PENDING&&!r||(t.push({reason:"Confirmed transaction newer than this pending transaction",transaction:e}),!1)))).reverse();return{ignoredTransactions:t,keptTransactions:n}}}},function(e,t,r){"use strict";r.r(t),r.d(t,"__extends",(function(){return i})),r.d(t,"__assign",(function(){return f})),r.d(t,"__rest",(function(){return o})),r.d(t,"__decorate",(function(){return a})),r.d(t,"__param",(function(){return s})),r.d(t,"__metadata",(function(){return c})),r.d(t,"__awaiter",(function(){return u})),r.d(t,"__generator",(function(){return l})),r.d(t,"__createBinding",(function(){return d})),r.d(t,"__exportStar",(function(){return h})),r.d(t,"__values",(function(){return p})),r.d(t,"__read",(function(){return b})),r.d(t,"__spread",(function(){return y})),r.d(t,"__spreadArrays",(function(){return m})),r.d(t,"__spreadArray",(function(){return g})),r.d(t,"__await",(function(){return v})),r.d(t,"__asyncGenerator",(function(){return _})),r.d(t,"__asyncDelegator",(function(){return w})),r.d(t,"__asyncValues",(function(){return E})),r.d(t,"__makeTemplateObject",(function(){return A})),r.d(t,"__importStar",(function(){return T})),r.d(t,"__importDefault",(function(){return x})),r.d(t,"__classPrivateFieldGet",(function(){return P})),r.d(t,"__classPrivateFieldSet",(function(){return R}));var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var f=function(){return(f=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function o(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r}function a(e,t,r,n){var i,f=arguments.length,o=f<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(f<3?i(o):f>3?i(t,r,o):i(t,r))||o);return f>3&&o&&Object.defineProperty(t,r,o),o}function s(e,t){return function(r,n){t(r,n,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,r,n){return new(r||(r=Promise))((function(i,f){function o(e){try{s(n.next(e))}catch(e){f(e)}}function a(e){try{s(n.throw(e))}catch(e){f(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}s((n=n.apply(e,t||[])).next())}))}function l(e,t){var r,n,i,f,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return f={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function a(f){return function(a){return function(f){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(i=2&f[0]?n.return:f[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,f[1])).done)return i;switch(n=0,i&&(f=[2&f[0],i.value]),f[0]){case 0:case 1:i=f;break;case 4:return o.label++,{value:f[1],done:!1};case 5:o.label++,n=f[1],f=[0];continue;case 7:f=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==f[0]&&2!==f[0])){o=0;continue}if(3===f[0]&&(!i||f[1]>i[0]&&f[1]<i[3])){o.label=f[1];break}if(6===f[0]&&o.label<i[1]){o.label=i[1],i=f;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(f);break}i[2]&&o.ops.pop(),o.trys.pop();continue}f=t.call(e,o)}catch(e){f=[6,e],n=0}finally{r=i=0}if(5&f[0])throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}([f,a])}}}var d=Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]};function h(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||d(t,e,r)}function p(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function b(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,f=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=f.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=f.return)&&r.call(f)}finally{if(i)throw i.error}}return o}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(b(arguments[t]));return e}function m(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var f=arguments[t],o=0,a=f.length;o<a;o++,i++)n[i]=f[o];return n}function g(e,t,r){if(r||2===arguments.length)for(var n,i=0,f=t.length;i<f;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}function v(e){return this instanceof v?(this.v=e,this):new v(e)}function _(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,i=r.apply(e,t||[]),f=[];return n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n;function o(e){i[e]&&(n[e]=function(t){return new Promise((function(r,n){f.push([e,t,r,n])>1||a(e,t)}))})}function a(e,t){try{(r=i[e](t)).value instanceof v?Promise.resolve(r.value.v).then(s,c):u(f[0][2],r)}catch(e){u(f[0][3],e)}var r}function s(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),f.shift(),f.length&&a(f[0][0],f[0][1])}}function w(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,i){t[n]=e[n]?function(t){return(r=!r)?{value:v(e[n](t)),done:"return"===n}:i?i(t):t}:i}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=p(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,i,(t=e[r](t)).done,t.value)}))}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var S=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function T(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&d(t,e,r);return S(t,e),t}function x(e){return e&&e.__esModule?e:{default:e}}function P(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function R(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(702),f=r(703),o=r(704),a=new n.default([new i.default,new o.default,new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_CBC_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_CBC)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_GCM_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_GCM)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.ECIES_ENCRYPTED,n.EncryptionTypes.METHOD.ECIES)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(706),f=new n.default([new i.default]);t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(264);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.NORMALIZE_KECCAK256_HASH,n.MultiFormatTypes.HashTypes.TYPE.KECCAK256)}isSerializableObject(e){return super.isSerializableObject(e)&&e.value.length===n.MultiFormatTypes.FORMAT_NORMALIZE_KECCAK256_HASH_LENGTH}isDeserializableString(e){return super.isDeserializableString(e)&&e.length===n.MultiFormatTypes.FORMAT_NORMALIZE_KECCAK256_HASH_LENGTH}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(708),f=new n.default([new i.default]);t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(264);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.IDENTITY_ETHEREUM_ADDRESS,n.IdentityTypes.TYPE.ETHEREUM_ADDRESS)}isSerializableObject(e){return super.isSerializableObject(e)&&e.value.length===n.MultiFormatTypes.FORMAT_IDENTITY_ETHEREUM_ADDRESS_LENGTH}isDeserializableString(e){return super.isDeserializableString(e)&&e.length===n.MultiFormatTypes.FORMAT_IDENTITY_ETHEREUM_ADDRESS_LENGTH}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(710),f=new n.default([new i.default]);t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.PLAIN_TEXT,n.MultiFormatTypes.PlainTypes.TYPE.PLAIN_TEXT)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(713),s=r(714),c=r(715),u=r(716),l=r(717),d=r(718);t.default={applyActionToRequest:function(e,t,r,h){if(!f.default.isActionVersionSupported(t))throw new Error("action version not supported");const p=e?i.default.deepCopy(e):null;let b=null;if(t.data.name===n.RequestLogicTypes.ACTION_NAME.CREATE){if(p)throw new Error("no request is expected at the creation");b=u.default.createRequest(t,r)}else{if(!p)throw new Error("request is expected");o.default.checkRequest(p),t.data.name===n.RequestLogicTypes.ACTION_NAME.ACCEPT&&(b=a.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.CANCEL&&(b=c.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT&&(b=l.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT&&(b=d.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA&&(b=s.default.applyActionToRequest(t,r,p))}if(!b)throw new Error(`Unknown action ${t.data.name}`);t.data.parameters.extensionsData&&h&&(b.extensions=t.data.parameters.extensionsData.reduce(((e,n)=>h.applyActionToExtensions(e,n,b,f.default.getSignerIdentityFromAction(t),r)),b.extensions));return b},formatAccept:a.default.format,formatAddExtensionsData:s.default.format,formatCancel:c.default.format,formatCreate:u.default.format,formatIncreaseExpectedAmount:l.default.format,formatReduceExpectedAmount:d.default.format,getRequestIdFromAction:function(e){return f.default.getRequestId(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={specificationVersion:{current:"2.0.3",exceptions:[]}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:{extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!r.payer)throw new Error("the request must have a payer");if(r.state!==n.RequestLogicTypes.STATE.CREATED)throw new Error("the request state must be created");const a=f.default.getSignerIdentityFromAction(e);if(o.default.getRoleInRequest(a,r)!==n.RequestLogicTypes.ROLE.PAYER)throw new Error("Signer must be the payer");r.state=n.RequestLogicTypes.STATE.ACCEPTED;let c=i.default.deepCopy(r);return c=o.default.pushExtensionsData(c,e.data.parameters.extensionsData),c.events.push(s(e,t,a)),c},format:function(e,t,r){const i={name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:e,version:a.default.currentVersion};return f.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:{extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!e.data.parameters.extensionsData||0===e.data.parameters.extensionsData.length)throw new Error("extensionsData must be given");const n=f.default.getSignerIdentityFromAction(e);let a=i.default.deepCopy(r);return a=o.default.pushExtensionsData(a,e.data.parameters.extensionsData),a.events.push(s(e,t,n)),a},format:function(e,t,r){if(!e.extensionsData||0===e.extensionsData.length)throw new Error("extensionsData must be given");const i={name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:e,version:a.default.currentVersion};return f.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:{extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");const a=f.default.getSignerIdentityFromAction(e),c=o.default.getRoleInRequest(a,r);let u=i.default.deepCopy(r);if(u=o.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,a)),c===n.RequestLogicTypes.ROLE.PAYER){if(r.state!==n.RequestLogicTypes.STATE.CREATED)throw new Error("A payer cancel need to be done on a request with the state created");return u.state=n.RequestLogicTypes.STATE.CANCELED,u}if(c===n.RequestLogicTypes.ROLE.PAYEE){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("Cannot cancel an already canceled request");return u.state=n.RequestLogicTypes.STATE.CANCELED,u}throw new Error("Signer must be the payer or the payee")},format:function(e,t,r){const i={name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:e,version:a.default.currentVersion};return f.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(131),o=r(39),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:{expectedAmount:i.expectedAmount,extensionsDataLength:i.extensionsData?i.extensionsData.length:0,isSignedRequest:!1},timestamp:t}}t.default={createRequest:function(e,t){if(!e.data.parameters.payee&&!e.data.parameters.payer)throw new Error("action.parameters.payee or action.parameters.payer must be given");if(e.data.parameters.payee&&i.default.identity.hasError(e.data.parameters.payee))throw new Error(`payee: ${i.default.identity.hasError(e.data.parameters.payee)}̀`);if(e.data.parameters.payer&&i.default.identity.hasError(e.data.parameters.payer))throw new Error(`payer: ${i.default.identity.hasError(e.data.parameters.payer)}̀`);if(!i.default.isString(e.data.parameters.expectedAmount)||!i.default.amount.isValid(e.data.parameters.expectedAmount))throw new Error("action.parameters.expectedAmount must be a string representing a positive integer");const r=o.default.getSignerIdentityFromAction(e),a=i.default.deepCopy(e.data.parameters);a.extensions={},a.requestId=o.default.getRequestId(e),a.version=o.default.getVersionFromAction(e),a.events=[s(e,t,r)],f.lt(e.data.version,"2.0.2")&&(a.currency=function(e){switch(e){case"BTC":return{network:"mainnet",type:n.RequestLogicTypes.CURRENCY.BTC,value:"BTC"};case"ETH":return{network:"mainnet",type:n.RequestLogicTypes.CURRENCY.ETH,value:"ETH"};case"EUR":return{type:n.RequestLogicTypes.CURRENCY.ISO4217,value:"EUR"};case"USD":return{type:n.RequestLogicTypes.CURRENCY.ISO4217,value:"USD"};case"DAI":return{type:n.RequestLogicTypes.CURRENCY.ERC20,value:"0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359"};default:throw new Error("Unsupported currency when getting request from transactions.")}}(e.data.parameters.currency));const c=o.default.getRoleInAction(r,e);if(c===n.RequestLogicTypes.ROLE.PAYEE)return a.state=n.RequestLogicTypes.STATE.CREATED,a.creator=e.data.parameters.payee,a;if(c===n.RequestLogicTypes.ROLE.PAYER)return a.state=n.RequestLogicTypes.STATE.ACCEPTED,a.creator=e.data.parameters.payer,a;throw new Error("Signer must be the payee or the payer")},format:function(e,t,r){if(!e.payee&&!e.payer)throw new Error("payee or PayerId must be given");if(!i.default.amount.isValid(e.expectedAmount))throw new Error("expectedAmount must be a positive integer");if(e.payee&&i.default.identity.hasError(e.payee))throw new Error(`payee: ${i.default.identity.hasError(e.payee)}̀`);if(e.payer&&i.default.identity.hasError(e.payer))throw new Error(`payer: ${i.default.identity.hasError(e.payer)}̀`);e.timestamp||(e.timestamp=i.default.getCurrentTimestampInSecond());e.expectedAmount=e.expectedAmount.toString();const f=a.default.currentVersion,s={name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:e,version:f},c=o.default.getRoleInUnsignedAction(t,s);if(c!==n.RequestLogicTypes.ROLE.PAYEE&&c!==n.RequestLogicTypes.ROLE.PAYER)throw new Error("Signer must be the payee or the payer");return o.default.createAction(s,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!r.payer)throw new Error("the request must have a payer");if(!e.data.parameters.deltaAmount)throw new Error("deltaAmount must be given");if(!i.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const a=f.default.getSignerIdentityFromAction(e),c=o.default.getRoleInRequest(a,r);let u=i.default.deepCopy(r);if(u=o.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,a)),c===n.RequestLogicTypes.ROLE.PAYER){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=i.default.amount.add(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payer")},format:function(e,t,r){if(!i.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o={name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:e,version:a.default.currentVersion};return f.default.createAction(o,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!r.payee)throw new Error("the request must have a payee");if(!e.data.parameters.deltaAmount)throw new Error("deltaAmount must be given");if(!i.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const a=f.default.getSignerIdentityFromAction(e),c=o.default.getRoleInRequest(a,r);let u=i.default.deepCopy(r);if(u=o.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,a)),c===n.RequestLogicTypes.ROLE.PAYEE){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=i.default.amount.reduce(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payee")},format:function(e,t,r){if(!i.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o={name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:e,version:a.default.currentVersion};return f.default.createAction(o,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransactionManager=void 0;var n=r(720);Object.defineProperty(t,"TransactionManager",{enumerable:!0,get:function(){return n.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(4),o=r(13),a=r(17),s=r(721),c=r(725);t.default=class{constructor(e,t){this.dataAccess=e,this.channelParser=new s.default(t)}persistTransaction(e,t,r=[],s=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let n,u={};const l=i.default.serialize(o.default.crypto.normalizeKeccak256Hash(JSON.parse(e)));if(t===l)0===s.length?u=yield c.default.createClearTransaction(e):(u=yield c.default.createEncryptedTransactionInNewChannel(e,s),n=u.encryptionMethod);else{const r=yield this.dataAccess.getTransactionsByChannelId(t),{channelKey:i,channelType:o,encryptionMethod:a}=yield this.channelParser.getChannelTypeAndChannelKey(t,r.result.transactions);if(o===f.TransactionTypes.ChannelType.UNKNOWN)throw new Error(`Impossible to retrieve the channel: ${t}`);if(o===f.TransactionTypes.ChannelType.CLEAR&&(u=yield c.default.createClearTransaction(e)),o===f.TransactionTypes.ChannelType.ENCRYPTED){if(0!==s.length)throw new Error("Impossible to add new stakeholder to an existing channel");if(!i)throw new Error(`Impossible to decrypt the channel key of: ${t}`);u=yield c.default.createEncryptedTransaction(e,i),n=a}}const d=yield this.dataAccess.persistTransaction(u,t,r.concat([l])),h=Object.assign(new a.EventEmitter,{meta:{dataAccessMeta:d.meta,encryptionMethod:n},result:{}});return d.on("confirmed",(e=>{const t={meta:{dataAccessMeta:e.meta,encryptionMethod:n},result:{}};h.emit("confirmed",t)})).on("error",(e=>{h.emit("error",e)})),h}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.dataAccess.getTransactionsByChannelId(e,t),{transactions:n,ignoredTransactions:i,encryptionMethod:f}=yield this.channelParser.decryptAndCleanChannel(e,r.result.transactions),o={dataAccessMeta:r.meta,encryptionMethod:f,ignoredTransactions:i};return f||delete o.encryptionMethod,{meta:o,result:{transactions:n}}}))}getChannelsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.dataAccess.getChannelsByTopic(e,t);return this.parseMultipleChannels(r)}))}getChannelsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.dataAccess.getChannelsByMultipleTopics(e,t);return this.parseMultipleChannels(r)}))}parseMultipleChannels(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield Object.keys(e.result.transactions).reduce(((t,r)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield this.channelParser.decryptAndCleanChannel(r,e.result.transactions[r]),i=yield t;return i.transactions[r]=n.transactions,i.ignoredTransactions[r]=n.ignoredTransactions,i}))),Promise.resolve({transactions:{},ignoredTransactions:{}}));return{meta:{dataAccessMeta:e.meta,ignoredTransactions:t.ignoredTransactions},result:{transactions:t.transactions}}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(4),f=r(722);t.default=class{constructor(e){this.transactionParser=new f.default(e)}decryptAndCleanChannel(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let r,f,o=i.TransactionTypes.ChannelType.UNKNOWN;const a=yield t.reduce(((t,a)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield t;let s;try{s=yield this.transactionParser.parsePersistedTransaction(a.transaction,o,r)}catch(u){return n.concat([{ignored:{reason:u.message,transaction:a},valid:null}])}const c=s.transaction,u=yield c.getError();if(""!==u)return n.concat([{ignored:{reason:u,transaction:a},valid:null}]);if(o===i.TransactionTypes.ChannelType.UNKNOWN){if((yield c.getHash())!==e)return n.concat([{ignored:{reason:"as first transaction, the hash of the transaction do not match the channelId",transaction:a},valid:null}]);o=s.channelKey?i.TransactionTypes.ChannelType.ENCRYPTED:i.TransactionTypes.ChannelType.CLEAR,f=s.encryptionMethod,r=s.channelKey}const l=yield c.getData();return n.concat([{ignored:null,valid:{state:a.state,timestamp:a.timestamp,transaction:{data:l}}}])}))),Promise.resolve([])),s=a.map((e=>e.ignored)),c=a.map((e=>e.valid));return{encryptionMethod:f,ignoredTransactions:s,transactions:c}}))}getChannelTypeAndChannelKey(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return yield t.reduce(((t,r)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield t;if(n.channelType!==i.TransactionTypes.ChannelType.UNKNOWN)return n;let f;try{f=yield this.transactionParser.parsePersistedTransaction(r.transaction,i.TransactionTypes.ChannelType.UNKNOWN)}catch(e){return n}const o=f.transaction;if(""!==(yield o.getError()))return n;return(yield o.getHash())!==e||(n.channelType=f.channelKey?i.TransactionTypes.ChannelType.ENCRYPTED:i.TransactionTypes.ChannelType.CLEAR,n.channelKey=f.channelKey,n.encryptionMethod=f.encryptionMethod),n}))),Promise.resolve({channelKey:void 0,channelType:i.TransactionTypes.ChannelType.UNKNOWN,encryptionMethod:void 0}))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(4),o=r(723),a=r(724);t.default=class{constructor(e){this.decryptionProvider=e}parsePersistedTransaction(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(e.data){if(t===f.TransactionTypes.ChannelType.ENCRYPTED)throw new Error("Clear transactions are not allowed in encrypted channel");if(e.encryptedData||e.encryptionMethod||e.keys)throw new Error('only the property "data" is allowed for clear transaction');return{transaction:new o.default(e.data)}}if(e.encryptedData){if(t===f.TransactionTypes.ChannelType.CLEAR)throw new Error("Encrypted transactions are not allowed in clear channel");if(r){if(e.encryptionMethod||e.keys)throw new Error('the properties "encryptionMethod" and "keys" have been already given for this channel')}else{if(!e.encryptionMethod||!e.keys)throw new Error('the properties "encryptionMethod" and "keys" are needed to compute the channel key');r=yield this.decryptChannelKey(e.keys,e.encryptionMethod)}return{channelKey:r,encryptionMethod:e.encryptionMethod,transaction:new a.default(e.encryptedData,r)}}throw new Error('Transaction must have a property "data" or "encryptedData"')}))}decryptChannelKey(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.decryptionProvider)throw new Error("No decryption provider given");let r;if(t===`${f.EncryptionTypes.METHOD.ECIES}-${f.EncryptionTypes.METHOD.AES256_CBC}`)r=f.EncryptionTypes.METHOD.AES256_CBC;else{if(t!==`${f.EncryptionTypes.METHOD.ECIES}-${f.EncryptionTypes.METHOD.AES256_GCM}`)throw new Error(`Encryption method not supported: ${t}`);r=f.EncryptionTypes.METHOD.AES256_GCM}let o="";const a=yield Object.keys(e||{}).reduce(((t,r)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){let n=yield t;if(e&&""===n){let t;try{t=i.default.deserialize(r)}catch(e){}if(t&&t.type===f.IdentityTypes.TYPE.ETHEREUM_ADDRESS&&this.decryptionProvider&&(yield this.decryptionProvider.isIdentityRegistered(t)))try{const f=i.default.deserialize(e[r]);n=yield this.decryptionProvider.decrypt(f,t)}catch(e){o=e.message}}return n}))),Promise.resolve(""));if(""===a)throw new Error(`Impossible to decrypt the channel key from this transaction (${o})`);return{key:a,method:r}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(13);t.default=class{constructor(e){this.data=e}getData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return this.data}))}getHash(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return i.default.serialize(f.default.crypto.normalizeKeccak256Hash(JSON.parse(this.data)))}))}getError(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){try{return JSON.parse(this.data),""}catch(e){return"Impossible to JSON parse the transaction"}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(13);t.default=class{constructor(e,t){this.data="",this.dataHashSerialized="",this.persistedData=e,this.channelKey=t}getData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(""===this.data)try{const e=i.default.deserialize(this.persistedData);this.data=yield f.default.encryption.decrypt(e,this.channelKey)}catch(e){throw new Error("Impossible to decrypt the transaction")}return this.data}))}getHash(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(""===this.dataHashSerialized){const e=yield this.getData();try{const t=f.default.crypto.normalizeKeccak256Hash(JSON.parse(e));this.dataHashSerialized=i.default.serialize(t)}catch(e){throw new Error("Impossible to JSON parse the decrypted transaction data")}}return this.dataHashSerialized}))}getError(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let e="";try{e=yield this.getData()}catch(e){return e.message}try{JSON.parse(e)}catch(e){return"Impossible to JSON parse the decrypted transaction data"}return""}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(4),o=r(13);t.default=class{static createClearTransaction(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}return{data:e}}))}static createEncryptedTransactionInNewChannel(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=`${f.EncryptionTypes.METHOD.ECIES}-${f.EncryptionTypes.METHOD.AES256_GCM}`,a=yield o.default.crypto.generate32BufferKey(),s=yield o.default.encryption.encrypt(e,{key:a,method:f.EncryptionTypes.METHOD.AES256_GCM});try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}if(!t.every((e=>e.method===f.EncryptionTypes.METHOD.ECIES)))throw new Error(`encryptionParams method must be all: ${f.EncryptionTypes.METHOD.ECIES}`);const c=t.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield o.default.encryption.encrypt(a,e),r=o.default.encryption.getIdentityFromEncryptionParams(e);return{encryptedKey:t,multiFormattedIdentity:i.default.serialize(r)}})))),u=(yield Promise.all(c)).reduce(((e,t)=>{const r=i.default.serialize(t.encryptedKey);return e[t.multiFormattedIdentity]=r,e}),{});return{encryptedData:i.default.serialize(s),keys:u,encryptionMethod:r}}))}static createEncryptedTransaction(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(t.method!==f.EncryptionTypes.METHOD.AES256_GCM)throw new Error(`encryption method not supported for the channel key: ${t.method}`);const r=yield o.default.encryption.encrypt(e,t);try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}return{encryptedData:i.default.serialize(r)}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(727),i=r(4).ExtensionTypes.ID.CONTENT_DATA;t.default=class{constructor(e){this.extension=e.extensions.contentData}createExtensionsDataForCreation(e){if(n.default.isKnownFormat(e)){const{valid:t,errors:r}=n.default.validate(e);if(!t){const e=r.map((e=>JSON.stringify(e))).join("\n");throw new Error(`The content data seem to follow a request format but contains errors: ${e}`)}}return this.extension.createCreationAction({content:e})}getContent(e){return e&&e.extensions&&e.extensions[i]?e.extensions[i].values.content:null}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(266),i=r(728),f=r(762),o=r(763),a=r(764);t.default={validate(e){var t;const r=(new i).addMetaSchema(f).addSchema(o);if(!e.meta)return{valid:!1,errors:[{message:"meta not found"}]};if(!e.meta.format)return{valid:!1,errors:[{message:"meta.format not found"}]};if(!e.meta.version)return{valid:!1,errors:[{message:"meta.version not found"}]};const n=null===(t=a.default[e.meta.format])||void 0===t?void 0:t[e.meta.version];if(!n)return{valid:!1,errors:[{message:"format not found"}]};const s=r.compile(n);return s(e)?{valid:!0}:{valid:!1,errors:s.errors}},isKnownFormat:e=>!!e.meta&&"rnf_invoice"===e.meta.format},(0,n.__exportStar)(r(768),t)},function(e,t,r){"use strict";var n=r(729),i=r(132),f=r(733),o=r(267),a=r(268),s=r(734),c=r(735),u=r(756),l=r(62);e.exports=m,m.prototype.validate=function(e,t){var r;if("string"==typeof e){if(!(r=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var n=this._addSchema(e);r=n.validate||this._compile(n)}var i=r(t);!0!==r.$async&&(this.errors=r.errors);return i},m.prototype.compile=function(e,t){var r=this._addSchema(e,void 0,t);return r.validate||this._compile(r)},m.prototype.addSchema=function(e,t,r,n){if(Array.isArray(e)){for(var f=0;f<e.length;f++)this.addSchema(e[f],void 0,r,n);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return A(this,t=i.normalizeId(t||o)),this._schemas[t]=this._addSchema(e,r,n,!0),this},m.prototype.addMetaSchema=function(e,t,r){return this.addSchema(e,t,r,!0),this},m.prototype.validateSchema=function(e,t){var r=e.$schema;if(void 0!==r&&"string"!=typeof r)throw new Error("$schema must be a string");if(!(r=r||this._opts.defaultMeta||function(e){var t=e._opts.meta;return e._opts.defaultMeta="object"==typeof t?e._getId(t)||t:e.getSchema(p)?p:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var n=this.validate(r,e);if(!n&&t){var i="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(i);this.logger.error(i)}return n},m.prototype.getSchema=function(e){var t=g(this,e);switch(typeof t){case"object":return t.validate||this._compile(t);case"string":return this.getSchema(t);case"undefined":return function(e,t){var r=i.schema.call(e,{schema:{}},t);if(r){var f=r.schema,a=r.root,s=r.baseId,c=n.call(e,f,a,void 0,s);return e._fragments[t]=new o({ref:t,fragment:!0,schema:f,root:a,baseId:s,validate:c}),c}}(this,e)}},m.prototype.removeSchema=function(e){if(e instanceof RegExp)return v(this,this._schemas,e),v(this,this._refs,e),this;switch(typeof e){case"undefined":return v(this,this._schemas),v(this,this._refs),this._cache.clear(),this;case"string":var t=g(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var r=this._opts.serialize,n=r?r(e):e;this._cache.del(n);var f=this._getId(e);f&&(f=i.normalizeId(f),delete this._schemas[f],delete this._refs[f])}return this},m.prototype.addFormat=function(e,t){"string"==typeof t&&(t=new RegExp(t));return this._formats[e]=t,this},m.prototype.errorsText=function(e,t){if(!(e=e||this.errors))return"No errors";for(var r=void 0===(t=t||{}).separator?", ":t.separator,n=void 0===t.dataVar?"data":t.dataVar,i="",f=0;f<e.length;f++){var o=e[f];o&&(i+=n+o.dataPath+" "+o.message+r)}return i.slice(0,-r.length)},m.prototype._addSchema=function(e,t,r,n){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var f=this._opts.serialize,a=f?f(e):e,s=this._cache.get(a);if(s)return s;n=n||!1!==this._opts.addUsedSchema;var c=i.normalizeId(this._getId(e));c&&n&&A(this,c);var u,l=!1!==this._opts.validateSchema&&!t;l&&!(u=c&&c==i.normalizeId(e.$schema))&&this.validateSchema(e,!0);var d=i.ids.call(this,e),h=new o({id:c,schema:e,localRefs:d,cacheKey:a,meta:r});"#"!=c[0]&&n&&(this._refs[c]=h);this._cache.put(a,h),l&&u&&this.validateSchema(e,!0);return h},m.prototype._compile=function(e,t){if(e.compiling)return e.validate=f,f.schema=e.schema,f.errors=null,f.root=t||f,!0===e.schema.$async&&(f.$async=!0),f;var r,i;e.compiling=!0,e.meta&&(r=this._opts,this._opts=this._metaOpts);try{i=n.call(this,e.schema,t,e.localRefs)}catch(t){throw delete e.validate,t}finally{e.compiling=!1,e.meta&&(this._opts=r)}return e.validate=i,e.refs=i.refs,e.refVal=i.refVal,e.root=i.root,i;function f(){var t=e.validate,r=t.apply(this,arguments);return f.errors=t.errors,r}},m.prototype.compileAsync=r(757);var d=r(758);m.prototype.addKeyword=d.add,m.prototype.getKeyword=d.get,m.prototype.removeKeyword=d.remove,m.prototype.validateKeyword=d.validate;var h=r(134);m.ValidationError=h.Validation,m.MissingRefError=h.MissingRef,m.$dataMetaSchema=u;var p="http://json-schema.org/draft-07/schema",b=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],y=["/properties"];function m(e){if(!(this instanceof m))return new m(e);e=this._opts=l.copy(e)||{},function(e){var t=e._opts.logger;if(!1===t)e.logger={log:S,warn:S,error:S};else{if(void 0===t&&(t=console),!("object"==typeof t&&t.log&&t.warn&&t.error))throw new Error("logger must implement log, warn and error methods");e.logger=t}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=s(e.format),this._cache=e.cache||new f,this._loadingSchemas={},this._compilations=[],this.RULES=c(),this._getId=function(e){switch(e.schemaId){case"auto":return E;case"id":return _;default:return w}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=a),this._metaOpts=function(e){for(var t=l.copy(e._opts),r=0;r<b.length;r++)delete t[b[r]];return t}(this),e.formats&&function(e){for(var t in e._opts.formats){var r=e._opts.formats[t];e.addFormat(t,r)}}(this),e.keywords&&function(e){for(var t in e._opts.keywords){var r=e._opts.keywords[t];e.addKeyword(t,r)}}(this),function(e){var t;e._opts.$data&&(t=r(761),e.addMetaSchema(t,t.$id,!0));if(!1===e._opts.meta)return;var n=r(274);e._opts.$data&&(n=u(n,y));e.addMetaSchema(n,p,!0),e._refs["http://json-schema.org/schema"]=p}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var t=e._opts.schemas;if(!t)return;if(Array.isArray(t))e.addSchema(t);else for(var r in t)e.addSchema(t[r],r)}(this)}function g(e,t){return t=i.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function v(e,t,r){for(var n in t){var i=t[n];i.meta||r&&!r.test(n)||(e._cache.del(i.cacheKey),delete t[n])}}function _(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function w(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function E(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function A(e,t){if(e._schemas[t]||e._refs[t])throw new Error('schema with key or id "'+t+'" already exists')}function S(){}},function(e,t,r){"use strict";var n=r(132),i=r(62),f=r(134),o=r(268),a=r(269),s=i.ucs2length,c=r(133),u=f.Validation;function l(e,t,r){var n=h.call(this,e,t,r);return n>=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:r},{index:n,compiling:!1})}function d(e,t,r){var n=h.call(this,e,t,r);n>=0&&this._compilations.splice(n,1)}function h(e,t,r){for(var n=0;n<this._compilations.length;n++){var i=this._compilations[n];if(i.schema==e&&i.root==t&&i.baseId==r)return n}return-1}function p(e,t){return"var pattern"+e+" = new RegExp("+i.toQuotedString(t[e])+");"}function b(e){return"var default"+e+" = defaults["+e+"];"}function y(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function m(e){return"var customRule"+e+" = customRules["+e+"];"}function g(e,t){if(!e.length)return"";for(var r="",n=0;n<e.length;n++)r+=t(n,e);return r}e.exports=function e(t,r,h,v){var _=this,w=this._opts,E=[void 0],A={},S=[],T={},x=[],P={},R=[];r=r||{schema:t,refVal:E,refs:A};var k=l.call(this,t,r,v),C=this._compilations[k.index];if(k.compiling)return C.callValidate=function e(){var t=C.validate,r=t.apply(this,arguments);return e.errors=t.errors,r};var O=this._formats,M=this.RULES;try{var N=D(t,r,h,v);C.validate=N;var I=C.callValidate;return I&&(I.schema=N.schema,I.errors=null,I.refs=N.refs,I.refVal=N.refVal,I.root=N.root,I.$async=N.$async,w.sourceCode&&(I.source=N.source)),N}finally{d.call(this,t,r,v)}function D(t,o,l,d){var h=!o||o&&o.schema==t;if(o.schema!=r.schema)return e.call(_,t,o,l,d);var v,T=!0===t.$async,P=a({isTop:!0,schema:t,isRoot:h,baseId:d,root:o,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:f.MissingRef,RULES:M,validate:a,util:i,resolve:n,resolveRef:B,usePattern:L,useDefault:U,useCustomRule:q,opts:w,formats:O,logger:_.logger,self:_});P=g(E,y)+g(S,p)+g(x,b)+g(R,m)+P,w.processCode&&(P=w.processCode(P,t));try{v=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",P)(_,M,O,r,E,x,R,c,s,u),E[0]=v}catch(e){throw _.logger.error("Error compiling schema, function code:",P),e}return v.schema=t,v.errors=null,v.refs=A,v.refVal=E,v.root=h?v:o,T&&(v.$async=!0),!0===w.sourceCode&&(v.source={code:P,patterns:S,defaults:x}),v}function B(t,i,f){i=n.url(t,i);var o,a,s=A[i];if(void 0!==s)return j(o=E[s],a="refVal["+s+"]");if(!f&&r.refs){var c=r.refs[i];if(void 0!==c)return j(o=r.refVal[c],a=F(i,o))}a=F(i);var u=n.call(_,D,r,i);if(void 0===u){var l=h&&h[i];l&&(u=n.inlineRef(l,w.inlineRefs)?l:e.call(_,l,r,h,t))}if(void 0!==u)return function(e,t){var r=A[e];E[r]=t}(i,u),j(u,a);!function(e){delete A[e]}(i)}function F(e,t){var r=E.length;return E[r]=t,A[e]=r,"refVal"+r}function j(e,t){return"object"==typeof e||"boolean"==typeof e?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function L(e){var t=T[e];return void 0===t&&(t=T[e]=S.length,S[t]=e),"pattern"+t}function U(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return i.toQuotedString(e);case"object":if(null===e)return"null";var t=o(e),r=P[t];return void 0===r&&(r=P[t]=x.length,x[r]=e),"default"+r}}function q(e,t,r,n){if(!1!==_._opts.validateSchema){var i=e.definition.dependencies;if(i&&!i.every((function(e){return Object.prototype.hasOwnProperty.call(r,e)})))throw new Error("parent schema must have all required keywords: "+i.join(","));var f=e.definition.validateSchema;if(f)if(!f(t)){var o="keyword schema is invalid: "+_.errorsText(f.errors);if("log"!=_._opts.validateSchema)throw new Error(o);_.logger.error(o)}}var a,s=e.definition.compile,c=e.definition.inline,u=e.definition.macro;if(s)a=s.call(_,t,r,n);else if(u)a=u.call(_,t,r,n),!1!==w.validateSchema&&_.validateSchema(a,!0);else if(c)a=c.call(_,n,e.keyword,t,r);else if(!(a=e.definition.validate))return;if(void 0===a)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var l=R.length;return R[l]=a,{code:"customRule"+l,validate:a}}}},function(e,t,r){!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];if(t.length>1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,i=1;i<n;++i)t[i]=t[i].slice(1,-1);return t[n]=t[n].slice(1),t.join("")}return t[0]}function r(e){return"(?:"+e+")"}function n(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function i(e){return e.toUpperCase()}function f(e){return null!=e?e instanceof Array?e:"number"!=typeof e.length||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e):[]}function o(e,t){var r=e;if(t)for(var n in t)r[n]=t[n];return r}function a(e){var n="[A-Za-z]",i="[0-9]",f=t(i,"[A-Fa-f]"),o=r(r("%[EFef]"+f+"%"+f+f+"%"+f+f)+"|"+r("%[89A-Fa-f]"+f+"%"+f+f)+"|"+r("%"+f+f)),a="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",s=t("[\\:\\/\\?\\#\\[\\]\\@]",a),c=e?"[\\uE000-\\uF8FF]":"[]",u=t(n,i,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),l=r(n+t(n,i,"[\\+\\-\\.]")+"*"),d=r(r(o+"|"+t(u,a,"[\\:]"))+"*"),h=(r(r("25[0-5]")+"|"+r("2[0-4]"+i)+"|"+r("1"+i+i)+"|"+r("[1-9]"+i)+"|"+i),r(r("25[0-5]")+"|"+r("2[0-4]"+i)+"|"+r("1"+i+i)+"|"+r("0?[1-9]"+i)+"|0?0?"+i)),p=r(h+"\\."+h+"\\."+h+"\\."+h),b=r(f+"{1,4}"),y=r(r(b+"\\:"+b)+"|"+p),m=r(r(b+"\\:")+"{6}"+y),g=r("\\:\\:"+r(b+"\\:")+"{5}"+y),v=r(r(b)+"?\\:\\:"+r(b+"\\:")+"{4}"+y),_=r(r(r(b+"\\:")+"{0,1}"+b)+"?\\:\\:"+r(b+"\\:")+"{3}"+y),w=r(r(r(b+"\\:")+"{0,2}"+b)+"?\\:\\:"+r(b+"\\:")+"{2}"+y),E=r(r(r(b+"\\:")+"{0,3}"+b)+"?\\:\\:"+b+"\\:"+y),A=r(r(r(b+"\\:")+"{0,4}"+b)+"?\\:\\:"+y),S=r(r(r(b+"\\:")+"{0,5}"+b)+"?\\:\\:"+b),T=r(r(r(b+"\\:")+"{0,6}"+b)+"?\\:\\:"),x=r([m,g,v,_,w,E,A,S,T].join("|")),P=r(r(u+"|"+o)+"+"),R=(r(x+"\\%25"+P),r(x+r("\\%25|\\%(?!"+f+"{2})")+P)),k=r("[vV]"+f+"+\\."+t(u,a,"[\\:]")+"+"),C=r("\\["+r(R+"|"+x+"|"+k)+"\\]"),O=r(r(o+"|"+t(u,a))+"*"),M=r(C+"|"+p+"(?!"+O+")|"+O),N=r(i+"*"),I=r(r(d+"@")+"?"+M+r("\\:"+N)+"?"),D=r(o+"|"+t(u,a,"[\\:\\@]")),B=r(D+"*"),F=r(D+"+"),j=r(r(o+"|"+t(u,a,"[\\@]"))+"+"),L=r(r("\\/"+B)+"*"),U=r("\\/"+r(F+L)+"?"),q=r(j+L),z=r(F+L),H="(?!"+D+")",G=(r(L+"|"+U+"|"+q+"|"+z+"|"+H),r(r(D+"|"+t("[\\/\\?]",c))+"*")),V=r(r(D+"|[\\/\\?]")+"*"),K=r(r("\\/\\/"+I+L)+"|"+U+"|"+z+"|"+H),W=r(l+"\\:"+K+r("\\?"+G)+"?"+r("\\#"+V)+"?"),$=r(r("\\/\\/"+I+L)+"|"+U+"|"+q+"|"+H),Y=r($+r("\\?"+G)+"?"+r("\\#"+V)+"?");return r(W+"|"+Y),r(l+"\\:"+K+r("\\?"+G)+"?"),r(r("\\/\\/("+r("("+d+")@")+"?("+M+")"+r("\\:("+N+")")+"?)")+"?("+L+"|"+U+"|"+z+"|"+H+")"),r("\\?("+G+")"),r("\\#("+V+")"),r(r("\\/\\/("+r("("+d+")@")+"?("+M+")"+r("\\:("+N+")")+"?)")+"?("+L+"|"+U+"|"+q+"|"+H+")"),r("\\?("+G+")"),r("\\#("+V+")"),r(r("\\/\\/("+r("("+d+")@")+"?("+M+")"+r("\\:("+N+")")+"?)")+"?("+L+"|"+U+"|"+z+"|"+H+")"),r("\\?("+G+")"),r("\\#("+V+")"),r("("+d+")@"),r("\\:("+N+")"),{NOT_SCHEME:new RegExp(t("[^]",n,i,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",u,a),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",u,a),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",u,a),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",u,a),"g"),NOT_QUERY:new RegExp(t("[^\\%]",u,a,"[\\:\\@\\/\\?]",c),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",u,a,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",u,a),"g"),UNRESERVED:new RegExp(u,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",u,s),"g"),PCT_ENCODED:new RegExp(o,"g"),IPV4ADDRESS:new RegExp("^("+p+")$"),IPV6ADDRESS:new RegExp("^\\[?("+x+")"+r(r("\\%25|\\%(?!"+f+"{2})")+"("+P+")")+"?\\]?$")}}var s=a(!1),c=a(!0),u=function(){function e(e,t){var r=[],n=!0,i=!1,f=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,f=e}finally{try{!n&&a.return&&a.return()}finally{if(i)throw f}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},d=2147483647,h=36,p=1,b=26,y=38,m=700,g=72,v=128,_="-",w=/^xn--/,E=/[^\0-\x7E]/,A=/[\x2E\u3002\uFF0E\uFF61]/g,S={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},T=h-p,x=Math.floor,P=String.fromCharCode;function R(e){throw new RangeError(S[e])}function k(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}function C(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+k((e=e.replace(A,".")).split("."),t).join(".")}function O(e){for(var t=[],r=0,n=e.length;r<n;){var i=e.charCodeAt(r++);if(i>=55296&&i<=56319&&r<n){var f=e.charCodeAt(r++);56320==(64512&f)?t.push(((1023&i)<<10)+(1023&f)+65536):(t.push(i),r--)}else t.push(i)}return t}var M=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:h},N=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},I=function(e,t,r){var n=0;for(e=r?x(e/m):e>>1,e+=x(e/t);e>T*b>>1;n+=h)e=x(e/T);return x(n+(T+1)*e/(e+y))},D=function(e){var t=[],r=e.length,n=0,i=v,f=g,o=e.lastIndexOf(_);o<0&&(o=0);for(var a=0;a<o;++a)e.charCodeAt(a)>=128&&R("not-basic"),t.push(e.charCodeAt(a));for(var s=o>0?o+1:0;s<r;){for(var c=n,u=1,l=h;;l+=h){s>=r&&R("invalid-input");var y=M(e.charCodeAt(s++));(y>=h||y>x((d-n)/u))&&R("overflow"),n+=y*u;var m=l<=f?p:l>=f+b?b:l-f;if(y<m)break;var w=h-m;u>x(d/w)&&R("overflow"),u*=w}var E=t.length+1;f=I(n-c,E,0==c),x(n/E)>d-i&&R("overflow"),i+=x(n/E),n%=E,t.splice(n++,0,i)}return String.fromCodePoint.apply(String,t)},B=function(e){var t=[],r=(e=O(e)).length,n=v,i=0,f=g,o=!0,a=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;l<128&&t.push(P(l))}}catch(e){a=!0,s=e}finally{try{!o&&u.return&&u.return()}finally{if(a)throw s}}var y=t.length,m=y;for(y&&t.push(_);m<r;){var w=d,E=!0,A=!1,S=void 0;try{for(var T,k=e[Symbol.iterator]();!(E=(T=k.next()).done);E=!0){var C=T.value;C>=n&&C<w&&(w=C)}}catch(e){A=!0,S=e}finally{try{!E&&k.return&&k.return()}finally{if(A)throw S}}var M=m+1;w-n>x((d-i)/M)&&R("overflow"),i+=(w-n)*M,n=w;var D=!0,B=!1,F=void 0;try{for(var j,L=e[Symbol.iterator]();!(D=(j=L.next()).done);D=!0){var U=j.value;if(U<n&&++i>d&&R("overflow"),U==n){for(var q=i,z=h;;z+=h){var H=z<=f?p:z>=f+b?b:z-f;if(q<H)break;var G=q-H,V=h-H;t.push(P(N(H+G%V,0))),q=x(G/V)}t.push(P(N(q,0))),f=I(i,M,m==y),i=0,++m}}}catch(e){B=!0,F=e}finally{try{!D&&L.return&&L.return()}finally{if(B)throw F}}++i,++n}return t.join("")},F=function(e){return C(e,(function(e){return w.test(e)?D(e.slice(4).toLowerCase()):e}))},j=function(e){return C(e,(function(e){return E.test(e)?"xn--"+B(e):e}))},L={version:"2.1.0",ucs2:{decode:O,encode:function(e){return String.fromCodePoint.apply(String,l(e))}},decode:D,encode:B,toASCII:j,toUnicode:F},U={};function q(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function z(e){for(var t="",r=0,n=e.length;r<n;){var i=parseInt(e.substr(r+1,2),16);if(i<128)t+=String.fromCharCode(i),r+=3;else if(i>=194&&i<224){if(n-r>=6){var f=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&i)<<6|63&f)}else t+=e.substr(r,6);r+=6}else if(i>=224){if(n-r>=9){var o=parseInt(e.substr(r+4,2),16),a=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function H(e,t){function r(e){var r=z(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,q).replace(t.PCT_ENCODED,i)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,q).replace(t.PCT_ENCODED,i)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,q).replace(t.PCT_ENCODED,i)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,q).replace(t.PCT_ENCODED,i)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,q).replace(t.PCT_ENCODED,i)),e}function G(e){return e.replace(/^0*(.*)/,"$1")||"0"}function V(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=u(r,2)[1];return n?n.split(".").map(G).join("."):e}function K(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=u(r,3),i=n[1],f=n[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),a=u(o,2),s=a[0],c=a[1],l=c?c.split(":").map(G):[],d=s.split(":").map(G),h=t.IPV4ADDRESS.test(d[d.length-1]),p=h?7:8,b=d.length-p,y=Array(p),m=0;m<p;++m)y[m]=l[m]||d[b+m]||"";h&&(y[p-1]=V(y[p-1],t));var g=y.reduce((function(e,t,r){if(!t||"0"===t){var n=e[e.length-1];n&&n.index+n.length===r?n.length++:e.push({index:r,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],v=void 0;if(g&&g.length>1){var _=y.slice(0,g.index),w=y.slice(g.index+g.length);v=_.join(":")+"::"+w.join(":")}else v=y.join(":");return f&&(v+="%"+f),v}return e}var W=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,$=void 0==="".match(/(){0}/)[1];function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?c:s;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var i=e.match(W);if(i){$?(r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5])):(r.scheme=i[1]||void 0,r.userinfo=-1!==e.indexOf("@")?i[3]:void 0,r.host=-1!==e.indexOf("//")?i[4]:void 0,r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=-1!==e.indexOf("?")?i[7]:void 0,r.fragment=-1!==e.indexOf("#")?i[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),r.host&&(r.host=K(V(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var f=U[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||f&&f.unicodeSupport)H(r,n);else{if(r.host&&(t.domainHost||f&&f.domainHost))try{r.host=L.toASCII(r.host.replace(n.PCT_ENCODED,z).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+e}H(r,s)}f&&f.parse&&f.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function J(e,t){var r=!1!==t.iri?c:s,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(K(V(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var X=/^\.\.?\//,Z=/^\/\.(\/|$)/,Q=/^\/\.\.(\/|$)/,ee=/^\/?(?:.|\n)*?(?=\/|$)/;function te(e){for(var t=[];e.length;)if(e.match(X))e=e.replace(X,"");else if(e.match(Z))e=e.replace(Z,"/");else if(e.match(Q))e=e.replace(Q,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(ee);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?c:s,n=[],i=U[(t.scheme||e.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||i&&i.domainHost)try{e.host=t.iri?L.toUnicode(e.host):L.toASCII(e.host.replace(r.PCT_ENCODED,z).toLowerCase())}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+r}H(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var f=J(e,t);if(void 0!==f&&("suffix"!==t.reference&&n.push("//"),n.push(f),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var o=e.path;t.absolutePath||i&&i.absolutePath||(o=te(o)),void 0===f&&(o=o.replace(/^\/\//,"/%2F")),n.push(o)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function ne(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={};return arguments[3]||(e=Y(re(e,r),r),t=Y(re(t,r),r)),!(r=r||{}).tolerant&&t.scheme?(n.scheme=t.scheme,n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=te(t.path||""),n.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=te(t.path||""),n.query=t.query):(t.path?("/"===t.path.charAt(0)?n.path=te(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?n.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:n.path=t.path:n.path="/"+t.path,n.path=te(n.path)),n.query=t.query):(n.path=e.path,void 0!==t.query?n.query=t.query:n.query=e.query),n.userinfo=e.userinfo,n.host=e.host,n.port=e.port),n.scheme=e.scheme),n.fragment=t.fragment,n}function ie(e,t,r){var n=o({scheme:"null"},r);return re(ne(Y(e,n),Y(t,n),n,!0),n)}function fe(e,t){return"string"==typeof e?e=re(Y(e,t),t):"object"===n(e)&&(e=Y(re(e,t),t)),e}function oe(e,t,r){return"string"==typeof e?e=re(Y(e,r),r):"object"===n(e)&&(e=re(e,r)),"string"==typeof t?t=re(Y(t,r),r):"object"===n(t)&&(t=re(t,r)),e===t}function ae(e,t){return e&&e.toString().replace(t&&t.iri?c.ESCAPE:s.ESCAPE,q)}function se(e,t){return e&&e.toString().replace(t&&t.iri?c.PCT_ENCODED:s.PCT_ENCODED,z)}var ce={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},ue={scheme:"https",domainHost:ce.domainHost,parse:ce.parse,serialize:ce.serialize};function le(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var de={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=le(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(le(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=u(r,2),i=n[0],f=n[1];e.path=i&&"/"!==i?i:void 0,e.query=f,e.resourceName=void 0}return e.fragment=void 0,e}},he={scheme:"wss",domainHost:de.domainHost,parse:de.parse,serialize:de.serialize},pe={},be="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",ye="[0-9A-Fa-f]",me=r(r("%[EFef]"+ye+"%"+ye+ye+"%"+ye+ye)+"|"+r("%[89A-Fa-f]"+ye+"%"+ye+ye)+"|"+r("%"+ye+ye)),ge="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ve=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),_e="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",we=new RegExp(be,"g"),Ee=new RegExp(me,"g"),Ae=new RegExp(t("[^]",ge,"[\\.]",'[\\"]',ve),"g"),Se=new RegExp(t("[^]",be,_e),"g"),Te=Se;function xe(e){var t=z(e);return t.match(we)?t:e}var Pe={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var i=!1,f={},o=r.query.split("&"),a=0,s=o.length;a<s;++a){var c=o[a].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),l=0,d=u.length;l<d;++l)n.push(u[l]);break;case"subject":r.subject=se(c[1],t);break;case"body":r.body=se(c[1],t);break;default:i=!0,f[se(c[0],t)]=se(c[1],t)}}i&&(r.headers=f)}r.query=void 0;for(var h=0,p=n.length;h<p;++h){var b=n[h].split("@");if(b[0]=se(b[0]),t.unicodeSupport)b[1]=se(b[1],t).toLowerCase();else try{b[1]=L.toASCII(se(b[1],t).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}n[h]=b.join("@")}return r},serialize:function(e,t){var r=e,n=f(e.to);if(n){for(var o=0,a=n.length;o<a;++o){var s=String(n[o]),c=s.lastIndexOf("@"),u=s.slice(0,c).replace(Ee,xe).replace(Ee,i).replace(Ae,q),l=s.slice(c+1);try{l=t.iri?L.toUnicode(l):L.toASCII(se(l,t).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}n[o]=u+"@"+l}r.path=n.join(",")}var d=e.headers=e.headers||{};e.subject&&(d.subject=e.subject),e.body&&(d.body=e.body);var h=[];for(var p in d)d[p]!==pe[p]&&h.push(p.replace(Ee,xe).replace(Ee,i).replace(Se,q)+"="+d[p].replace(Ee,xe).replace(Ee,i).replace(Te,q));return h.length&&(r.query=h.join("&")),r}},Re=/^([^\:]+)\:(.*)/,ke={scheme:"urn",parse:function(e,t){var r=e.path&&e.path.match(Re),n=e;if(r){var i=t.scheme||n.scheme||"urn",f=r[1].toLowerCase(),o=r[2],a=i+":"+(t.nid||f),s=U[a];n.nid=f,n.nss=o,n.path=void 0,s&&(n=s.parse(n,t))}else n.error=n.error||"URN can not be parsed.";return n},serialize:function(e,t){var r=t.scheme||e.scheme||"urn",n=e.nid,i=r+":"+(t.nid||n),f=U[i];f&&(e=f.serialize(e,t));var o=e,a=e.nss;return o.path=(n||t.nid)+":"+a,o}},Ce=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Oe={scheme:"urn:uuid",parse:function(e,t){var r=e;return r.uuid=r.nss,r.nss=void 0,t.tolerant||r.uuid&&r.uuid.match(Ce)||(r.error=r.error||"UUID is not valid."),r},serialize:function(e,t){var r=e;return r.nss=(e.uuid||"").toLowerCase(),r}};U[ce.scheme]=ce,U[ue.scheme]=ue,U[de.scheme]=de,U[he.scheme]=he,U[Pe.scheme]=Pe,U[ke.scheme]=ke,U[Oe.scheme]=Oe,e.SCHEMES=U,e.pctEncChar=q,e.pctDecChars=z,e.parse=Y,e.removeDotSegments=te,e.serialize=re,e.resolveComponents=ne,e.resolve=ie,e.normalize=fe,e.equal=oe,e.escapeComponent=ae,e.unescapeComponent=se,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,r){"use strict";e.exports=function(e){for(var t,r=0,n=e.length,i=0;i<n;)r++,(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<n&&56320==(64512&(t=e.charCodeAt(i)))&&i++;return r}},function(e,t,r){"use strict";var n=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),i(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function i(e,t,r,f,o,a,s,c,u,l){if(f&&"object"==typeof f&&!Array.isArray(f)){for(var d in t(f,o,a,s,c,u,l),f){var h=f[d];if(Array.isArray(h)){if(d in n.arrayKeywords)for(var p=0;p<h.length;p++)i(e,t,r,h[p],o+"/"+d+"/"+p,a,o,d,f,p)}else if(d in n.propsKeywords){if(h&&"object"==typeof h)for(var b in h)i(e,t,r,h[b],o+"/"+d+"/"+b.replace(/~/g,"~0").replace(/\//g,"~1"),a,o,d,f,b)}else(d in n.keywords||e.allKeys&&!(d in n.skipKeywords))&&i(e,t,r,h,o+"/"+d,a,o,d,f)}r(f,o,a,s,c,u,l)}}n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},function(e,t,r){"use strict";var n=e.exports=function(){this._cache={}};n.prototype.put=function(e,t){this._cache[e]=t},n.prototype.get=function(e){return this._cache[e]},n.prototype.del=function(e){delete this._cache[e]},n.prototype.clear=function(){this._cache={}}},function(e,t,r){"use strict";var n=r(62),i=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,f=[0,31,28,31,30,31,30,31,31,30,31,30,31],o=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,a=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,s=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,l=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,h=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function b(e){return e="full"==e?"full":"fast",n.copy(b[e])}function y(e){var t=e.match(i);if(!t)return!1;var r=+t[1],n=+t[2],o=+t[3];return n>=1&&n<=12&&o>=1&&o<=(2==n&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(r)?29:f[n])}function m(e,t){var r=e.match(o);if(!r)return!1;var n=r[1],i=r[2],f=r[3],a=r[5];return(n<=23&&i<=59&&f<=59||23==n&&59==i&&60==f)&&(!t||a)}e.exports=b,b.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:l,"json-pointer":d,"json-pointer-uri-fragment":h,"relative-json-pointer":p},b.full={date:y,time:m,"date-time":function(e){var t=e.split(g);return 2==t.length&&y(t[0])&&m(t[1],!0)},uri:function(e){return v.test(e)&&s.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:l,"json-pointer":d,"json-pointer-uri-fragment":h,"relative-json-pointer":p};var g=/t|\s/i;var v=/\/|:/;var _=/[^\\]\\Z/;function w(e){if(_.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},function(e,t,r){"use strict";var n=r(736),i=r(62).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],t=["type","$comment"];return e.all=i(t),e.types=i(["number","integer","string","array","object","boolean","null"]),e.forEach((function(r){r.rules=r.rules.map((function(r){var i;if("object"==typeof r){var f=Object.keys(r)[0];i=r[f],r=f,i.forEach((function(r){t.push(r),e.all[r]=!0}))}return t.push(r),e.all[r]={keyword:r,code:n[r],implements:i}})),e.all.$comment={keyword:"$comment",code:n.$comment},r.type&&(e.types[r.type]=r)})),e.keywords=i(t.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},function(e,t,r){"use strict";e.exports={$ref:r(737),allOf:r(738),anyOf:r(739),$comment:r(740),const:r(741),contains:r(742),dependencies:r(743),enum:r(744),format:r(745),if:r(746),items:r(747),maximum:r(270),minimum:r(270),maxItems:r(271),minItems:r(271),maxLength:r(272),minLength:r(272),maxProperties:r(273),minProperties:r(273),multipleOf:r(748),not:r(749),oneOf:r(750),pattern:r(751),properties:r(752),propertyNames:r(753),required:r(754),uniqueItems:r(755),validate:r(269)}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i,f=" ",o=e.level,a=e.dataLevel,s=e.schema[t],c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(a||""),d="valid"+o;if("#"==s||"#/"==s)e.isRoot?(n=e.async,i="validate"):(n=!0===e.root.schema.$async,i="root.refVal[0]");else{var h=e.resolveRef(e.baseId,s,e.isRoot);if(void 0===h){var p=e.MissingRefError.message(e.baseId,s);if("fail"==e.opts.missingRefs){e.logger.error(p),(g=g||[]).push(f),f="",!1!==e.createErrors?(f+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(s)+"' } ",!1!==e.opts.messages&&(f+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(s)+"' "),e.opts.verbose&&(f+=" , schema: "+e.util.toQuotedString(s)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),f+=" } "):f+=" {} ";var b=f;f=g.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+b+"]); ":f+=" validate.errors = ["+b+"]; return false; ":f+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(f+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,s,p);e.logger.warn(p),u&&(f+=" if (true) { ")}}else if(h.inline){var y=e.util.copy(e);y.level++;var m="valid"+y.level;y.schema=h.schema,y.schemaPath="",y.errSchemaPath=s,f+=" "+e.validate(y).replace(/validate\.schema/g,h.code)+" ",u&&(f+=" if ("+m+") { ")}else n=!0===h.$async||e.async&&!1!==h.$async,i=h.code}if(i){var g;(g=g||[]).push(f),f="",e.opts.passContext?f+=" "+i+".call(this, ":f+=" "+i+"( ",f+=" "+l+", (dataPath || '')",'""'!=e.errorPath&&(f+=" + "+e.errorPath);var v=f+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";if(f=g.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(f+=" var "+d+"; "),f+=" try { await "+v+"; ",u&&(f+=" "+d+" = true; "),f+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(f+=" "+d+" = false; "),f+=" } ",u&&(f+=" if ("+d+") { ")}else f+=" if (!"+v+") { if (vErrors === null) vErrors = "+i+".errors; else vErrors = vErrors.concat("+i+".errors); errors = vErrors.length; } ",u&&(f+=" else { ")}return f}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.schema[t],f=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,s=e.util.copy(e),c="";s.level++;var u="valid"+s.level,l=s.baseId,d=!0,h=i;if(h)for(var p,b=-1,y=h.length-1;b<y;)p=h[b+=1],(e.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:e.util.schemaHasRules(p,e.RULES.all))&&(d=!1,s.schema=p,s.schemaPath=f+"["+b+"]",s.errSchemaPath=o+"/"+b,n+=" "+e.validate(s)+" ",s.baseId=l,a&&(n+=" if ("+u+") { ",c+="}"));return a&&(n+=d?" if (true) { ":" "+c.slice(0,-1)+" "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level;if(o.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&Object.keys(t).length>0:e.util.schemaHasRules(t,e.RULES.all)}))){var y=h.baseId;n+=" var "+d+" = errors; var "+l+" = false; ";var m=e.compositeRule;e.compositeRule=h.compositeRule=!0;var g=o;if(g)for(var v,_=-1,w=g.length-1;_<w;)v=g[_+=1],h.schema=v,h.schemaPath=a+"["+_+"]",h.errSchemaPath=s+"/"+_,n+=" "+e.validate(h)+" ",h.baseId=y,n+=" "+l+" = "+l+" || "+b+"; if (!"+l+") { ",p+="}";e.compositeRule=h.compositeRule=m,n+=" "+p+" if (!"+l+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else c&&(n+=" if (true) { ");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.schema[t],f=e.errSchemaPath+"/"+t,o=(e.opts.allErrors,e.util.toQuotedString(i));return!0===e.opts.$comment?n+=" console.log("+o+");":"function"==typeof e.opts.$comment&&(n+=" self._opts.$comment("+o+", "+e.util.toQuotedString(f)+", validate.root.schema);"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d=e.opts.$data&&o&&o.$data;d&&(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; "),d||(n+=" var schema"+i+" = validate.schema"+a+";"),n+="var "+l+" = equal("+u+", schema"+i+"); if (!"+l+") { ";var h=h||[];h.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { allowedValue: schema"+i+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to constant' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var p=n;return n=h.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+p+"]); ":n+=" validate.errors = ["+p+"]; return false; ":n+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e);h.level++;var p="valid"+h.level,b="i"+i,y=h.dataLevel=e.dataLevel+1,m="data"+y,g=e.baseId,v=e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all);if(n+="var "+d+" = errors;var "+l+";",v){var _=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=o,h.schemaPath=a,h.errSchemaPath=s,n+=" var "+p+" = false; for (var "+b+" = 0; "+b+" < "+u+".length; "+b+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers,!0);var w=u+"["+b+"]";h.dataPathArr[y]=b;var E=e.validate(h);h.baseId=g,e.util.varOccurences(E,m)<2?n+=" "+e.util.varReplace(E,m,w)+" ":n+=" var "+m+" = "+w+"; "+E+" ",n+=" if ("+p+") break; } ",e.compositeRule=h.compositeRule=_,n+=" if (!"+p+") {"}else n+=" if ("+u+".length == 0) {";var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should contain a valid item' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var S=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",v&&(n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e),h="";d.level++;var p="valid"+d.level,b={},y={},m=e.opts.ownProperties;for(w in o)if("__proto__"!=w){var g=o[w],v=Array.isArray(g)?y:b;v[w]=g}n+="var "+l+" = errors;";var _=e.errorPath;for(var w in n+="var missing"+i+";",y)if((v=y[w]).length){if(n+=" if ( "+u+e.util.getProperty(w)+" !== undefined ",m&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),c){n+=" && ( ";var E=v;if(E)for(var A=-1,S=E.length-1;A<S;){C=E[A+=1],A&&(n+=" || "),n+=" ( ( "+(I=u+(N=e.util.getProperty(C)))+" === undefined ",m&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(C)+"') "),n+=") && (missing"+i+" = "+e.util.toQuotedString(e.opts.jsonPointers?C:N)+") ) "}n+=")) { ";var T="missing"+i,x="' + "+T+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(_,T,!0):_+" + "+T);var P=P||[];P.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+v.length+", deps: '"+e.util.escapeQuotes(1==v.length?v[0]:v.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==v.length?n+="property "+e.util.escapeQuotes(v[0]):n+="properties "+e.util.escapeQuotes(v.join(", ")),n+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var R=n;n=P.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+R+"]); ":n+=" validate.errors = ["+R+"]; return false; ":n+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{n+=" ) { ";var k=v;if(k)for(var C,O=-1,M=k.length-1;O<M;){C=k[O+=1];var N=e.util.getProperty(C),I=(x=e.util.escapeQuotes(C),u+N);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(_,C,e.opts.jsonPointers)),n+=" if ( "+I+" === undefined ",m&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(C)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+v.length+", deps: '"+e.util.escapeQuotes(1==v.length?v[0]:v.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==v.length?n+="property "+e.util.escapeQuotes(v[0]):n+="properties "+e.util.escapeQuotes(v.join(", ")),n+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}n+=" } ",c&&(h+="}",n+=" else { ")}e.errorPath=_;var D=d.baseId;for(var w in b){g=b[w];(e.opts.strictKeywords?"object"==typeof g&&Object.keys(g).length>0:e.util.schemaHasRules(g,e.RULES.all))&&(n+=" "+p+" = true; if ( "+u+e.util.getProperty(w)+" !== undefined ",m&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),n+=") { ",d.schema=g,d.schemaPath=a+e.util.getProperty(w),d.errSchemaPath=s+"/"+e.util.escapeFragment(w),n+=" "+e.validate(d)+" ",d.baseId=D,n+=" } ",c&&(n+=" if ("+p+") { ",h+="}"))}return c&&(n+=" "+h+" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d=e.opts.$data&&o&&o.$data;d&&(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; ");var h="i"+i,p="schema"+i;d||(n+=" var "+p+" = validate.schema"+a+";"),n+="var "+l+";",d&&(n+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),n+=l+" = false;for (var "+h+"=0; "+h+"<"+p+".length; "+h+"++) if (equal("+u+", "+p+"["+h+"])) { "+l+" = true; break; }",d&&(n+=" } "),n+=" if (!"+l+") { ";var b=b||[];b.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { allowedValues: schema"+i+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var y=n;return n=b.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+y+"]); ":n+=" validate.errors = ["+y+"]; return false; ":n+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||"");if(!1===e.opts.format)return c&&(n+=" if (true) { "),n;var l,d=e.opts.$data&&o&&o.$data;d?(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; ",l="schema"+i):l=o;var h=e.opts.unknownFormats,p=Array.isArray(h);if(d){n+=" var "+(b="format"+i)+" = formats["+l+"]; var "+(y="isObject"+i)+" = typeof "+b+" == 'object' && !("+b+" instanceof RegExp) && "+b+".validate; var "+(m="formatType"+i)+" = "+y+" && "+b+".type || 'string'; if ("+y+") { ",e.async&&(n+=" var async"+i+" = "+b+".async; "),n+=" "+b+" = "+b+".validate; } if ( ",d&&(n+=" ("+l+" !== undefined && typeof "+l+" != 'string') || "),n+=" (","ignore"!=h&&(n+=" ("+l+" && !"+b+" ",p&&(n+=" && self._opts.unknownFormats.indexOf("+l+") == -1 "),n+=") || "),n+=" ("+b+" && "+m+" == '"+r+"' && !(typeof "+b+" == 'function' ? ",e.async?n+=" (async"+i+" ? await "+b+"("+u+") : "+b+"("+u+")) ":n+=" "+b+"("+u+") ",n+=" : "+b+".test("+u+"))))) {"}else{var b;if(!(b=e.formats[o])){if("ignore"==h)return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(n+=" if (true) { "),n;if(p&&h.indexOf(o)>=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var y,m=(y="object"==typeof b&&!(b instanceof RegExp)&&b.validate)&&b.type||"string";if(y){var g=!0===b.async;b=b.validate}if(m!=r)return c&&(n+=" if (true) { "),n;if(g){if(!e.async)throw new Error("async format in sync schema");n+=" if (!(await "+(v="formats"+e.util.getProperty(o)+".validate")+"("+u+"))) { "}else{n+=" if (! ";var v="formats"+e.util.getProperty(o);y&&(v+=".validate"),n+="function"==typeof b?" "+v+"("+u+") ":" "+v+".test("+u+") ",n+=") { "}}var _=_||[];_.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { format: ",n+=d?""+l:""+e.util.toQuotedString(o),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=d?"' + "+l+" + '":""+e.util.escapeQuotes(o),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var w=n;return n=_.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+w+"]); ":n+=" validate.errors = ["+w+"]; return false; ":n+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e);h.level++;var p="valid"+h.level,b=e.schema.then,y=e.schema.else,m=void 0!==b&&(e.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:e.util.schemaHasRules(b,e.RULES.all)),g=void 0!==y&&(e.opts.strictKeywords?"object"==typeof y&&Object.keys(y).length>0:e.util.schemaHasRules(y,e.RULES.all)),v=h.baseId;if(m||g){var _;h.createErrors=!1,h.schema=o,h.schemaPath=a,h.errSchemaPath=s,n+=" var "+d+" = errors; var "+l+" = true; ";var w=e.compositeRule;e.compositeRule=h.compositeRule=!0,n+=" "+e.validate(h)+" ",h.baseId=v,h.createErrors=!0,n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=w,m?(n+=" if ("+p+") { ",h.schema=e.schema.then,h.schemaPath=e.schemaPath+".then",h.errSchemaPath=e.errSchemaPath+"/then",n+=" "+e.validate(h)+" ",h.baseId=v,n+=" "+l+" = "+p+"; ",m&&g?n+=" var "+(_="ifClause"+i)+" = 'then'; ":_="'then'",n+=" } ",g&&(n+=" else { ")):n+=" if (!"+p+") { ",g&&(h.schema=e.schema.else,h.schemaPath=e.schemaPath+".else",h.errSchemaPath=e.errSchemaPath+"/else",n+=" "+e.validate(h)+" ",h.baseId=v,n+=" "+l+" = "+p+"; ",m&&g?n+=" var "+(_="ifClause"+i)+" = 'else'; ":_="'else'",n+=" } "),n+=" if (!"+l+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { failingKeyword: "+_+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match \"' + "+_+" + '\" schema' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",c&&(n+=" else { ")}else c&&(n+=" if (true) { ");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,y="i"+i,m=h.dataLevel=e.dataLevel+1,g="data"+m,v=e.baseId;if(n+="var "+d+" = errors;var "+l+";",Array.isArray(o)){var _=e.schema.additionalItems;if(!1===_){n+=" "+l+" = "+u+".length <= "+o.length+"; ";var w=s;s=e.errSchemaPath+"/additionalItems",n+=" if (!"+l+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var A=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+A+"]); ":n+=" validate.errors = ["+A+"]; return false; ":n+=" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",s=w,c&&(p+="}",n+=" else { ")}var S=o;if(S)for(var T,x=-1,P=S.length-1;x<P;)if(T=S[x+=1],e.opts.strictKeywords?"object"==typeof T&&Object.keys(T).length>0:e.util.schemaHasRules(T,e.RULES.all)){n+=" "+b+" = true; if ("+u+".length > "+x+") { ";var R=u+"["+x+"]";h.schema=T,h.schemaPath=a+"["+x+"]",h.errSchemaPath=s+"/"+x,h.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),h.dataPathArr[m]=x;var k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,R)+" ":n+=" var "+g+" = "+R+"; "+k+" ",n+=" } ",c&&(n+=" if ("+b+") { ",p+="}")}if("object"==typeof _&&(e.opts.strictKeywords?"object"==typeof _&&Object.keys(_).length>0:e.util.schemaHasRules(_,e.RULES.all))){h.schema=_,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+b+" = true; if ("+u+".length > "+o.length+") { for (var "+y+" = "+o.length+"; "+y+" < "+u+".length; "+y+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);R=u+"["+y+"]";h.dataPathArr[m]=y;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,R)+" ":n+=" var "+g+" = "+R+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" } } ",c&&(n+=" if ("+b+") { ",p+="}")}}else if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=a,h.errSchemaPath=s,n+=" for (var "+y+" = 0; "+y+" < "+u+".length; "+y+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);R=u+"["+y+"]";h.dataPathArr[m]=y;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,R)+" ":n+=" var "+g+" = "+R+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i=" ",f=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(o||""),d=e.opts.$data&&a&&a.$data;if(d?(i+=" var schema"+f+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+f):n=a,!d&&"number"!=typeof a)throw new Error(t+" must be number");i+="var division"+f+";if (",d&&(i+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),i+=" (division"+f+" = "+l+" / "+n+", ",e.opts.multipleOfPrecision?i+=" Math.abs(Math.round(division"+f+") - division"+f+") > 1e-"+e.opts.multipleOfPrecision+" ":i+=" division"+f+" !== parseInt(division"+f+") ",i+=" ) ",d&&(i+=" ) "),i+=" ) { ";var h=h||[];h.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(i+=" , message: 'should be multiple of ",i+=d?"' + "+n:n+"'"),e.opts.verbose&&(i+=" , schema: ",i+=d?"validate.schema"+s:""+a,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var p=i;return i=h.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+p+"]); ":i+=" validate.errors = ["+p+"]; return false; ":i+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",u&&(i+=" else { "),i}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e);d.level++;var h="valid"+d.level;if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=a,d.errSchemaPath=s,n+=" var "+l+" = errors; ";var p,b=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=b,n+=" if ("+h+") { ";var y=y||[];y.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var m=n;n=y.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,y=h.baseId,m="prevValid"+i,g="passingSchemas"+i;n+="var "+d+" = errors , "+m+" = false , "+l+" = false , "+g+" = null; ";var v=e.compositeRule;e.compositeRule=h.compositeRule=!0;var _=o;if(_)for(var w,E=-1,A=_.length-1;E<A;)w=_[E+=1],(e.opts.strictKeywords?"object"==typeof w&&Object.keys(w).length>0:e.util.schemaHasRules(w,e.RULES.all))?(h.schema=w,h.schemaPath=a+"["+E+"]",h.errSchemaPath=s+"/"+E,n+=" "+e.validate(h)+" ",h.baseId=y):n+=" var "+b+" = true; ",E&&(n+=" if ("+b+" && "+m+") { "+l+" = false; "+g+" = ["+g+", "+E+"]; } else { ",p+="}"),n+=" if ("+b+") { "+l+" = "+m+" = true; "+g+" = "+E+"; }";return e.compositeRule=h.compositeRule=v,n+=p+"if (!"+l+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i=" ",f=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(o||""),d=e.opts.$data&&a&&a.$data;d?(i+=" var schema"+f+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+f):n=a,i+="if ( ",d&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'string') || "),i+=" !"+(d?"(new RegExp("+n+"))":e.usePattern(a))+".test("+l+") ) { ";var h=h||[];h.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",i+=d?""+n:""+e.util.toQuotedString(a),i+=" } ",!1!==e.opts.messages&&(i+=" , message: 'should match pattern \"",i+=d?"' + "+n+" + '":""+e.util.escapeQuotes(a),i+="\"' "),e.opts.verbose&&(i+=" , schema: ",i+=d?"validate.schema"+s:""+e.util.toQuotedString(a),i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var p=i;return i=h.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+p+"]); ":i+=" validate.errors = ["+p+"]; return false; ":i+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",u&&(i+=" else { "),i}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e),h="";d.level++;var p="valid"+d.level,b="key"+i,y="idx"+i,m=d.dataLevel=e.dataLevel+1,g="data"+m,v="dataProperties"+i,_=Object.keys(o||{}).filter(N),w=e.schema.patternProperties||{},E=Object.keys(w).filter(N),A=e.schema.additionalProperties,S=_.length||E.length,T=!1===A,x="object"==typeof A&&Object.keys(A).length,P=e.opts.removeAdditional,R=T||x||P,k=e.opts.ownProperties,C=e.baseId,O=e.schema.required;if(O&&(!e.opts.$data||!O.$data)&&O.length<e.opts.loopRequired)var M=e.util.toHash(O);function N(e){return"__proto__"!==e}if(n+="var "+l+" = errors;var "+p+" = true;",k&&(n+=" var "+v+" = undefined;"),R){if(n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+v+".length; "+y+"++) { var "+b+" = "+v+"["+y+"]; ":" for (var "+b+" in "+u+") { ",S){if(n+=" var isAdditional"+i+" = !(false ",_.length)if(_.length>8)n+=" || validate.schema"+a+".hasOwnProperty("+b+") ";else{var I=_;if(I)for(var D=-1,B=I.length-1;D<B;)Y=I[D+=1],n+=" || "+b+" == "+e.util.toQuotedString(Y)+" "}if(E.length){var F=E;if(F)for(var j=-1,L=F.length-1;j<L;)fe=F[j+=1],n+=" || "+e.usePattern(fe)+".test("+b+") "}n+=" ); if (isAdditional"+i+") { "}if("all"==P)n+=" delete "+u+"["+b+"]; ";else{var U=e.errorPath,q="' + "+b+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers)),T)if(P)n+=" delete "+u+"["+b+"]; ";else{n+=" "+p+" = false; ";var z=s;s=e.errSchemaPath+"/additionalProperties",(re=re||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { additionalProperty: '"+q+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is an invalid additional property":n+="should NOT have additional properties",n+="' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var H=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=z,c&&(n+=" break; ")}else if(x)if("failing"==P){n+=" var "+l+" = errors; ";var G=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=A,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);var V=u+"["+b+"]";d.dataPathArr[m]=b;var K=e.validate(d);d.baseId=C,e.util.varOccurences(K,g)<2?n+=" "+e.util.varReplace(K,g,V)+" ":n+=" var "+g+" = "+V+"; "+K+" ",n+=" if (!"+p+") { errors = "+l+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+b+"]; } ",e.compositeRule=d.compositeRule=G}else{d.schema=A,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);V=u+"["+b+"]";d.dataPathArr[m]=b;K=e.validate(d);d.baseId=C,e.util.varOccurences(K,g)<2?n+=" "+e.util.varReplace(K,g,V)+" ":n+=" var "+g+" = "+V+"; "+K+" ",c&&(n+=" if (!"+p+") break; ")}e.errorPath=U}S&&(n+=" } "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}var W=e.opts.useDefaults&&!e.compositeRule;if(_.length){var $=_;if($)for(var Y,J=-1,X=$.length-1;J<X;){var Z=o[Y=$[J+=1]];if(e.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0:e.util.schemaHasRules(Z,e.RULES.all)){var Q=e.util.getProperty(Y),ee=(V=u+Q,W&&void 0!==Z.default);d.schema=Z,d.schemaPath=a+Q,d.errSchemaPath=s+"/"+e.util.escapeFragment(Y),d.errorPath=e.util.getPath(e.errorPath,Y,e.opts.jsonPointers),d.dataPathArr[m]=e.util.toQuotedString(Y);K=e.validate(d);if(d.baseId=C,e.util.varOccurences(K,g)<2){K=e.util.varReplace(K,g,V);var te=V}else{te=g;n+=" var "+g+" = "+V+"; "}if(ee)n+=" "+K+" ";else{if(M&&M[Y]){n+=" if ( "+te+" === undefined ",k&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Y)+"') "),n+=") { "+p+" = false; ";U=e.errorPath,z=s;var re,ne=e.util.escapeQuotes(Y);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(U,Y,e.opts.jsonPointers)),s=e.errSchemaPath+"/required",(re=re||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+ne+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+ne+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";H=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=z,e.errorPath=U,n+=" } else { "}else c?(n+=" if ( "+te+" === undefined ",k&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Y)+"') "),n+=") { "+p+" = true; } else { "):(n+=" if ("+te+" !== undefined ",k&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Y)+"') "),n+=" ) { ");n+=" "+K+" } "}}c&&(n+=" if ("+p+") { ",h+="}")}}if(E.length){var ie=E;if(ie)for(var fe,oe=-1,ae=ie.length-1;oe<ae;){Z=w[fe=ie[oe+=1]];if(e.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0:e.util.schemaHasRules(Z,e.RULES.all)){d.schema=Z,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(fe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(fe),n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+v+".length; "+y+"++) { var "+b+" = "+v+"["+y+"]; ":" for (var "+b+" in "+u+") { ",n+=" if ("+e.usePattern(fe)+".test("+b+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);V=u+"["+b+"]";d.dataPathArr[m]=b;K=e.validate(d);d.baseId=C,e.util.varOccurences(K,g)<2?n+=" "+e.util.varReplace(K,g,V)+" ":n+=" var "+g+" = "+V+"; "+K+" ",c&&(n+=" if (!"+p+") break; "),n+=" } ",c&&(n+=" else "+p+" = true; "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}}}return c&&(n+=" "+h+" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e);d.level++;var h="valid"+d.level;if(n+="var "+l+" = errors;",e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=a,d.errSchemaPath=s;var p="key"+i,b="idx"+i,y="i"+i,m="' + "+p+" + '",g="data"+(d.dataLevel=e.dataLevel+1),v="dataProperties"+i,_=e.opts.ownProperties,w=e.baseId;_&&(n+=" var "+v+" = undefined; "),n+=_?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+b+"=0; "+b+"<"+v+".length; "+b+"++) { var "+p+" = "+v+"["+b+"]; ":" for (var "+p+" in "+u+") { ",n+=" var startErrs"+i+" = errors; ";var E=p,A=e.compositeRule;e.compositeRule=d.compositeRule=!0;var S=e.validate(d);d.baseId=w,e.util.varOccurences(S,g)<2?n+=" "+e.util.varReplace(S,g,E)+" ":n+=" var "+g+" = "+E+"; "+S+" ",e.compositeRule=d.compositeRule=A,n+=" if (!"+h+") { for (var "+y+"=startErrs"+i+"; "+y+"<errors; "+y+"++) { vErrors["+y+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(n+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { propertyName: '"+m+"' } ",!1!==e.opts.messages&&(n+=" , message: 'property name \\'"+m+"\\' is invalid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),c&&(n+=" break; "),n+=" } }"}return c&&(n+=" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d=e.opts.$data&&o&&o.$data;d&&(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; ");var h="schema"+i;if(!d)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],b=o;if(b)for(var y,m=-1,g=b.length-1;m<g;){y=b[m+=1];var v=e.schema.properties[y];v&&(e.opts.strictKeywords?"object"==typeof v&&Object.keys(v).length>0:e.util.schemaHasRules(v,e.RULES.all))||(p[p.length]=y)}}else p=o;if(d||p.length){var _=e.errorPath,w=d||p.length>=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+i+"; ",w){d||(n+=" var "+h+" = validate.schema"+a+"; ");var A="' + "+(k="schema"+i+"["+(x="i"+i)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(_,k,e.opts.jsonPointers)),n+=" var "+l+" = true; ",d&&(n+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),n+=" for (var "+x+" = 0; "+x+" < "+h+".length; "+x+"++) { "+l+" = "+u+"["+h+"["+x+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", "+h+"["+x+"]) "),n+="; if (!"+l+") break; } ",d&&(n+=" } "),n+=" if (!"+l+") { ",(R=R||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var S=n;n=R.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var T=p;if(T)for(var x=-1,P=T.length-1;x<P;){O=T[x+=1],x&&(n+=" || "),n+=" ( ( "+(D=u+(I=e.util.getProperty(O)))+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),n+=") && (missing"+i+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:I)+") ) "}n+=") { ";var R;A="' + "+(k="missing"+i)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(_,k,!0):_+" + "+k),(R=R||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";S=n;n=R.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else if(w){d||(n+=" var "+h+" = validate.schema"+a+"; ");var k;A="' + "+(k="schema"+i+"["+(x="i"+i)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(_,k,e.opts.jsonPointers)),d&&(n+=" if ("+h+" && !Array.isArray("+h+")) { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+h+" !== undefined) { "),n+=" for (var "+x+" = 0; "+x+" < "+h+".length; "+x+"++) { if ("+u+"["+h+"["+x+"]] === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+h+"["+x+"]) "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",d&&(n+=" } ")}else{var C=p;if(C)for(var O,M=-1,N=C.length-1;M<N;){O=C[M+=1];var I=e.util.getProperty(O),D=(A=e.util.escapeQuotes(O),u+I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(_,O,e.opts.jsonPointers)),n+=" if ( "+D+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=_}else c&&(n+=" if (true) {");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i=" ",f=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(o||""),d="valid"+f,h=e.opts.$data&&a&&a.$data;if(h?(i+=" var schema"+f+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+f):n=a,(a||h)&&!1!==e.opts.uniqueItems){h&&(i+=" var "+d+"; if ("+n+" === false || "+n+" === undefined) "+d+" = true; else if (typeof "+n+" != 'boolean') "+d+" = false; else { "),i+=" var i = "+l+".length , "+d+" = true , j; if (i > 1) { ";var p=e.schema.items&&e.schema.items.type,b=Array.isArray(p);if(!p||"object"==p||"array"==p||b&&(p.indexOf("object")>=0||p.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+l+"[i], "+l+"[j])) { "+d+" = false; break outer; } } } ";else{i+=" var itemIndices = {}, item; for (;i--;) { var item = "+l+"[i]; ";var y="checkDataType"+(b?"s":"");i+=" if ("+e.util[y](p,"item",e.opts.strictNumbers,!0)+") continue; ",b&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}i+=" } ",h&&(i+=" } "),i+=" if (!"+d+") { ";var m=m||[];m.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(i+=" , schema: ",i+=h?"validate.schema"+s:""+a,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var g=i;i=m.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+g+"]); ":i+=" validate.errors = ["+g+"]; return false; ":i+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",u&&(i+=" else { ")}else u&&(i+=" if (true) { ");return i}},function(e,t,r){"use strict";var n=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var r=0;r<t.length;r++){e=JSON.parse(JSON.stringify(e));var i,f=t[r].split("/"),o=e;for(i=1;i<f.length;i++)o=o[f[i]];for(i=0;i<n.length;i++){var a=n[i],s=o[a];s&&(o[a]={anyOf:[s,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return e}},function(e,t,r){"use strict";var n=r(134).MissingRef;e.exports=function e(t,r,i){var f=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof r&&(i=r,r=void 0);var o=a(t).then((function(){var e=f._addSchema(t,void 0,r);return e.validate||s(e)}));i&&o.then((function(e){i(null,e)}),i);return o;function a(t){var r=t.$schema;return r&&!f.getSchema(r)?e.call(f,{$ref:r},!0):Promise.resolve()}function s(e){try{return f._compile(e)}catch(t){if(t instanceof n)return function(t){var n=t.missingSchema;if(c(n))throw new Error("Schema "+n+" is loaded but "+t.missingRef+" cannot be resolved");var i=f._loadingSchemas[n];i||(i=f._loadingSchemas[n]=f._opts.loadSchema(n)).then(o,o);return i.then((function(e){if(!c(n))return a(e).then((function(){c(n)||f.addSchema(e,n,void 0,r)}))})).then((function(){return s(e)}));function o(){delete f._loadingSchemas[n]}function c(e){return f._refs[e]||f._schemas[e]}}(t);throw t}}}},function(e,t,r){"use strict";var n=/^[a-z_$][a-z0-9_$-]*$/i,i=r(759),f=r(760);e.exports={add:function(e,t){var r=this.RULES;if(r.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!n.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(t){this.validateKeyword(t,!0);var f=t.type;if(Array.isArray(f))for(var o=0;o<f.length;o++)s(e,f[o],t);else s(e,f,t);var a=t.metaSchema;a&&(t.$data&&this._opts.$data&&(a={anyOf:[a,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(a,!0))}function s(e,t,n){for(var f,o=0;o<r.length;o++){var a=r[o];if(a.type==t){f=a;break}}f||(f={type:t,rules:[]},r.push(f));var s={keyword:e,definition:n,custom:!0,code:i,implements:n.implements};f.rules.push(s),r.custom[e]=s}return r.keywords[e]=r.all[e]=!0,this},get:function(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1},remove:function(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var r=0;r<t.length;r++)for(var n=t[r].rules,i=0;i<n.length;i++)if(n[i].keyword==e){n.splice(i,1);break}return this},validate:function e(t,r){e.errors=null;var n=this._validateKeyword=this._validateKeyword||this.compile(f,!0);if(n(t))return!0;if(e.errors=n.errors,r)throw new Error("custom keyword definition is invalid: "+this.errorsText(n.errors));return!1}}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i,f=" ",o=e.level,a=e.dataLevel,s=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,d="data"+(a||""),h="valid"+o,p="errs__"+o,b=e.opts.$data&&s&&s.$data;b?(f+=" var schema"+o+" = "+e.util.getData(s.$data,a,e.dataPathArr)+"; ",i="schema"+o):i=s;var y,m,g,v,_,w=this,E="definition"+o,A=w.definition,S="";if(b&&A.$data){_="keywordValidate"+o;var T=A.validateSchema;f+=" var "+E+" = RULES.custom['"+t+"'].definition; var "+_+" = "+E+".validate;"}else{if(!(v=e.useCustomRule(w,s,e.schema,e)))return;i="validate.schema"+c,_=v.code,y=A.compile,m=A.inline,g=A.macro}var x=_+".errors",P="i"+o,R="ruleErr"+o,k=A.async;if(k&&!e.async)throw new Error("async keyword in sync schema");if(m||g||(f+=x+" = null;"),f+="var "+p+" = errors;var "+h+";",b&&A.$data&&(S+="}",f+=" if ("+i+" === undefined) { "+h+" = true; } else { ",T&&(S+="}",f+=" "+h+" = "+E+".validateSchema("+i+"); if ("+h+") { ")),m)A.statements?f+=" "+v.validate+" ":f+=" "+h+" = "+v.validate+"; ";else if(g){var C=e.util.copy(e);S="";C.level++;var O="valid"+C.level;C.schema=v.validate,C.schemaPath="";var M=e.compositeRule;e.compositeRule=C.compositeRule=!0;var N=e.validate(C).replace(/validate\.schema/g,_);e.compositeRule=C.compositeRule=M,f+=" "+N}else{(F=F||[]).push(f),f="",f+=" "+_+".call( ",e.opts.passContext?f+="this":f+="self",y||!1===A.schema?f+=" , "+d+" ":f+=" , "+i+" , "+d+" , validate.schema"+e.schemaPath+" ",f+=" , (dataPath || '')",'""'!=e.errorPath&&(f+=" + "+e.errorPath);var I=a?"data"+(a-1||""):"parentData",D=a?e.dataPathArr[a]:"parentDataProperty",B=f+=" , "+I+" , "+D+" , rootData ) ";f=F.pop(),!1===A.errors?(f+=" "+h+" = ",k&&(f+="await "),f+=B+"; "):f+=k?" var "+(x="customErrors"+o)+" = null; try { "+h+" = await "+B+"; } catch (e) { "+h+" = false; if (e instanceof ValidationError) "+x+" = e.errors; else throw e; } ":" "+x+" = null; "+h+" = "+B+"; "}if(A.modifying&&(f+=" if ("+I+") "+d+" = "+I+"["+D+"];"),f+=""+S,A.valid)l&&(f+=" if (true) { ");else{var F;f+=" if ( ",void 0===A.valid?(f+=" !",f+=g?""+O:""+h):f+=" "+!A.valid+" ",f+=") { ",n=w.keyword,(F=F||[]).push(f),f="",(F=F||[]).push(f),f="",!1!==e.createErrors?(f+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(f+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(f+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var j=f;f=F.pop(),!e.compositeRule&&l?e.async?f+=" throw new ValidationError(["+j+"]); ":f+=" validate.errors = ["+j+"]; return false; ":f+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var L=f;f=F.pop(),m?A.errors?"full"!=A.errors&&(f+=" for (var "+P+"="+p+"; "+P+"<errors; "+P+"++) { var "+R+" = vErrors["+P+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(f+=" "+R+".schema = "+i+"; "+R+".data = "+d+"; "),f+=" } "):!1===A.errors?f+=" "+L+" ":(f+=" if ("+p+" == errors) { "+L+" } else { for (var "+P+"="+p+"; "+P+"<errors; "+P+"++) { var "+R+" = vErrors["+P+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(f+=" "+R+".schema = "+i+"; "+R+".data = "+d+"; "),f+=" } } "):g?(f+=" var err = ",!1!==e.createErrors?(f+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(f+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(f+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ",f+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(e.async?f+=" throw new ValidationError(vErrors); ":f+=" validate.errors = vErrors; return false; ")):!1===A.errors?f+=" "+L+" ":(f+=" if (Array.isArray("+x+")) { if (vErrors === null) vErrors = "+x+"; else vErrors = vErrors.concat("+x+"); errors = vErrors.length; for (var "+P+"="+p+"; "+P+"<errors; "+P+"++) { var "+R+" = vErrors["+P+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; "+R+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(f+=" "+R+".schema = "+i+"; "+R+".data = "+d+"; "),f+=" } } else { "+L+" } "),f+=" } ",l&&(f+=" else { ")}return f}},function(e,t,r){"use strict";var n=r(274);e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:n.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:n.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-06/schema#","$id":"http://json-schema.org/draft-06/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"examples":{"type":"array","items":{}},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":{},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":{}}')},function(e){e.exports=JSON.parse('{"$id":"http://json-schema.org/address","$schema":"http://json-schema.org/draft-06/schema#","description":"An Address following the convention of http://microformats.org/wiki/hcard","type":"object","properties":{"post-office-box":{"type":"string"},"extended-address":{"type":"string"},"street-address":{"type":"string"},"locality":{"type":"string"},"region":{"type":"string"},"postal-code":{"type":"string"},"country-name":{"type":"string"}},"dependencies":{"post-office-box":["street-address"],"extended-address":["street-address"]}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={rnf_invoice:{"0.0.1":r(765),"0.0.2":r(766),"0.0.3":r(767)}};t.default=n},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","description":"Request Network Format of an invoice","type":"object","additionalProperties":false,"required":["meta","invoiceNumber","creationDate","invoiceItems"],"properties":{"meta":{"description":"Meta information about the format","type":"object","additionalProperties":false,"required":["format","version"],"properties":{"format":{"const":"rnf_invoice"},"version":{"const":"0.0.1"}}},"creationDate":{"type":"string","format":"date-time"},"invoiceNumber":{"type":"string"},"purchaseOrderId":{"type":"string"},"note":{"type":"string"},"terms":{"type":"string"},"sellerInfo":{"description":"Seller information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"buyerInfo":{"description":"Buyer information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"invoiceItems":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","quantity","unitPrice","taxPercent","currency"],"properties":{"name":{"type":"string"},"reference":{"type":"string"},"quantity":{"type":"number","minimum":0},"unitPrice":{"type":"number","minimum":0},"discount":{"type":"number"},"taxPercent":{"type":"number"},"currency":{"type":"string","minLength":3,"maxLength":3},"deliveryDate":{"type":"string","format":"date-time"},"deliveryPeriod":{"type":"string"}}}},"paymentTerms":{"description":"Payment terms","type":"object","additionalProperties":false,"properties":{"dueDate":{"type":"string","format":"date-time"},"lateFeesPercent":{"type":"number"},"lateFeesFix":{"type":"number"},"miscellaneous":{"type":"object"}}},"miscellaneous":{"type":"object"}}}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","description":"Request Network Format of an invoice","type":"object","additionalProperties":false,"required":["meta","invoiceNumber","creationDate","invoiceItems"],"properties":{"meta":{"description":"Meta information about the format","type":"object","additionalProperties":false,"required":["format","version"],"properties":{"format":{"const":"rnf_invoice"},"version":{"const":"0.0.2"}}},"creationDate":{"type":"string","format":"date-time"},"invoiceNumber":{"type":"string"},"purchaseOrderId":{"type":"string"},"note":{"type":"string"},"terms":{"type":"string"},"sellerInfo":{"description":"Seller information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"buyerInfo":{"description":"Buyer information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"invoiceItems":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","quantity","unitPrice","taxPercent","currency"],"properties":{"name":{"type":"string"},"reference":{"type":"string"},"quantity":{"type":"number","minimum":0},"unitPrice":{"type":"string","pattern":"^\\\\d+$"},"discount":{"type":"string","pattern":"^\\\\d+$"},"taxPercent":{"type":"number"},"currency":{"type":"string","minLength":2,"maxLength":5},"deliveryDate":{"type":"string","format":"date-time"},"deliveryPeriod":{"type":"string"}}}},"paymentTerms":{"description":"Payment terms","type":"object","additionalProperties":false,"properties":{"dueDate":{"type":"string","format":"date-time"},"lateFeesPercent":{"type":"number"},"lateFeesFix":{"type":"string","pattern":"^\\\\d+$"},"miscellaneous":{"type":"object"}}},"miscellaneous":{"type":"object"}}}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","description":"Request Network Format of an invoice","type":"object","additionalProperties":false,"required":["meta","invoiceNumber","creationDate","invoiceItems"],"properties":{"meta":{"description":"Meta information about the format","type":"object","additionalProperties":false,"required":["format","version"],"properties":{"format":{"const":"rnf_invoice"},"version":{"const":"0.0.3"}}},"creationDate":{"type":"string","format":"date-time"},"invoiceNumber":{"type":"string"},"purchaseOrderId":{"type":"string"},"note":{"type":"string"},"terms":{"type":"string"},"sellerInfo":{"description":"Seller information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"buyerInfo":{"description":"Buyer information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"invoiceItems":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","quantity","unitPrice","tax","currency"],"properties":{"name":{"type":"string"},"reference":{"type":"string"},"quantity":{"type":"number","minimum":0},"unitPrice":{"type":"string","pattern":"^\\\\d+$"},"discount":{"type":"string","pattern":"^\\\\d+$"},"tax":{"description":"Tax information about the invoice","type":"object","additionalProperties":false,"required":["amount","type"],"properties":{"amount":{"type":"string"},"type":{"type":"string","enum":["percentage","fixed"]}},"if":{"properties":{"type":{"const":"percentage"}}},"then":{"properties":{"amount":{"pattern":"^\\\\d*\\\\.?\\\\d+$"}}},"else":{"properties":{"amount":{"pattern":"^\\\\d+$"}}}},"currency":{"type":"string","minLength":2,"maxLength":6},"deliveryDate":{"type":"string","format":"date-time"},"deliveryPeriod":{"type":"string"}}}},"paymentTerms":{"description":"Payment terms","type":"object","additionalProperties":false,"properties":{"dueDate":{"type":"string","format":"date-time"},"lateFeesPercent":{"type":"number"},"lateFeesFix":{"type":"string","pattern":"^\\\\d+$"},"miscellaneous":{"type":"object"}}},"miscellaneous":{"type":"object"}}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});(0,r(266).__exportStar)(r(769),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getInvoiceLineTotal=t.getInvoiceTotal=void 0;const n=r(6);t.getInvoiceTotal=e=>e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotal)(r))),n.BigNumber.from(0));t.getInvoiceLineTotal=e=>{const t=1e6,r=e.taxPercent?{type:"percentage",amount:String(e.taxPercent)}:e.tax||{type:"percentage",amount:"0"},i=r.amount&&"percentage"===r.type?Number(r.amount)+100:100,f=r.amount&&"fixed"===r.type?n.BigNumber.from(r.amount):n.BigNumber.from(0),o=e.discount?n.BigNumber.from(e.discount):n.BigNumber.from(0);return n.BigNumber.from(e.unitPrice).mul(Number(e.quantity*t).toFixed(0)).div(t).sub(o).mul(Number(i*t).toFixed(0)).div(t).div(100).add(f)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={requestClientVersionHeader:"X-Request-Network-Client-Version",httpRequestMaxRetry:3,httpRequestRetryDelay:100,getConfirmationMaxRetry:500,getConfirmationRetryDelay:3e3,getConfirmationDeferDelay:3e3}},function(e){e.exports=JSON.parse('{"name":"@requestnetwork/request-client.js","version":"0.39.1-next.1583+f224545a","publishConfig":{"access":"public"},"description":"Client side library for Request Network.","keywords":["requestnetwork","request-client.js"],"repository":{"type":"git","url":"git+https://github.com/RequestNetwork/requestNetwork.git"},"homepage":"https://github.com/RequestNetwork/requestNetwork/tree/master/packages/request-client.js#readme","bugs":{"url":"https://github.com/RequestNetwork/requestNetwork/issues"},"license":"MIT","engines":{"node":">=8.0.0"},"main":"dist/index.js","types":"dist/index.d.ts","directories":{"lib":"src","test":"test"},"files":["dist"],"scripts":{"build":"run-s build:commonjs build:umd","build:commonjs":"tsc -b","build:umd":"webpack","clean":"shx rm -rf dist tsconfig.tsbuildinfo","docs":"shx rm -rf ./docs && compodoc -p tsconfig.json --output docs --disablePrivate --gaID UA-105153327-8","lint":"eslint \\"src/**/*.ts\\"","prepare":"yarn run build","test":"jest","test:watch":"yarn test --watch"},"dependencies":{"@requestnetwork/advanced-logic":"0.34.1-next.1583+f224545a","@requestnetwork/currency":"0.8.1-next.1583+f224545a","@requestnetwork/data-access":"0.26.1-next.1583+f224545a","@requestnetwork/data-format":"0.9.1-next.1583+f224545a","@requestnetwork/epk-signature":"0.5.35-next.1583+f224545a","@requestnetwork/multi-format":"0.15.10-next.1583+f224545a","@requestnetwork/payment-detection":"0.35.1-next.1583+f224545a","@requestnetwork/request-logic":"0.26.10-next.1583+f224545a","@requestnetwork/smart-contracts":"0.28.1-next.1583+f224545a","@requestnetwork/transaction-manager":"0.26.10-next.1583+f224545a","@requestnetwork/types":"0.35.1-next.1583+f224545a","@requestnetwork/utils":"0.35.1-next.1583+f224545a","axios":"0.21.1","ethers":"5.5.1","tslib":"2.3.1"},"devDependencies":{"@compodoc/compodoc":"1.1.11","@types/jest":"26.0.13","amd-loader":"0.0.8","axios-mock-adapter":"1.19.0","duplicate-package-checker-webpack-plugin":"3.0.0","jest":"26.4.2","npm-run-all":"4.1.5","nyc":"15.1.0","prettier":"2.2.1","shx":"0.3.2","source-map-support":"0.5.19","terser-webpack-plugin":"4.2.3","ts-jest":"26.3.0","ts-loader":"8.3.0","ts-node":"9.0.0","typescript":"4.4.4","webpack":"4.44.2","webpack-bundle-analyzer":"4.2.0","webpack-cli":"3.3.12"},"gitHead":"f224545a3dc723230e404fdb13a14da7f63001ed"}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59),i=r(276),f=r(36),o=r(4),a=r(13),s=r(49),c=r(6),u=r(17),l=r(275);class d extends l.default{constructor({httpConfig:e,nodeConnectionConfig:t,web3:r,ethereumProviderUrl:n}={httpConfig:{},nodeConnectionConfig:{}}){super({httpConfig:e,nodeConnectionConfig:t}),this.cache={},this.networkName="",n=n||"http://localhost:8545",this.provider=r?new c.ethers.providers.Web3Provider(r.currentProvider):new c.ethers.providers.JsonRpcProvider({url:n})}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){}))}persistTransaction(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.submitterContract){const e=yield this.provider.getNetwork();this.networkName=1===e.chainId?"mainnet":4===e.chainId?"rinkeby":"private",this.submitterContract=new c.ethers.Contract(f.requestHashSubmitterArtifact.getAddress(this.networkName),f.requestHashSubmitterArtifact.getContractAbi(),this.provider.getSigner())}const n=i.Block.pushTransaction(i.Block.createEmptyBlock(),e,t,r),{data:{ipfsHash:o,ipfsSize:a}}=yield s.default.post("/ipfsAdd",{data:n},this.axiosConfig),l=yield this.submitterContract.getFeesAmount(a),d=yield this.submitterContract.submitHash(o,c.ethers.utils.hexZeroPad(c.ethers.utils.hexlify(a),32),{value:l}),h=yield this.provider.getBlock(d.blockNumber),p={blockConfirmation:d.confirmations,blockNumber:d.blockNumber,blockTimestamp:h.timestamp,fee:l,networkName:this.networkName,smartContractAddress:d.to,transactionHash:d.hash};this.cache[t]||(this.cache[t]={}),this.cache[t][o]={block:n,storageMeta:p};const b=Object.assign(new u.EventEmitter,{meta:{storageMeta:p,topics:r||[],transactionStorageLocation:o},result:{}});return d.wait().then((e=>{const t={blockConfirmation:e.confirmations,blockNumber:e.blockNumber,blockTimestamp:h.timestamp,fee:l,networkName:this.networkName,smartContractAddress:e.to,transactionHash:e.hash};b.emit("confirmed",{meta:{storageMeta:t,topics:r||[],transactionStorageLocation:o},result:{}})})),b}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{data:r}=yield a.default.retry((()=>(0,n.__awaiter)(this,void 0,void 0,(function*(){return s.default.get("/getTransactionsByChannelId",Object.assign(this.axiosConfig,{params:{channelId:e,timestampBoundaries:t}}))}))),{maxRetries:this.httpConfig.httpRequestMaxRetry,retryDelay:this.httpConfig.httpRequestRetryDelay})(),i=this.getCachedTransactionsAndCleanCache(e,r.meta.transactionsStorageLocation,t);return{meta:{storageMeta:r.meta.storageMeta.concat(i.meta.storageMeta),transactionsStorageLocation:r.meta.transactionsStorageLocation.concat(i.meta.transactionsStorageLocation)},result:{transactions:r.result.transactions.concat(i.result.transactions)}}}))}getCachedTransactionsAndCleanCache(e,t,r){for(const r of t)this.cache[e][r]=null;return Object.keys(this.cache[e]||[]).reduce(((t,n)=>{const i=this.cache[e][n];return this.cache[e][n]&&(!r||(void 0===r.from||r.from<=(null==i?void 0:i.storageMeta.blockTimestamp))&&(void 0===r.to||r.to>=(null==i?void 0:i.storageMeta.blockTimestamp)))&&(t.meta.storageMeta.push(null==i?void 0:i.storageMeta),t.meta.transactionsStorageLocation.push(n),t.result.transactions.push({state:o.DataAccessTypes.TransactionState.PENDING,timestamp:null==i?void 0:i.storageMeta.blockTimestamp,transaction:null==i?void 0:i.block.transactions[0]})),t}),{meta:{storageMeta:[],transactionsStorageLocation:[]},result:{transactions:[]}})}}t.default=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41),i=r(28),f=r(4),o=r(13),a=r(277),s=r(17),c=r(278),u=r(774),l=r(777),d=r(279),h={meta:{storageMeta:{},transactionsStorageLocation:{}},result:{transactions:{}}};t.default=class{constructor(e,t){this.isInitialized=!1;const r={ignoredLocationIndex:new u.default,logger:new o.default.SimpleLogger,synchronizationIntervalTime:1e4,transactionIndex:new d.default},{ignoredLocationIndex:n,logger:i,synchronizationIntervalTime:f,transactionIndex:a}=Object.assign(Object.assign({},r),t);this.storage=e,this.lastSyncStorageTimestamp=0,this.synchronizationTimer=new l.default((()=>this.synchronizeNewDataIds()),f,i,5),this.transactionIndex=a,this.ignoredLocationIndex=n,this.logger=i}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.isInitialized)throw new Error("already initialized");yield this.transactionIndex.initialize(),yield this.storage.initialize();const e=yield this.transactionIndex.getLastTransactionTimestamp(),t=o.default.getCurrentTimestampInSecond(),r=yield this.storage.getData(e?{from:e,to:t}:void 0);this.lastSyncStorageTimestamp=r.lastTimestamp,yield this.pushLocationsWithTopics(r.entries),this.isInitialized=!0}))}persistTransaction(e,t,r=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const f=r.filter((e=>!i.default.hashFormat.isDeserializableString(e)));if(0!==f.length)throw new Error(`The following topics are not well formatted: ${JSON.stringify(f)}`);const o=c.default.pushTransaction(c.default.createEmptyBlock(),e,t,r),a=yield this.storage.append(JSON.stringify(o)),u=Object.assign(new s.EventEmitter,{meta:{storageMeta:a.meta,topics:r,transactionStorageLocation:a.id},result:{}});return a.on("confirmed",(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){yield this.transactionIndex.updateTimestamp(e.id,e.meta.timestamp);const t={meta:{storageMeta:e.meta,topics:r,transactionStorageLocation:e.id},result:{}};u.emit("confirmed",t)})))).on("error",(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){u.emit("error",e)})))),yield this.transactionIndex.addTransaction(a.id,o.header,a.meta.timestamp),u}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const r=yield this.transactionIndex.getStorageLocationList(e,t);return(yield this.getBlockAndMetaFromStorageLocation(r)).map((t=>{const r=c.default.getTransactionPositionFromChannelId(t.block,e);return this.getTransactionAndMetaFromPosition(r,t.block,t.location,t.meta)})).reduce(((e,t)=>({meta:{storageMeta:e.meta.storageMeta.concat(t.storageMeta),transactionsStorageLocation:e.meta.transactionsStorageLocation.concat(t.transactionsStorageLocation)},result:{transactions:e.result.transactions.concat(t.transactions)}})),{meta:{storageMeta:[],transactionsStorageLocation:[]},result:{transactions:[]}})}))}getChannelsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.checkInitialized(),!i.default.hashFormat.isDeserializableString(e))throw new Error(`The topic is not well formatted: ${e}`);const r=yield this.transactionIndex.getChannelIdsForTopic(e,t);return a.map(r,(e=>this.getTransactionsByChannelId(e).then((t=>({channelId:e,transactionsWithMeta:t}))))).reduce(((e,t)=>{const r=t.channelId;return e.meta.transactionsStorageLocation[r]=t.transactionsWithMeta.meta.transactionsStorageLocation,e.meta.storageMeta[r]=t.transactionsWithMeta.meta.storageMeta,e.result.transactions[r]=t.transactionsWithMeta.result.transactions,e}),o.default.deepCopy(h))}))}getChannelsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.checkInitialized(),e.some((e=>!i.default.hashFormat.isDeserializableString(e))))throw new Error("The topics are not well formatted");const r=yield this.transactionIndex.getChannelIdsForMultipleTopics(e,t);return a.map(r,(e=>this.getTransactionsByChannelId(e).then((t=>({channelId:e,transactionsWithMeta:t}))))).reduce(((e,t)=>{const r=t.channelId;return e.meta.transactionsStorageLocation[r]=t.transactionsWithMeta.meta.transactionsStorageLocation,e.meta.storageMeta[r]=t.transactionsWithMeta.meta.storageMeta,e.result.transactions[r]=t.transactionsWithMeta.result.transactions,e}),o.default.deepCopy(h))}))}synchronizeNewDataIds(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const e=o.default.getCurrentTimestampInSecond();let t=0;this.lastSyncStorageTimestamp>0&&(t=this.lastSyncStorageTimestamp+1);const r=yield this.storage.getData({from:t,to:e}),n=yield this.storage.getIgnoredData();yield this.pushLocationsWithTopics(r.entries.concat(n)),this.lastSyncStorageTimestamp=r.lastTimestamp}))}startAutoSynchronization(){this.checkInitialized(),this.synchronizationTimer.start()}stopAutoSynchronization(){this.synchronizationTimer.stop()}_getStatus(e=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const t=yield this.transactionIndex.getLastTransactionTimestamp(),r=yield this.transactionIndex.getIndexedLocations(),n=yield this.ignoredLocationIndex.getIgnoredLocations(),i=this.synchronizationTimer.getConfig();return{filesIgnored:{count:Object.keys(n).length,list:e?n:void 0},filesRetrieved:{count:r.length,lastTimestamp:t,list:e?r:void 0},lastSynchronizationTimestamp:this.lastSyncStorageTimestamp,storage:yield this.storage._getStatus(e),synchronizationConfig:i}}))}pushLocationsWithTopics(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("data from storage do not follow the standard");let t=0,r=0;yield a.each(e,(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e.content||!e.id)throw Error("data from storage do not follow the standard");let n;const i=e.content;try{n=c.default.parseBlock(i),r++,yield this.transactionIndex.addTransaction(e.id,n.header,e.meta.timestamp)}catch(r){t++,yield this.ignoredLocationIndex.pushReasonByLocation(e.id,r.message),this.logger.debug(`Error: can't parse content of the dataId (${e.id}): ${r}`,["synchronization"])}})))),this.logger.info(`Synchronization: ${r} blocks synchronized, ${t} ignored from parsing error`,["synchronization"])}))}getBlockAndMetaFromStorageLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return Promise.all(e.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.storage.read(e);return{block:c.default.parseBlock(t.content),location:e,meta:t.meta}})))))}))}getTransactionAndMetaFromPosition(e,t,r,n){const i=o.default.unique(e).uniqueItems.map((e=>({state:n.state===f.StorageTypes.ContentState.CONFIRMED?f.DataAccessTypes.TransactionState.CONFIRMED:f.DataAccessTypes.TransactionState.PENDING,timestamp:n.timestamp,transaction:t.transactions[e]})));return{transactions:i,transactionsStorageLocation:Array(i.length).fill(r),storageMeta:Array(i.length).fill(n)}}checkInitialized(){if(!this.isInitialized)throw new Error("DataAccess must be initialized")}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41),i=r(93);t.default=class{constructor(e){this.reasonsByIgnoredLocation=new i({namespace:"reasonsByIgnoredLocation",store:e}),this.listIgnoredLocation=new i({namespace:"listIgnoredLocation",store:e})}pushReasonByLocation(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){(yield this.reasonsByIgnoredLocation.get(e))||(yield this.reasonsByIgnoredLocation.set(e,t),yield this.updateDataId(e))}))}removeReasonByLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){yield this.reasonsByIgnoredLocation.delete(e)}))}getReasonFromLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.reasonsByIgnoredLocation.get(e);return t||null}))}getIgnoredLocations(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const e=yield this.listIgnoredLocation.get("list");if(!e)return{};const t={};for(const r of Array.from(e))t[r]=yield this.reasonsByIgnoredLocation.get(r);return t}))}updateDataId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let t=yield this.listIgnoredLocation.get("list");t||(t=[]),t.push(e),yield this.listIgnoredLocation.set("list",t)}))}}},function(e,t,r){(function(e){t.stringify=function t(r){if(void 0===r)return r;if(r&&e.isBuffer(r))return JSON.stringify(":base64:"+r.toString("base64"));if(r&&r.toJSON&&(r=r.toJSON()),r&&"object"==typeof r){var n="",i=Array.isArray(r);n=i?"[":"{";var f=!0;for(var o in r){var a="function"==typeof r[o]||!i&&void 0===r[o];Object.hasOwnProperty.call(r,o)&&!a&&(f||(n+=","),f=!1,i?null==r[o]?n+="null":n+=t(r[o]):void 0!==r[o]&&(n+=t(o)+":"+t(r[o])))}return n+=i?"]":"}"}return"string"==typeof r?JSON.stringify(/^:/.test(r)?":"+r:r):void 0===r?"null":JSON.stringify(r)},t.parse=function(t){return JSON.parse(t,(function(t,r){return"string"==typeof r?/^:base64:/.test(r)?e.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r}))}}).call(this,r(7).Buffer)},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=776},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41);t.default=class{constructor(e,t,r,n=1){this.intervalFunctionSuccessiveFailureCount=0,this.timeoutObject=null,this.intervalFunction=e,this.intervalTime=t,this.logger=r,this.successiveFailureThreshold=n}start(){if(this.timeoutObject)throw Error("IntervalTimer already started");const e=()=>(0,n.__awaiter)(this,void 0,void 0,(function*(){try{yield this.intervalFunction(),this.intervalFunctionSuccessiveFailureCount=0}catch(e){this.logger.warn(`${this.intervalFunction.name||"intervalFunction"} error: ${e}`),this.intervalFunctionSuccessiveFailureCount++,this.intervalFunctionSuccessiveFailureCount>=this.successiveFailureThreshold&&this.logger.error(`${this.intervalFunction.name||"intervalFunction"} failed ${this.intervalFunctionSuccessiveFailureCount} times in a row, last error: ${e}`)}this.timeoutObject=setTimeout(e,this.intervalTime)}));this.timeoutObject=setTimeout(e,this.intervalTime)}stop(){if(!this.timeoutObject)throw Error("Can't stop IntervalTimer if it has not been started");clearTimeout(this.timeoutObject),this.timeoutObject=null}getConfig(){return{intervalTime:this.intervalTime,successiveFailureThreshold:this.successiveFailureThreshold}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41),i=r(277),f=r(93),o=r(280),a=r(281);t.default=class{constructor(e){this.timestampByLocation=new a.default(e),this.locationByTopic=new o.default(e),this.indexedLocation=new f({namespace:"indexedLocation",store:e})}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){}))}getLastTransactionTimestamp(){return this.timestampByLocation.getLastTransactionTimestamp()}addTransaction(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");yield this.locationByTopic.pushStorageLocationIndexedWithBlockTopics(e,t),yield this.timestampByLocation.pushTimestampByLocation(e,r),yield this.updateIndexedLocation(e)}))}removeTransaction(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");yield this.timestampByLocation.removeIndexedDataId(e)}))}updateTimestamp(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.timestampByLocation)throw new Error("TransactionIndex must be initialized");yield this.timestampByLocation.updateTimestampByLocation(e,t)}))}getStorageLocationList(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");let r=yield this.locationByTopic.getStorageLocationsFromChannelId(e);return r=yield i.filter(r,(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=null!==(yield this.timestampByLocation.getTimestampFromLocation(e)),n=!t||(yield this.timestampByLocation.isDataInBoundaries(e,t));return r&&n})))),r}))}getChannelIdsForTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");const r=yield this.locationByTopic.getChannelIdsFromTopic(e);if(t){const e=[];for(const n of r){const r=yield this.locationByTopic.getStorageLocationsFromChannelId(n);for(const i of r){if(yield this.timestampByLocation.isDataInBoundaries(i,t)){e.push(n);break}}}return e}return r}))}getChannelIdsForMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");const r=yield this.locationByTopic.getChannelIdsFromMultipleTopics(e);if(t){const e=[];for(const n of r){const r=yield this.locationByTopic.getStorageLocationsFromChannelId(n);for(const i of r){if(yield this.timestampByLocation.isDataInBoundaries(i,t)){e.push(n);break}}}return e}return r}))}getIndexedLocations(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return(yield this.indexedLocation.get("list"))||[]}))}updateIndexedLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let t=yield this.indexedLocation.get("list");t||(t=[]),t.includes(e)||(t.push(e),yield this.indexedLocation.set("list",t))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(276);class i extends n.DataAccess{constructor(e){super(e),this.isInitialized=!0}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59),i=r(28),f=r(4),o=r(13),a=r(17);t.default=class{constructor(){this.data=new Map,this.forceEmitError=!1}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){}))}_ipfsAdd(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("Error: no content provided");const t=i.default.serialize(o.default.crypto.normalizeKeccak256Hash(e)),r=o.default.getCurrentTimestampInSecond();return this.data.set(t,{content:e,state:f.StorageTypes.ContentState.PENDING,timestamp:r}),{ipfsHash:t,ipfsSize:e.length}}))}append(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("Error: no content provided");const t=i.default.serialize(o.default.crypto.normalizeKeccak256Hash(e)),r=o.default.getCurrentTimestampInSecond(),n={content:e,state:f.StorageTypes.ContentState.PENDING,timestamp:r};this.data.set(t,n);const s={content:e,id:t,meta:{state:f.StorageTypes.ContentState.PENDING,storageType:f.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:r}},c=Object.assign(new a.EventEmitter,s);return setTimeout((()=>{this.forceEmitError?(this.forceEmitError=!1,c.emit("error","forced error asked by _makeNextAppendFailInsteadOfConfirmed()")):(n.state=f.StorageTypes.ContentState.CONFIRMED,this.data.set(t,n),c.emit("confirmed",s))}),100),c}))}read(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("No id provided");const t=this.data.get(e);if(!t)throw Error("No content found from this id");return{content:t.content,id:e,meta:{state:t.state,storageType:f.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:t.timestamp}}}))}readMany(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return Promise.all(e.map((e=>this.read(e))))}))}getData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return{entries:Array.from(this.data.entries()).map((([e,{content:t,state:r,timestamp:n}])=>({content:t,id:e,meta:{state:r,storageType:f.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:n}}))),lastTimestamp:o.default.getCurrentTimestampInSecond()}}))}getIgnoredData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return[]}))}_getStatus(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return{dataIds:{count:Object.entries(this.data).length,values:e?Object.entries(this.data):void 0},ignoredDataIds:{count:0,values:e?[]:void 0}}}))}_makeNextAppendFailInsteadOfConfirmed(){this.forceEmitError=!0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Payment=t.Transaction=t.Storage=t.Identity=t.SignatureProvider=t.Signature=t.DataAccess=t.RequestLogic=t.Encryption=t.Extension=t.DecryptionProvider=t.Log=t.AdvancedLogic=void 0;(0,r(59).__exportStar)(r(140),t);var n=r(4);Object.defineProperty(t,"AdvancedLogic",{enumerable:!0,get:function(){return n.AdvancedLogicTypes}}),Object.defineProperty(t,"Log",{enumerable:!0,get:function(){return n.LogTypes}}),Object.defineProperty(t,"DecryptionProvider",{enumerable:!0,get:function(){return n.DecryptionProviderTypes}}),Object.defineProperty(t,"Extension",{enumerable:!0,get:function(){return n.ExtensionTypes}}),Object.defineProperty(t,"Encryption",{enumerable:!0,get:function(){return n.EncryptionTypes}}),Object.defineProperty(t,"RequestLogic",{enumerable:!0,get:function(){return n.RequestLogicTypes}}),Object.defineProperty(t,"DataAccess",{enumerable:!0,get:function(){return n.DataAccessTypes}}),Object.defineProperty(t,"Signature",{enumerable:!0,get:function(){return n.SignatureTypes}}),Object.defineProperty(t,"SignatureProvider",{enumerable:!0,get:function(){return n.SignatureProviderTypes}}),Object.defineProperty(t,"Identity",{enumerable:!0,get:function(){return n.IdentityTypes}}),Object.defineProperty(t,"Storage",{enumerable:!0,get:function(){return n.StorageTypes}}),Object.defineProperty(t,"Transaction",{enumerable:!0,get:function(){return n.TransactionTypes}}),Object.defineProperty(t,"Payment",{enumerable:!0,get:function(){return n.PaymentTypes}})},function(e,t,r){"use strict";r.r(t),r.d(t,"gql",(function(){return fe})),r.d(t,"resetCaches",(function(){return oe})),r.d(t,"disableFragmentWarnings",(function(){return ae})),r.d(t,"enableExperimentalFragmentVariables",(function(){return se})),r.d(t,"disableExperimentalFragmentVariables",(function(){return ce}));var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.create;Object.create;function i(e){return(i="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)}"function"==typeof Symbol&&null!=Symbol.iterator&&Symbol.iterator,"function"==typeof Symbol&&null!=Symbol.asyncIterator&&Symbol.asyncIterator;var f="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag";function o(e,t){for(var r,n=/\r\n|[\n\r]/g,i=1,f=t+1;(r=n.exec(e.body))&&r.index<t;)i+=1,f=t+1-(r.index+r[0].length);return{line:i,column:f}}function a(e){return s(e.source,o(e.source,e.start))}function s(e,t){var r=e.locationOffset.column-1,n=u(r)+e.body,i=t.line-1,f=e.locationOffset.line-1,o=t.line+f,a=1===t.line?r:0,s=t.column+a,l="".concat(e.name,":").concat(o,":").concat(s,"\n"),d=n.split(/\r\n|[\n\r]/g),h=d[i];if(h.length>120){for(var p=Math.floor(s/80),b=s%80,y=[],m=0;m<h.length;m+=80)y.push(h.slice(m,m+80));return l+c([["".concat(o),y[0]]].concat(y.slice(1,p+1).map((function(e){return["",e]})),[[" ",u(b-1)+"^"],["",y[p+1]]]))}return l+c([["".concat(o-1),d[i-1]],["".concat(o),h],["",u(s-1)+"^"],["".concat(o+1),d[i+1]]])}function c(e){var t=e.filter((function(e){e[0];return void 0!==e[1]})),r=Math.max.apply(Math,t.map((function(e){return e[0].length})));return t.map((function(e){var t,n=e[0],i=e[1];return u(r-(t=n).length)+t+(i?" | "+i:" |")})).join("\n")}function u(e){return Array(e+1).join(" ")}function l(e){return(l="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)}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?p(e):t}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return y(e,arguments,v(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),g(n,e)})(e)}function y(e,t,r){return(y=m()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var i=new(Function.bind.apply(e,n));return r&&g(i,r.prototype),i}).apply(null,arguments)}function m(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(b,e);var t,r,n,c,u,l=(t=b,r=m(),function(){var e,n=v(t);if(r){var i=v(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return h(this,e)});function b(e,t,r,n,f,a,s){var c,u,d,y,m;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,b),m=l.call(this,e);var g,v=Array.isArray(t)?0!==t.length?t:void 0:t?[t]:void 0,_=r;!_&&v&&(_=null===(g=v[0].loc)||void 0===g?void 0:g.source);var w,E=n;!E&&v&&(E=v.reduce((function(e,t){return t.loc&&e.push(t.loc.start),e}),[])),E&&0===E.length&&(E=void 0),n&&r?w=n.map((function(e){return o(r,e)})):v&&(w=v.reduce((function(e,t){return t.loc&&e.push(o(t.loc.source,t.loc.start)),e}),[]));var A,S=s;if(null==S&&null!=a){var T=a.extensions;"object"==i(A=T)&&null!==A&&(S=T)}return Object.defineProperties(p(m),{name:{value:"GraphQLError"},message:{value:e,enumerable:!0,writable:!0},locations:{value:null!==(c=w)&&void 0!==c?c:void 0,enumerable:null!=w},path:{value:null!=f?f:void 0,enumerable:null!=f},nodes:{value:null!=v?v:void 0},source:{value:null!==(u=_)&&void 0!==u?u:void 0},positions:{value:null!==(d=E)&&void 0!==d?d:void 0},originalError:{value:a},extensions:{value:null!==(y=S)&&void 0!==y?y:void 0,enumerable:null!=S}}),null!=a&&a.stack?(Object.defineProperty(p(m),"stack",{value:a.stack,writable:!0,configurable:!0}),h(m)):(Error.captureStackTrace?Error.captureStackTrace(p(m),b):Object.defineProperty(p(m),"stack",{value:Error().stack,writable:!0,configurable:!0}),m)}return n=b,(c=[{key:"toString",value:function(){return function(e){var t=e.message;if(e.nodes)for(var r=0,n=e.nodes;r<n.length;r++){var i=n[r];i.loc&&(t+="\n\n"+a(i.loc))}else if(e.source&&e.locations)for(var f=0,o=e.locations;f<o.length;f++){var c=o[f];t+="\n\n"+s(e.source,c)}return t}(this)}},{key:f,get:function(){return"Object"}}])&&d(n.prototype,c),u&&d(n,u),b}(b(Error));function w(e,t,r){return new _("Syntax Error: ".concat(r),void 0,e,[t])}var E=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"});var A="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;function S(e){var t=e.prototype.toJSON;"function"==typeof t||function(e,t){if(!Boolean(e))throw new Error(null!=t?t:"Unexpected invariant triggered.")}(0),e.prototype.inspect=t,A&&(e.prototype[A]=t)}var T=function(){function e(e,t,r){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=r}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();S(T);var x=function(){function e(e,t,r,n,i,f,o){this.kind=e,this.start=t,this.end=r,this.line=n,this.column=i,this.value=o,this.prev=f,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();S(x);var P=Object.freeze({SOF:"<SOF>",EOF:"<EOF>",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});function R(e){return(R="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)}function k(e){return C(e,[])}function C(e,t){switch(R(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":return null===e?"null":function(e,t){if(-1!==t.indexOf(e))return"[Circular]";var r=[].concat(t,[e]),n=function(e){var t=e[String(A)];if("function"==typeof t)return t;if("function"==typeof e.inspect)return e.inspect}(e);if(void 0!==n){var i=n.call(e);if(i!==e)return"string"==typeof i?i:C(i,r)}else if(Array.isArray(e))return function(e,t){if(0===e.length)return"[]";if(t.length>2)return"[Array]";for(var r=Math.min(10,e.length),n=e.length-r,i=[],f=0;f<r;++f)i.push(C(e[f],t));1===n?i.push("... 1 more item"):n>1&&i.push("... ".concat(n," more items"));return"["+i.join(", ")+"]"}(e,r);return function(e,t){var r=Object.keys(e);if(0===r.length)return"{}";if(t.length>2)return"["+function(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var r=e.constructor.name;if("string"==typeof r&&""!==r)return r}return t}(e)+"]";return"{ "+r.map((function(r){return r+": "+C(e[r],t)})).join(", ")+" }"}(e,r)}(e,t);default:return String(e)}}function O(e,t){if(!Boolean(e))throw new Error(t)}var M=function(e,t){return e instanceof t};function N(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var I=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||O(0,"Body must be a string. Received: ".concat(k(e),".")),this.body=e,this.name=t,this.locationOffset=r,this.locationOffset.line>0||O(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||O(0,"column in locationOffset is 1-indexed and must be positive.")}var t,r,n;return t=e,(r=[{key:f,get:function(){return"Source"}}])&&N(t.prototype,r),n&&N(t,n),e}();var D=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});function B(e){var t=e.split(/\r\n|[\n\r]/g),r=function(e){for(var t,r=!0,n=!0,i=0,f=null,o=0;o<e.length;++o)switch(e.charCodeAt(o)){case 13:10===e.charCodeAt(o+1)&&++o;case 10:r=!1,n=!0,i=0;break;case 9:case 32:++i;break;default:n&&!r&&(null===f||i<f)&&(f=i),n=!1}return null!==(t=f)&&void 0!==t?t:0}(e);if(0!==r)for(var n=1;n<t.length;n++)t[n]=t[n].slice(r);for(var i=0;i<t.length&&F(t[i]);)++i;for(var f=t.length;f>i&&F(t[f-1]);)--f;return t.slice(i,f).join("\n")}function F(e){for(var t=0;t<e.length;++t)if(" "!==e[t]&&"\t"!==e[t])return!1;return!0}var j=function(){function e(e){var t=new x(P.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e=this.token;if(e.kind!==P.EOF)do{var t;e=null!==(t=e.next)&&void 0!==t?t:e.next=U(this,e)}while(e.kind===P.COMMENT);return e},e}();function L(e){return isNaN(e)?P.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function U(e,t){for(var r=e.source,n=r.body,i=n.length,f=t.end;f<i;){var o=n.charCodeAt(f),a=e.line,s=1+f-e.lineStart;switch(o){case 65279:case 9:case 32:case 44:++f;continue;case 10:++f,++e.line,e.lineStart=f;continue;case 13:10===n.charCodeAt(f+1)?f+=2:++f,++e.line,e.lineStart=f;continue;case 33:return new x(P.BANG,f,f+1,a,s,t);case 35:return z(r,f,a,s,t);case 36:return new x(P.DOLLAR,f,f+1,a,s,t);case 38:return new x(P.AMP,f,f+1,a,s,t);case 40:return new x(P.PAREN_L,f,f+1,a,s,t);case 41:return new x(P.PAREN_R,f,f+1,a,s,t);case 46:if(46===n.charCodeAt(f+1)&&46===n.charCodeAt(f+2))return new x(P.SPREAD,f,f+3,a,s,t);break;case 58:return new x(P.COLON,f,f+1,a,s,t);case 61:return new x(P.EQUALS,f,f+1,a,s,t);case 64:return new x(P.AT,f,f+1,a,s,t);case 91:return new x(P.BRACKET_L,f,f+1,a,s,t);case 93:return new x(P.BRACKET_R,f,f+1,a,s,t);case 123:return new x(P.BRACE_L,f,f+1,a,s,t);case 124:return new x(P.PIPE,f,f+1,a,s,t);case 125:return new x(P.BRACE_R,f,f+1,a,s,t);case 34:return 34===n.charCodeAt(f+1)&&34===n.charCodeAt(f+2)?K(r,f,a,s,t,e):V(r,f,a,s,t);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return H(r,f,o,a,s,t);case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 95:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:return $(r,f,a,s,t)}throw w(r,f,q(o))}var c=e.line,u=1+f-e.lineStart;return new x(P.EOF,i,i,c,u,t)}function q(e){return e<32&&9!==e&&10!==e&&13!==e?"Cannot contain the invalid character ".concat(L(e),"."):39===e?"Unexpected single quote character ('), did you mean to use a double quote (\")?":"Cannot parse the unexpected character ".concat(L(e),".")}function z(e,t,r,n,i){var f,o=e.body,a=t;do{f=o.charCodeAt(++a)}while(!isNaN(f)&&(f>31||9===f));return new x(P.COMMENT,t,a,r,n,i,o.slice(t+1,a))}function H(e,t,r,n,i,f){var o=e.body,a=r,s=t,c=!1;if(45===a&&(a=o.charCodeAt(++s)),48===a){if((a=o.charCodeAt(++s))>=48&&a<=57)throw w(e,s,"Invalid number, unexpected digit after 0: ".concat(L(a),"."))}else s=G(e,s,a),a=o.charCodeAt(s);if(46===a&&(c=!0,a=o.charCodeAt(++s),s=G(e,s,a),a=o.charCodeAt(s)),69!==a&&101!==a||(c=!0,43!==(a=o.charCodeAt(++s))&&45!==a||(a=o.charCodeAt(++s)),s=G(e,s,a),a=o.charCodeAt(s)),46===a||function(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}(a))throw w(e,s,"Invalid number, expected digit but got: ".concat(L(a),"."));return new x(c?P.FLOAT:P.INT,t,s,n,i,f,o.slice(t,s))}function G(e,t,r){var n=e.body,i=t,f=r;if(f>=48&&f<=57){do{f=n.charCodeAt(++i)}while(f>=48&&f<=57);return i}throw w(e,i,"Invalid number, expected digit but got: ".concat(L(f),"."))}function V(e,t,r,n,i){for(var f,o,a,s,c=e.body,u=t+1,l=u,d=0,h="";u<c.length&&!isNaN(d=c.charCodeAt(u))&&10!==d&&13!==d;){if(34===d)return h+=c.slice(l,u),new x(P.STRING,t,u+1,r,n,i,h);if(d<32&&9!==d)throw w(e,u,"Invalid character within String: ".concat(L(d),"."));if(++u,92===d){switch(h+=c.slice(l,u-1),d=c.charCodeAt(u)){case 34:h+='"';break;case 47:h+="/";break;case 92:h+="\\";break;case 98:h+="\b";break;case 102:h+="\f";break;case 110:h+="\n";break;case 114:h+="\r";break;case 116:h+="\t";break;case 117:var p=(f=c.charCodeAt(u+1),o=c.charCodeAt(u+2),a=c.charCodeAt(u+3),s=c.charCodeAt(u+4),W(f)<<12|W(o)<<8|W(a)<<4|W(s));if(p<0){var b=c.slice(u+1,u+5);throw w(e,u,"Invalid character escape sequence: \\u".concat(b,"."))}h+=String.fromCharCode(p),u+=4;break;default:throw w(e,u,"Invalid character escape sequence: \\".concat(String.fromCharCode(d),"."))}l=++u}}throw w(e,u,"Unterminated string.")}function K(e,t,r,n,i,f){for(var o=e.body,a=t+3,s=a,c=0,u="";a<o.length&&!isNaN(c=o.charCodeAt(a));){if(34===c&&34===o.charCodeAt(a+1)&&34===o.charCodeAt(a+2))return u+=o.slice(s,a),new x(P.BLOCK_STRING,t,a+3,r,n,i,B(u));if(c<32&&9!==c&&10!==c&&13!==c)throw w(e,a,"Invalid character within String: ".concat(L(c),"."));10===c?(++a,++f.line,f.lineStart=a):13===c?(10===o.charCodeAt(a+1)?a+=2:++a,++f.line,f.lineStart=a):92===c&&34===o.charCodeAt(a+1)&&34===o.charCodeAt(a+2)&&34===o.charCodeAt(a+3)?(u+=o.slice(s,a)+'"""',s=a+=4):++a}throw w(e,a,"Unterminated string.")}function W(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function $(e,t,r,n,i){for(var f=e.body,o=f.length,a=t+1,s=0;a!==o&&!isNaN(s=f.charCodeAt(a))&&(95===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122);)++a;return new x(P.NAME,t,a,r,n,i,f.slice(t,a))}var Y=function(){function e(e,t){var r=function(e){return M(e,I)}(e)?e:new I(e);this._lexer=new j(r),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(P.NAME);return{kind:E.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:E.DOCUMENT,definitions:this.many(P.SOF,this.parseDefinition,P.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(P.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(P.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},t.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(P.BRACE_L))return{kind:E.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var t,r=this.parseOperationType();return this.peek(P.NAME)&&(t=this.parseName()),{kind:E.OPERATION_DEFINITION,operation:r,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseOperationType=function(){var e=this.expectToken(P.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(P.PAREN_L,this.parseVariableDefinition,P.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:E.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(P.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(P.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(P.DOLLAR),{kind:E.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:E.SELECTION_SET,selections:this.many(P.BRACE_L,this.parseSelection,P.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(P.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,r=this._lexer.token,n=this.parseName();return this.expectOptionalToken(P.COLON)?(e=n,t=this.parseName()):t=n,{kind:E.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(P.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(r)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(P.PAREN_L,t,P.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(P.COLON),{kind:E.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:E.ARGUMENT,name:this.parseName(),value:(this.expectToken(P.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(P.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(P.NAME)?{kind:E.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:E.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return this.expectKeyword("fragment"),!0===(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)?{kind:E.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:E.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case P.BRACKET_L:return this.parseList(e);case P.BRACE_L:return this.parseObject(e);case P.INT:return this._lexer.advance(),{kind:E.INT,value:t.value,loc:this.loc(t)};case P.FLOAT:return this._lexer.advance(),{kind:E.FLOAT,value:t.value,loc:this.loc(t)};case P.STRING:case P.BLOCK_STRING:return this.parseStringLiteral();case P.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:E.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:E.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:E.NULL,loc:this.loc(t)};default:return{kind:E.ENUM,value:t.value,loc:this.loc(t)}}case P.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:E.STRING,value:e.value,block:e.kind===P.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,r=this._lexer.token;return{kind:E.LIST,values:this.any(P.BRACKET_L,(function(){return t.parseValueLiteral(e)}),P.BRACKET_R),loc:this.loc(r)}},t.parseObject=function(e){var t=this,r=this._lexer.token;return{kind:E.OBJECT,fields:this.any(P.BRACE_L,(function(){return t.parseObjectField(e)}),P.BRACE_R),loc:this.loc(r)}},t.parseObjectField=function(e){var t=this._lexer.token,r=this.parseName();return this.expectToken(P.COLON),{kind:E.OBJECT_FIELD,name:r,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(P.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(P.AT),{kind:E.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return this.expectOptionalToken(P.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(P.BRACKET_R),e={kind:E.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(P.BANG)?{kind:E.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:E.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===P.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(P.STRING)||this.peek(P.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var r=this.parseDirectives(!0),n=this.many(P.BRACE_L,this.parseOperationTypeDefinition,P.BRACE_R);return{kind:E.SCHEMA_DEFINITION,description:t,directives:r,operationTypes:n,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(P.COLON);var r=this.parseNamedType();return{kind:E.OPERATION_TYPE_DEFINITION,operation:t,type:r,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var r=this.parseName(),n=this.parseDirectives(!0);return{kind:E.SCALAR_TYPE_DEFINITION,description:t,name:r,directives:n,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var r=this.parseName(),n=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:E.OBJECT_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:i,fields:f,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if(!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)){var t=[];this.expectOptionalToken(P.AMP);do{t.push(this.parseNamedType())}while(this.expectOptionalToken(P.AMP)||this.peek(P.NAME));return t}return this.delimitedMany(P.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var e;return!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)&&this.peek(P.BRACE_L)&&this._lexer.lookahead().kind===P.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(P.BRACE_L,this.parseFieldDefinition,P.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),r=this.parseName(),n=this.parseArgumentDefs();this.expectToken(P.COLON);var i=this.parseTypeReference(),f=this.parseDirectives(!0);return{kind:E.FIELD_DEFINITION,description:t,name:r,arguments:n,type:i,directives:f,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(P.PAREN_L,this.parseInputValueDef,P.PAREN_R)},t.parseInputValueDef=function(){var e=this._lexer.token,t=this.parseDescription(),r=this.parseName();this.expectToken(P.COLON);var n,i=this.parseTypeReference();this.expectOptionalToken(P.EQUALS)&&(n=this.parseValueLiteral(!0));var f=this.parseDirectives(!0);return{kind:E.INPUT_VALUE_DEFINITION,description:t,name:r,type:i,defaultValue:n,directives:f,loc:this.loc(e)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var r=this.parseName(),n=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:E.INTERFACE_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:i,fields:f,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var r=this.parseName(),n=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:E.UNION_TYPE_DEFINITION,description:t,name:r,directives:n,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(P.EQUALS)?this.delimitedMany(P.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var r=this.parseName(),n=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:E.ENUM_TYPE_DEFINITION,description:t,name:r,directives:n,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(P.BRACE_L,this.parseEnumValueDefinition,P.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),r=this.parseName(),n=this.parseDirectives(!0);return{kind:E.ENUM_VALUE_DEFINITION,description:t,name:r,directives:n,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var r=this.parseName(),n=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:E.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:r,directives:n,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(P.BRACE_L,this.parseInputValueDef,P.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===P.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),r=this.optionalMany(P.BRACE_L,this.parseOperationTypeDefinition,P.BRACE_R);if(0===t.length&&0===r.length)throw this.unexpected();return{kind:E.SCHEMA_EXTENSION,directives:t,operationTypes:r,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),r=this.parseDirectives(!0);if(0===r.length)throw this.unexpected();return{kind:E.SCALAR_TYPE_EXTENSION,name:t,directives:r,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),r=this.parseImplementsInterfaces(),n=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===r.length&&0===n.length&&0===i.length)throw this.unexpected();return{kind:E.OBJECT_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),r=this.parseImplementsInterfaces(),n=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===r.length&&0===n.length&&0===i.length)throw this.unexpected();return{kind:E.INTERFACE_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),r=this.parseDirectives(!0),n=this.parseUnionMemberTypes();if(0===r.length&&0===n.length)throw this.unexpected();return{kind:E.UNION_TYPE_EXTENSION,name:t,directives:r,types:n,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),r=this.parseDirectives(!0),n=this.parseEnumValuesDefinition();if(0===r.length&&0===n.length)throw this.unexpected();return{kind:E.ENUM_TYPE_EXTENSION,name:t,directives:r,values:n,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),r=this.parseDirectives(!0),n=this.parseInputFieldsDefinition();if(0===r.length&&0===n.length)throw this.unexpected();return{kind:E.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:r,fields:n,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(P.AT);var r=this.parseName(),n=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var f=this.parseDirectiveLocations();return{kind:E.DIRECTIVE_DEFINITION,description:t,name:r,arguments:n,repeatable:i,locations:f,loc:this.loc(e)}},t.parseDirectiveLocations=function(){return this.delimitedMany(P.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==D[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if(!0!==(null===(t=this._options)||void 0===t?void 0:t.noLocation))return new T(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw w(this._lexer.source,t.start,"Expected ".concat(X(e),", found ").concat(J(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind!==P.NAME||t.value!==e)throw w(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(J(t),"."));this._lexer.advance()},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===P.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return w(this._lexer.source,t.start,"Unexpected ".concat(J(t),"."))},t.any=function(e,t,r){this.expectToken(e);for(var n=[];!this.expectOptionalToken(r);)n.push(t.call(this));return n},t.optionalMany=function(e,t,r){if(this.expectOptionalToken(e)){var n=[];do{n.push(t.call(this))}while(!this.expectOptionalToken(r));return n}return[]},t.many=function(e,t,r){this.expectToken(e);var n=[];do{n.push(t.call(this))}while(!this.expectOptionalToken(r));return n},t.delimitedMany=function(e,t){this.expectOptionalToken(e);var r=[];do{r.push(t.call(this))}while(this.expectOptionalToken(e));return r},e}();function J(e){var t=e.value;return X(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function X(e){return function(e){return e===P.BANG||e===P.DOLLAR||e===P.AMP||e===P.PAREN_L||e===P.PAREN_R||e===P.SPREAD||e===P.COLON||e===P.EQUALS||e===P.AT||e===P.BRACKET_L||e===P.BRACKET_R||e===P.BRACE_L||e===P.PIPE||e===P.BRACE_R}(e)?'"'.concat(e,'"'):e}var Z=new Map,Q=new Map,ee=!0,te=!1;function re(e){return e.replace(/[\s,]+/g," ").trim()}function ne(e){var t=new Set,r=[];return e.definitions.forEach((function(e){if("FragmentDefinition"===e.kind){var n=e.name.value,i=re((o=e.loc).source.body.substring(o.start,o.end)),f=Q.get(n);f&&!f.has(i)?ee&&console.warn("Warning: fragment with name "+n+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):f||Q.set(n,f=new Set),f.add(i),t.has(i)||(t.add(i),r.push(e))}else r.push(e);var o})),n(n({},e),{definitions:r})}function ie(e){var t=re(e);if(!Z.has(t)){var r=function(e,t){return new Y(e,t).parseDocument()}(e,{experimentalFragmentVariables:te});if(!r||"Document"!==r.kind)throw new Error("Not a valid GraphQL document.");Z.set(t,function(e){var t=new Set(e.definitions);t.forEach((function(e){e.loc&&delete e.loc,Object.keys(e).forEach((function(r){var n=e[r];n&&"object"==typeof n&&t.add(n)}))}));var r=e.loc;return r&&(delete r.startToken,delete r.endToken),e}(ne(r)))}return Z.get(t)}function fe(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];"string"==typeof e&&(e=[e]);var n=e[0];return t.forEach((function(t,r){t&&"Document"===t.kind?n+=t.loc.source.body:n+=t,n+=e[r+1]})),ie(n)}function oe(){Z.clear(),Q.clear()}function ae(){ee=!1}function se(){te=!0}function ce(){te=!1}var ue,le=fe,de=oe,he=ae,pe=se,be=ce;(ue=fe||(fe={})).gql=le,ue.resetCaches=de,ue.disableFragmentWarnings=he,ue.enableExperimentalFragmentVariables=pe,ue.disableExperimentalFragmentVariables=be,fe.default=fe;t.default=fe},,,,,,,,,,,,,,,,,function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return c}));var n=r(2),i=r(8),f=r(285);const o=new i.a(f.a);let a=null;try{if(a=window,null==a)throw new Error("try next")}catch(t){try{if(a=e,null==a)throw new Error("try next")}catch(e){a={}}}let s=a.crypto||a.msCrypto;function c(e){(e<=0||e>1024||e%1||e!=e)&&o.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return s.getRandomValues(t),Object(n.a)(t)}s&&s.getRandomValues||(o.warn("WARNING: Missing strong random number source"),s={getRandomValues:function(e){return o.throwError("no secure random source avaialble",i.a.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}})}).call(this,r(12))},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return c}));var n=r(0),i=r(3),f=r(292);const o=new i.b(f.a);let a=null;try{if(a=window,null==a)throw new Error("try next")}catch(t){try{if(a=e,null==a)throw new Error("try next")}catch(e){a={}}}let s=a.crypto||a.msCrypto;function c(e){(e<=0||e>1024||e%1||e!=e)&&o.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return s.getRandomValues(t),Object(n.a)(t)}s&&s.getRandomValues||(o.warn("WARNING: Missing strong random number source"),s={getRandomValues:function(e){return o.throwError("no secure random source avaialble",i.b.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}})}).call(this,r(12))}])}));
112
+ `},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadCurrencyFromContract=void 0;const n=r(15),i=r(6),f=r(72),o=r(4),a=r(544),s=r(51);t.loadCurrencyFromContract=e=>(0,n.__awaiter)(void 0,void 0,void 0,(function*(){if(!e.network||!i.utils.isAddress(e.value))return null;try{const t=a.ERC20__factory.connect(e.value,(0,s.getDefaultProvider)(e.network)),r=yield t.decimals();if(!r)return null;const n=yield t.symbol();if(!n)return null;const i={address:e.value,decimals:r,symbol:n,network:e.network,type:o.RequestLogicTypes.CURRENCY.ERC20};return Object.assign(Object.assign({},i),{id:f.CurrencyManager.currencyId(i),hash:(0,f.getCurrencyHash)(f.CurrencyManager.toStorageCurrency(i)),meta:null})}catch(e){return null}}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedNetworks=void 0;const n=r(495),i=r(496),f=r(499),o=r(500),a=r(501),s=r(502),c=r(503),u=r(504);t.supportedNetworks={celo:f.supportedCeloERC20,rinkeby:n.supportedRinkebyERC20,mainnet:i.supportedMainnetERC20,matic:o.supportedMaticERC20,fantom:a.supportedFantomTokens,bsctest:s.supportedBSCTestERC20,bsc:c.supportedBSCERC20,xdai:u.supportedXDAIERC20}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedRinkebyERC20=void 0,t.supportedRinkebyERC20={"0x995d6A8C21F24be1Dd04E105DD0d83758343E258":{decimals:18,name:"Central Bank Token",symbol:"CTBK"},"0xFab46E002BbF0b4509813474841E0716E6730136":{decimals:18,name:"Faucet Token",symbol:"FAU"}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedMainnetERC20=t.extraERC20Tokens=void 0;const n=(0,r(73).__importStar)(r(497));t.extraERC20Tokens={"0x433d86336dB759855A66cCAbe4338313a8A7fc77":{name:"Indacoin",symbol:"INDA",decimals:2},"0x8888801aF4d980682e47f1A9036e589479e835C5":{name:"88mph.app",symbol:"MPH",decimals:18},"0x967da4048cD07aB37855c090aAF366e4ce1b9F48":{name:"Ocean Token",symbol:"OCEAN",decimals:18},"0x8290333ceF9e6D528dD5618Fb97a76f268f3EDD4":{name:"Ankr Network",symbol:"ANKR",decimals:18},"0x70e8dE73cE538DA2bEEd35d14187F6959a8ecA96":{name:"XSGD",symbol:"XSGD",decimals:6},"0x6595b8fD9C920C81500dCa94e53Cdc712513Fb1f":{name:"Olyseum",symbol:"OLY",decimals:18},"0x8Ab7404063Ec4DBcfd4598215992DC3F8EC853d7":{name:"Akropolis",symbol:"AKRO",decimals:18},"0xf1f955016EcbCd7321c7266BccFB96c68ea5E49b":{name:"Rally",symbol:"RLY",decimals:18},"0x7815bDa662050D84718B988735218CFfd32f75ea":{name:"YEL Token",symbol:"YEL",decimals:18}},t.supportedMainnetERC20=Object.assign(Object.assign({},Object.entries(n).filter((([,e])=>e.erc20)).reduce(((e,[t,r])=>Object.assign(Object.assign({},e),{[t]:{name:r.name,symbol:r.symbol,decimals:r.decimals}})),{})),t.extraERC20Tokens)},function(e,t,r){e.exports=r(498)},function(e){e.exports=JSON.parse('{"0x10633216E7E8281e33c86F02Bf8e565a635D9770":{"name":"Dvision Network","logo":"dvision.svg","erc20":true,"symbol":"DVI","decimals":18},"0x898BAD2774EB97cF6b94605677F43b41871410B1":{"name":"vEth2","logo":"vEth2.svg","erc20":true,"symbol":"vEth2","decimals":18},"0x853d955aCEf822Db058eb8505911ED77F175b99e":{"name":"Frax","logo":"frax.svg","erc20":true,"symbol":"FRAX","decimals":18},"0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0":{"name":"Frax Share","logo":"fxs.svg","erc20":true,"symbol":"FXS","decimals":18},"0x84810bcF08744d5862B8181f12d17bfd57d3b078":{"name":"SharedStake","logo":"sharedstake.svg","erc20":true,"symbol":"SGT","decimals":18},"0x75387e1287Dd85482aB66102DA9f6577E027f609":{"name":"MindsyncAI","logo":"MAI.svg","erc20":true,"symbol":"MAI","decimals":18},"0x196f4727526eA7FB1e17b2071B3d8eAA38486988":{"name":"Reserve","logo":"rsv.svg","erc20":true,"symbol":"RSV","decimals":18},"0x8762db106B2c2A0bccB3A80d1Ed41273552616E8":{"name":"Reserve Rights","logo":"rsr.svg","erc20":true,"symbol":"RSR","decimals":18},"0x1cF4592ebfFd730c7dc92c1bdFFDfc3B9EfCf29a":{"name":"WAVES","logo":"waves.svg","erc20":true,"symbol":"WAVES","decimals":18},"0x62A6738d887F47e297676FaB05b902709B106C64":{"name":"ArCoin","logo":"ArCoin.svg","erc20":true,"symbol":"ARCA","decimals":18},"0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998":{"name":"Audius","logo":"audius.svg","erc20":true,"symbol":"AUDIO","decimals":18},"0x8E3BCC334657560253B83f08331d85267316e08a":{"name":"Rubic","logo":"brbc.svg","erc20":true,"symbol":"BRBC","decimals":18},"0xca1207647Ff814039530D7d35df0e1Dd2e91Fa84":{"name":"dHEDGE DAO Token","logo":"DHT.svg","erc20":true,"symbol":"DHT","decimals":18},"0x6243d8CEA23066d098a15582d81a598b4e8391F4":{"name":"Reflexer Ungovernance Token","logo":"flx.svg","erc20":true,"symbol":"FLX","decimals":18},"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919":{"name":"Rai Reflex Index","logo":"rai.svg","erc20":true,"symbol":"RAI","decimals":18},"0xF25c91C87e0B1fd9B4064Af0F427157AaB0193A7":{"name":"BASIC Token","logo":"basic.svg","erc20":true,"symbol":"BASIC","decimals":18},"0x53C8395465A84955c95159814461466053DedEDE":{"name":"DeGate Token","logo":"DG.svg","erc20":true,"symbol":"DG","decimals":18},"0xBCf9dBf8B14eD096B2BA08b7269356197fDd1b5D":{"name":"Avaluse","logo":"avaluse.svg","erc20":true,"symbol":"AVAL","decimals":18},"0x6E765D26388A17A6e86c49A8E41DF3F58aBcd337":{"name":"Kangal","logo":"kangal.svg","erc20":true,"symbol":"KANGAL","decimals":18},"0x9AF4f26941677C706cfEcf6D3379FF01bB85D5Ab":{"name":"DomRaiderToken","logo":"drt.svg","erc20":true,"symbol":"DRT","decimals":8},"0x06B179e292f080871825beD5D722162fD96B4c95":{"name":"10x.gg","logo":"xgg.svg","erc20":true,"symbol":"XGG","decimals":18},"0xF29992D7b589A0A6bD2de7Be29a97A6EB73EaF85":{"name":"DMScript","logo":"dmst.svg","erc20":true,"symbol":"DMST","decimals":18},"0xDd1Ad9A21Ce722C151A836373baBe42c868cE9a4":{"name":"Universal Basic Income","logo":"ubi.svg","erc20":true,"symbol":"UBI","decimals":18},"0xf293d23BF2CDc05411Ca0edDD588eb1977e8dcd4":{"name":"Sylo","logo":"SYLO.svg","erc20":true,"symbol":"SYLO","decimals":18},"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84":{"name":"Liquid staked Ether 2.0","logo":"stETH.svg","erc20":true,"symbol":"stETH","decimals":18},"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0":{"name":"Wrapped liquid staked Ether 2.0","logo":"wstETH.svg","erc20":true,"symbol":"wstETH","decimals":18},"0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32":{"name":"Lido DAO Token","logo":"LDO.svg","erc20":true,"symbol":"LDO","decimals":18},"0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9":{"name":"Wrapped LUNA Token","logo":"Luna.svg","erc20":true,"symbol":"LUNA","decimals":18},"0xa47c8bf37f92aBed4A126BDA807A7b7498661acD":{"name":"Wrapped UST Token","logo":"UST.svg","erc20":true,"symbol":"UST","decimals":18},"0xcAAfF72A8CbBfc5Cf343BA4e26f65a257065bFF1":{"name":"Wrapped KRT Token","logo":"KRT.svg","erc20":true,"symbol":"KRT","decimals":18},"0x676Ad1b33ae6423c6618C1AEcf53BAa29cf39EE5":{"name":"Wrapped SDT Token","logo":"SDT.svg","erc20":true,"symbol":"SDT","decimals":18},"0x156B36ec68FdBF84a925230BA96cb1Ca4c4bdE45":{"name":"Wrapped MNT Token","logo":"MNT.svg","erc20":true,"symbol":"MNT","decimals":18},"0x09a3EcAFa817268f77BE1283176B946C4ff2E608":{"name":"Wrapped MIR Token","logo":"MIR.svg","erc20":true,"symbol":"MIR","decimals":18},"0xd36932143F6eBDEDD872D5Fb0651f4B72Fd15a84":{"name":"Wrapped Mirror AAPL Token","logo":"mAAPL.svg","erc20":true,"symbol":"mAAPL","decimals":18},"0x59A921Db27Dd6d4d974745B7FfC5c33932653442":{"name":"Wrapped Mirror GOOGL Token","logo":"mGOOGL.svg","erc20":true,"symbol":"mGOOGL","decimals":18},"0x21cA39943E91d704678F5D00b6616650F066fD63":{"name":"Wrapped Mirror TSLA Token","logo":"mTSLA.svg","erc20":true,"symbol":"mTSLA","decimals":18},"0xC8d674114bac90148d11D3C1d33C61835a0F9DCD":{"name":"Wrapped Mirror NFLX Token","logo":"mNFLX.svg","erc20":true,"symbol":"mNFLX","decimals":18},"0x13B02c8dE71680e71F0820c996E4bE43c2F57d15":{"name":"Wrapped Mirror QQQ Token","logo":"mQQQ.svg","erc20":true,"symbol":"mQQQ","decimals":18},"0xEdb0414627E6f1e3F082DE65cD4F9C693D78CCA9":{"name":"Wrapped Mirror TWTR Token","logo":"mTWTR.svg","erc20":true,"symbol":"mTWTR","decimals":18},"0x41BbEDd7286dAab5910a1f15d12CBda839852BD7":{"name":"Wrapped Mirror MSFT Token","logo":"mMSFT.svg","erc20":true,"symbol":"mMSFT","decimals":18},"0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7":{"name":"Wrapped Mirror AMZN Token","logo":"mAMZN.svg","erc20":true,"symbol":"mAMZN","decimals":18},"0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72":{"name":"Wrapped Mirror BABA Token","logo":"mBABA.svg","erc20":true,"symbol":"mBABA","decimals":18},"0x1d350417d9787E000cc1b95d70E9536DcD91F373":{"name":"Wrapped Mirror IAU Token","logo":"mIAU.svg","erc20":true,"symbol":"mIAU","decimals":18},"0x9d1555d8cB3C846Bb4f7D5B1B1080872c3166676":{"name":"Wrapped Mirror SLV Token","logo":"mSLV.svg","erc20":true,"symbol":"mSLV","decimals":18},"0x31c63146a635EB7465e5853020b39713AC356991":{"name":"Wrapped Mirror USO Token","logo":"mUSO.svg","erc20":true,"symbol":"mUSO","decimals":18},"0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86":{"name":"Wrapped Mirror VIXY Token","logo":"mVIXY.svg","erc20":true,"symbol":"mVIXY","decimals":18},"0x21BfBDa47A0B4B5b1248c767Ee49F7caA9B23697":{"name":"OVR","logo":"OVR.svg","erc20":true,"symbol":"OVR","decimals":18},"0x4691937a7508860F876c9c0a2a617E7d9E945D4B":{"name":"Wootrade Network","logo":"wootrade.svg","erc20":true,"symbol":"WOO","decimals":18},"0x40FD72257597aA14C7231A7B1aaa29Fce868F677":{"name":"Sora Token","logo":"xor.svg","erc20":true,"symbol":"XOR","decimals":18},"0xe88f8313e61A97cEc1871EE37fBbe2a8bf3ed1E4":{"name":"Sora Validator Token","logo":"val.svg","erc20":true,"symbol":"VAL","decimals":18},"0xaf9f549774ecEDbD0966C52f250aCc548D3F36E5":{"name":"RFUEL","logo":"RFUEL.svg","erc20":true,"symbol":"RFUEL","decimals":18},"0x7420B4b9a0110cdC71fB720908340C03F9Bc03EC":{"name":"JasmyCoin","logo":"JASMY.svg","erc20":true,"symbol":"JASMY","decimals":18},"0x947AEb02304391f8fbE5B25D7D98D649b57b1788":{"name":"Mandala Exchange Token","logo":"mandala.svg","erc20":true,"symbol":"MDX","decimals":18},"0xCdeee767beD58c5325f68500115d4B722b3724EE":{"name":"Carbon","logo":"CRBN.svg","erc20":true,"symbol":"CRBN","decimals":18},"0xA4EED63db85311E22dF4473f87CcfC3DaDCFA3E3":{"name":"Rubic","logo":"Rubic.svg","erc20":true,"symbol":"RBC","decimals":18},"0x3A880652F47bFaa771908C07Dd8673A787dAEd3A":{"name":"DerivaDAO","logo":"DDX.svg","erc20":true,"symbol":"DDX","decimals":18},"0xbC396689893D065F41bc2C6EcbeE5e0085233447":{"name":"Perpetual","logo":"PERP.svg","erc20":true,"symbol":"PERP","decimals":18},"0xeca82185adCE47f39c684352B0439f030f860318":{"name":"Perlin","logo":"PERL.svg","erc20":true,"symbol":"PERL","decimals":18},"0xA1AFFfE3F4D611d252010E3EAf6f4D77088b0cd7":{"name":"Reflect Finance","logo":"RFI.svg","erc20":true,"symbol":"RFI","decimals":9},"0xC0bA369c8Db6eB3924965e5c4FD0b4C1B91e305F":{"name":"DLP Duck Token","logo":"dlpducktoken.svg","erc20":true,"symbol":"DUCK","decimals":18},"0xFbEEa1C75E4c4465CB2FCCc9c6d6afe984558E20":{"name":"DuckDaoDime","logo":"ddim.svg","erc20":true,"symbol":"DDIM","decimals":18},"0xB4d930279552397bbA2ee473229f89Ec245bc365":{"name":"MahaDAO","logo":"MAHA.svg","erc20":true,"symbol":"MAHA","decimals":18},"0x3231Cb76718CDeF2155FC47b5286d82e6eDA273f":{"name":"Monerium EUR","logo":"EURe.svg","erc20":true,"symbol":"EURe","decimals":18},"0x7ba92741Bf2A568abC6f1D3413c58c6e0244F8fD":{"name":"Monerium GBP","logo":"GBPe.svg","erc20":true,"symbol":"GBPe","decimals":18},"0xBc5142e0CC5eB16b47c63B0f033d4c2480853a52":{"name":"Monerium USD","logo":"USDe.svg","erc20":true,"symbol":"USDe","decimals":18},"0xC642549743A93674cf38D6431f75d6443F88E3E2":{"name":"Monerium ISK","logo":"ISKe.svg","erc20":true,"symbol":"ISKe","decimals":18},"0x66a0f676479Cee1d7373f3DC2e2952778BfF5bd6":{"name":"WISE Token","logo":"wise.svg","erc20":true,"symbol":"WISE","decimals":18},"0x72F020f8f3E8fd9382705723Cd26380f8D0c66Bb":{"name":"PlotX","logo":"plotx.svg","erc20":true,"symbol":"PLOT","decimals":18},"0x44197A4c44D6A059297cAf6be4F7e172BD56Caaf":{"name":"ELTCOIN","logo":"ELTCOIN.svg","erc20":true,"symbol":"ELT","decimals":8},"0x6781a0F84c7E9e846DCb84A9a5bd49333067b104":{"name":"ZAP TOKEN","logo":"zapicon.svg","erc20":true,"symbol":"ZAP","decimals":18},"0x00c83aeCC790e8a4453e5dD3B0B4b3680501a7A7":{"name":"SKALE","logo":"skl.svg","erc20":true,"symbol":"SKL","decimals":18},"0x674C6Ad92Fd080e4004b2312b45f796a192D27a0":{"name":"Neutrino USD","logo":"usdn.svg","erc20":true,"symbol":"USDN","decimals":18},"0xE5CAeF4Af8780E59Df925470b050Fb23C43CA68C":{"name":"Ferrum Network Token","logo":"frm.svg","erc20":true,"symbol":"FRM","decimals":6},"0x998FFE1E43fAcffb941dc337dD0468d52bA5b48A":{"name":"Rupiah Token","logo":"idrt.svg","erc20":true,"symbol":"IDRT","decimals":2},"0x4E15361FD6b4BB609Fa63C81A2be19d873717870":{"name":"Fantom","logo":"ftm.svg","erc20":true,"symbol":"FTM","decimals":18},"0x557B933a7C2c45672B610F8954A3deB39a51A8Ca":{"name":"REVV","logo":"revv.svg","erc20":true,"symbol":"REVV","decimals":18},"0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B":{"name":"Aave AAVE","logo":"aAAVE.svg","erc20":true,"symbol":"aAAVE","decimals":18},"0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1":{"name":"Aave BAT","logo":"aBAT.svg","erc20":true,"symbol":"aBAT","decimals":18},"0xA361718326c15715591c299427c62086F69923D9":{"name":"Aave BUSD","logo":"aBUSD.svg","erc20":true,"symbol":"aBUSD","decimals":18},"0x028171bCA77440897B824Ca71D1c56caC55b68A3":{"name":"Aave DAI","logo":"aDAI.svg","erc20":true,"symbol":"aDAI","decimals":18},"0xaC6Df26a590F08dcC95D5a4705ae8abbc88509Ef":{"name":"Aave ENJ","logo":"aENJ.svg","erc20":true,"symbol":"aENJ","decimals":18},"0xD37EE7e4f452C6638c96536e68090De8cBcdb583":{"name":"Aave GUSD","logo":"aGUSD.svg","erc20":true,"symbol":"aGUSD","decimals":2},"0x39C6b3e42d6A679d7D776778Fe880BC9487C2EDA":{"name":"Aave KNC","logo":"aKNC.svg","erc20":true,"symbol":"aKNC","decimals":18},"0xa06bC25B5805d5F8d82847D191Cb4Af5A3e873E0":{"name":"Aave LINK","logo":"aLINK.svg","erc20":true,"symbol":"aLINK","decimals":18},"0xa685a61171bb30d4072B338c80Cb7b2c865c873E":{"name":"Aave MANA","logo":"aMANA.svg","erc20":true,"symbol":"aMANA","decimals":18},"0xc713e5E149D5D0715DcD1c156a020976e7E56B88":{"name":"Aave MKR","logo":"aMKR.svg","erc20":true,"symbol":"aMKR","decimals":18},"0xCC12AbE4ff81c9378D670De1b57F8e0Dd228D77a":{"name":"Aave REN","logo":"aREN.svg","erc20":true,"symbol":"aREN","decimals":18},"0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2":{"name":"Aave SNX","logo":"aSNX.svg","erc20":true,"symbol":"aSNX","decimals":18},"0x6C5024Cd4F8A59110119C56f8933403A539555EB":{"name":"Aave SUSD","logo":"aSUSD.svg","erc20":true,"symbol":"aSUSD","decimals":18},"0x101cc05f4A51C0319f570d5E146a8C625198e636":{"name":"Aave TUSD","logo":"aTUSD.svg","erc20":true,"symbol":"aTUSD","decimals":18},"0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1":{"name":"Aave UNI","logo":"aUNI.svg","erc20":true,"symbol":"aUNI","decimals":18},"0xBcca60bB61934080951369a648Fb03DF4F96263C":{"name":"Aave USDC","logo":"aUSDC.svg","erc20":true,"symbol":"aUSDC","decimals":6},"0x3Ed3B47Dd13EC9a98b44e6204A523E766B225811":{"name":"Aave USDT","logo":"aUSDT.svg","erc20":true,"symbol":"aUSDT","decimals":6},"0x9ff58f4fFB29fA2266Ab25e75e2A8b3503311656":{"name":"Aave WBTC","logo":"aWBTC.svg","erc20":true,"symbol":"aWBTC","decimals":8},"0x030bA81f1c18d280636F32af80b9AAd02Cf0854e":{"name":"Aave WETH","logo":"aWETH.svg","erc20":true,"symbol":"aWETH","decimals":18},"0x5165d24277cD063F5ac44Efd447B27025e888f37":{"name":"Aave YFI","logo":"aYFI.svg","erc20":true,"symbol":"aYFI","decimals":18},"0xdef1fac7Bf08f173D286BbBDcBeeADe695129840":{"name":"Defi Factory Token","logo":"DEFT.svg","erc20":true,"symbol":"DEFT","decimals":18},"0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e":{"name":"Aave ZRX","logo":"aZRX.svg","erc20":true,"symbol":"aZRX","decimals":18},"0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9":{"name":"Aave","logo":"AAVE.svg","erc20":true,"symbol":"AAVE","decimals":18},"0x1Da87b114f35E1DC91F72bF57fc07A768Ad40Bb0":{"name":"Equalizer","logo":"EQZ.svg","erc20":true,"symbol":"EQZ","decimals":18},"0x4da27a545c0c5B758a6BA100e3a049001de870f5":{"name":"Staked Aave","logo":"stkAAVE.svg","erc20":true,"symbol":"stAAVE","decimals":18},"0xba9d4199faB4f26eFE3551D490E3821486f135Ba":{"name":"SwissBorg","logo":"chsb.svg","erc20":true,"symbol":"CHSB","decimals":8},"0x7DD9c5Cba05E151C895FDe1CF355C9A1D5DA6429":{"name":"Golem Network Token","logo":"glm.svg","erc20":true,"symbol":"GLM","decimals":18},"0x7240aC91f01233BaAf8b064248E80feaA5912BA3":{"name":"OctoFi","logo":"octo.svg","erc20":true,"symbol":"OCTO","decimals":18},"0xff56Cc6b1E6dEd347aA0B7676C85AB0B3D08B0FA":{"name":"Orbs","logo":"orbs.svg","erc20":true,"symbol":"ORBS","decimals":18},"0x63f88A2298a5c4AEE3c216Aa6D926B184a4b2437":{"name":"GAME Credits","logo":"GAMECreditsLogo.svg","erc20":true,"symbol":"GAME","decimals":18},"0x5150956E082C748Ca837a5dFa0a7C10CA4697f9c":{"name":"Zeedex","logo":"zdex.svg","erc20":true,"symbol":"ZDEX","decimals":18},"0x84cA8bc7997272c7CfB4D0Cd3D55cd942B3c9419":{"name":"DIAdata","logo":"dia.svg","erc20":true,"symbol":"DIA","decimals":18},"0xb78B3320493a4EFaa1028130C5Ba26f0B6085Ef8":{"name":"Dracula","logo":"dracula.svg","erc20":true,"symbol":"DRC","decimals":18},"0xF433089366899D83a9f26A773D59ec7eCF30355e":{"name":"Metal","logo":"mtl.svg","erc20":true,"symbol":"MTL","decimals":8},"0x85Eee30c52B0b379b046Fb0F85F4f3Dc3009aFEC":{"name":"KEEP","logo":"keep.svg","erc20":true,"symbol":"KEEP","decimals":18},"0x8dAEBADE922dF735c38C80C7eBD708Af50815fAa":{"name":"tBTC","logo":"tbtc.svg","erc20":true,"symbol":"TBTC","decimals":18},"0xD7EFB00d12C2c13131FD319336Fdf952525dA2af":{"name":"Proton","logo":"proton.svg","erc20":true,"symbol":"XPR","decimals":4},"0x178c820f862B14f316509ec36b13123DA19A6054":{"name":"Energy Web Token Bridged","logo":"ewtb.svg","erc20":true,"symbol":"EWTB","decimals":18},"0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39":{"name":"HEX","logo":"hex.svg","erc20":true,"symbol":"HEX","decimals":8},"0xFca59Cd816aB1eaD66534D82bc21E7515cE441CF":{"name":"Rarible","logo":"rari.svg","erc20":true,"symbol":"RARI","decimals":18},"0x7865af71cf0b288b4E7F654f4F7851EB46a2B7F8":{"name":"Sentivate","logo":"sentivate.svg","erc20":true,"symbol":"SNTVT","decimals":18},"0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e":{"name":"Metronome","logo":"metronome.svg","erc20":true,"symbol":"MET","decimals":18},"0x49d716DFe60b37379010A75329ae09428f17118d":{"name":"PoolTogether Dai","logo":"pldai.svg","erc20":true,"symbol":"PLDAI","decimals":18},"0xfE6892654CBB05eB73d28DCc1Ff938f59666Fe9f":{"name":"PoolTogether Sai","logo":"plsai.svg","erc20":true,"symbol":"PLSAI","decimals":18},"0x5732046A883704404F284Ce41FfADd5b007FD668":{"name":"Bluzelle Token","logo":"Bluzelle.svg","erc20":true,"symbol":"BLZ","decimals":18},"0xBD87447F48ad729C5c4b8bcb503e1395F62e8B98":{"name":"PoolTogether USDC","logo":"plusdc.svg","erc20":true,"symbol":"PLUSDC","decimals":6},"0x69A95185ee2a045CDC4bCd1b1Df10710395e4e23":{"name":"$Poolz Finance","logo":"Poolz.svg","erc20":true,"symbol":"POOLZ","decimals":18},"0x0adA190c81b814548ddC2F6AdC4a689ce7C1FE73":{"name":"yAxis","logo":"yaxis.svg","erc20":true,"symbol":"YAXIS","decimals":18},"0xb1dC9124c395c1e97773ab855d66E879f053A289":{"name":"yAxis","logo":"yaxis.svg","erc20":true,"symbol":"YAX","decimals":18},"0xeF31Cb88048416E301Fee1eA13e7664b887BA7e8":{"name":"Staked yAxis","logo":"yaxis.svg","erc20":true,"symbol":"sYAX","decimals":18},"0x28cb7e841ee97947a86B06fA4090C8451f64c0be":{"name":"YF Link","logo":"YFL.svg","erc20":true,"symbol":"YFL","decimals":18},"0x75D1aA733920b14fC74c9F6e6faB7ac1EcE8482E":{"name":"YFLink Staking Share","logo":"YFL.svg","erc20":true,"symbol":"yYFL","decimals":18},"0x7b760D06E401f85545F3B50c44bf5B05308b7b62":{"name":"YFLink USD","logo":"YFLUSD.svg","erc20":true,"symbol":"YFLUSD","decimals":18},"0x8282df223AC402d04B2097d16f758Af4F70e7Db0":{"name":"YFLink Synthetic","logo":"sYFL.svg","erc20":true,"symbol":"sYFL","decimals":18},"0x008377EB0C62cE8e0BA3D7Bb4A5638591f21588E":{"name":"YFLink Bond","logo":"bYFL.svg","erc20":true,"symbol":"bYFL","decimals":18},"0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e":{"name":"yearn.finance","logo":"yfi.svg","erc20":true,"symbol":"YFI","decimals":18},"0x261b45D85cCFeAbb11F022eBa346ee8D1cd488c0":{"name":"rDAI","logo":"rdai.svg","erc20":true,"symbol":"rDAI","decimals":18},"0xea8b224eDD3e342DEb514C4176c2E72Bcce6fFF9":{"name":"rSAI","logo":"rsai.svg","erc20":true,"symbol":"rSAI","decimals":18},"0x12B19D3e2ccc14Da04FAe33e63652ce469b3F2FD":{"name":"GridPlus","logo":"GridPlus.svg","erc20":true,"symbol":"GRID","decimals":12},"0xDb05EA0877A2622883941b939f0bb11d1ac7c400":{"name":"Opacity","logo":"opct.svg","erc20":true,"symbol":"OPCT","decimals":18},"0x4575f41308EC1483f3d399aa9a2826d74Da13Deb":{"name":"Orchid","logo":"OXT.svg","erc20":true,"symbol":"OXT","decimals":18},"0x4CC19356f2D37338b9802aa8E8fc58B0373296E7":{"name":"Selfkey","logo":"KEY.svg","erc20":true,"symbol":"KEY","decimals":18},"0x92A5B04D0ED5D94D7a193d1d334D3D16996f4E13":{"name":"Eristica","logo":"Eristica.svg","erc20":true,"symbol":"ERT","decimals":18},"0xdAC17F958D2ee523a2206206994597C13D831ec7":{"name":"Tether USD","logo":"usdt.svg","erc20":true,"symbol":"USDT","decimals":6},"0x06AF07097C9Eeb7fD685c692751D5C66dB49c215":{"name":"Chai","logo":"CHAI.svg","erc20":true,"symbol":"CHAI","decimals":18},"0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828":{"name":"UMA","logo":"UMA.png","erc20":true,"symbol":"UMA","decimals":18},"0x5f778ec4B31a506c1Dfd8b06F131E9B451a61D39":{"name":"UPX Token","logo":"UPX.svg","erc20":true,"symbol":"UPX","decimals":18},"0xb1CD6e4153B2a390Cf00A6556b0fC1458C4A5533":{"name":"ETHBNT Liquidity Pool","logo":"ETHBNT.svg","erc20":true,"symbol":"ETHBNT","decimals":18},"0xf0Ee6b27b759C9893Ce4f094b49ad28fd15A23e4":{"name":"Enigma","logo":"enigma.svg","erc20":true,"symbol":"ENG","decimals":18},"0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d":{"name":"Celsius","logo":"celsius.svg","erc20":true,"symbol":"CEL","decimals":4},"0xb683D83a532e2Cb7DFa5275eED3698436371cc9f":{"name":"BTU","logo":"BTU.svg","erc20":true,"symbol":"BTU","decimals":18},"0x746DdA2ea243400D5a63e0700F190aB79f06489e":{"name":"BOSAGORA","logo":"BOA.svg","erc20":true,"symbol":"BOA","decimals":7},"0x5D858bcd53E085920620549214a8b27CE2f04670":{"name":"POP Network Token","logo":"POP.svg","erc20":true,"symbol":"POP","decimals":18},"0x048Fe49BE32adfC9ED68C37D32B5ec9Df17b3603":{"name":"Skrumble Network V2","logo":"skm.svg","erc20":true,"symbol":"SKM","decimals":18},"0x16EA01aCB4b0Bca2000ee5473348B6937ee6f72F":{"name":"Enecuum","logo":"ENQ-logo.svg","erc20":true,"symbol":"ENQ","decimals":10},"0xE5B826Ca2Ca02F09c1725e9bd98d9a8874C30532":{"name":"ZEON Network","logo":"ZEON_logo.png","erc20":true,"symbol":"ZEON","decimals":18},"0x13cb85823f78Cff38f0B0E90D3e975b8CB3AAd64":{"name":"REMIIT REMI Token","logo":"remi.svg","erc20":true,"symbol":"REMI","decimals":18},"0x93a7174dafd31d13400cD9fa01f4e5B5BAa00D39":{"name":"Shaka","logo":"hak.svg","erc20":true,"symbol":"HAK","decimals":18},"0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69":{"name":"IoTeX","logo":"iotex.svg","erc20":true,"symbol":"IOTX","decimals":18},"0xE5a3229CCb22b6484594973A03a3851dCd948756":{"name":"RAE Token","logo":"rae.svg","erc20":true,"symbol":"RAE","decimals":18},"0x4470BB87d77b963A013DB939BE332f927f2b992e":{"name":"AdEx Legacy Token","logo":"adex.svg","erc20":true,"symbol":"ADXL","decimals":4},"0xADE00C28244d5CE17D72E40330B1c318cD12B7c3":{"name":"AdEx Token","logo":"adex.svg","erc20":true,"symbol":"ADX","decimals":18},"0xDc5864eDe28BD4405aa04d93E05A0531797D9D59":{"name":"Falcon","logo":"fnt.svg","erc20":true,"symbol":"FNT","decimals":6},"0x1966d718A565566e8E202792658D7b5Ff4ECe469":{"name":"nDEX","logo":"nDEX.png","erc20":true,"symbol":"NDX","decimals":18},"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599":{"name":"Wrapped BTC","logo":"wbtc.svg","erc20":true,"symbol":"WBTC","decimals":8},"0x150b0b96933B75Ce27af8b92441F8fB683bF9739":{"name":"Dragonereum Gold","logo":"gold.svg","erc20":true,"symbol":"GOLD","decimals":18},"0x82f4dED9Cec9B5750FBFf5C2185AEe35AfC16587":{"name":"DreamTeam Token","logo":"dream.svg","erc20":true,"symbol":"DREAM","decimals":6},"0x5d60d8d7eF6d37E16EBABc324de3bE57f135e0BC":{"name":"MyBit","logo":"MYB.svg","erc20":true,"symbol":"MYB","decimals":18},"0x01FA555c97D7958Fa6f771f3BbD5CCD508f81e22":{"name":"Civil Token","logo":"CVL_token.svg","erc20":true,"symbol":"CVL","decimals":18},"0x5adc961D6AC3f7062D2eA45FEFB8D8167d44b190":{"name":"Dether","logo":"dether.svg","erc20":true,"symbol":"DTH","decimals":18},"0x3F17Dd476faF0a4855572F0B6ed5115D9bBA22AD":{"name":"Wibson","logo":"wibson-logo.png","erc20":true,"symbol":"WIB","decimals":9},"0xDF347911910b6c9A4286bA8E2EE5ea4a39eB2134":{"name":"Bob\'s Repair","logo":"bobsrepair.png","erc20":true,"symbol":"BOB","decimals":18},"0x3505F494c3f0fed0B594E01Fa41Dd3967645ca39":{"name":"SWARM","logo":"swarm.svg","erc20":true,"symbol":"SWM","decimals":18},"0x6863bE0e7CF7ce860A574760e9020D519a8bDC47":{"name":"On.Live","logo":"onlive.svg","erc20":true,"symbol":"ONL","decimals":18},"0xea5f88E54d982Cbb0c441cde4E79bC305e5b43Bc":{"name":"Pareto","logo":"ParetoLogo.png","erc20":true,"symbol":"PARETO","decimals":18},"0x2e91E3e54C5788e9FdD6A181497FDcEa1De1bcc1":{"name":"Hercules","logo":"herc.png","erc20":true,"symbol":"HERC","decimals":18},"0x4946Fcea7C692606e8908002e55A582af44AC121":{"name":"FOAM","logo":"FOAM.svg","erc20":true,"symbol":"FOAM","decimals":18},"0x4D807509aECe24C0fa5A102b6a3B059Ec6E14392":{"name":"Menlo One","logo":"Menlo_One.png","erc20":true,"symbol":"ONE","decimals":18},"0xDDD460bBD9F79847ea08681563e8A9696867210C":{"name":"Spendcoin","logo":"spnd.png","erc20":true,"symbol":"SPND","decimals":18},"0x27054b13b1B798B345b591a4d22e6562d47eA75a":{"name":"AirSwap Token","logo":"AST.png","erc20":true,"symbol":"AST","decimals":4},"0x8D5682941cE456900b12d47ac06a88b47C764CE1":{"name":"RightMesh Token","logo":"Rmesh.png","erc20":true,"symbol":"RMESH","decimals":18},"0xDDe12a12A6f67156e0DA672be05c374e1B0a3e57":{"name":"JOYSO","logo":"JOY.png","erc20":true,"symbol":"JOY","decimals":6},"0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4":{"name":"JET8 Token","logo":"J8T.svg","erc20":true,"symbol":"J8T","decimals":8},"0x4a220E6096B25EADb88358cb44068A3248254675":{"name":"Quant Network","logo":"quant-network.svg","erc20":true,"symbol":"QNT","decimals":18},"0xBC86727E770de68B1060C91f6BB6945c73e10388":{"name":"Ink Protocol","logo":"ink_protocol.svg","erc20":true,"symbol":"XNK","decimals":18},"0x4CEdA7906a5Ed2179785Cd3A40A69ee8bc99C466":{"name":"Aion Network","logo":"Aion.png","erc20":true,"symbol":"AION","decimals":8},"0xa95592DCFfA3C080B4B40E459c5f5692F67DB7F8":{"name":"ELY Token","logo":"ely.png","erc20":true,"symbol":"ELY","decimals":18},"0x9E46A38F5DaaBe8683E10793b06749EEF7D733d1":{"name":"PolySwarm Nectar","logo":"polyswarm_nectar.svg","erc20":true,"symbol":"NCT","decimals":18},"0xe1A178B681BD05964d3e3Ed33AE731577d9d96dD":{"name":"BOX Token","logo":"box_token.png","erc20":true,"symbol":"BOX","decimals":18},"0x82BD526bDB718C6d4DD2291Ed013A5186cAE2DCa":{"name":"dutyof.care Token","logo":"dutyof.care-square.png","erc20":true,"symbol":"VDOC","decimals":18},"0x168296bb09e24A88805CB9c33356536B980D3fC5":{"name":"Rhoc","logo":"rchain.png","erc20":true,"symbol":"RHOC","decimals":8},"0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf":{"name":"DAOstack","logo":"DAOstack.png","erc20":true,"symbol":"GEN","decimals":18},"0x6aEDbF8dFF31437220dF351950Ba2a3362168d1b":{"name":"Dragonglass","logo":"dragonglass.svg","erc20":true,"symbol":"DGS","decimals":8},"0xd26114cd6EE289AccF82350c8d8487fedB8A0C07":{"name":"OmiseGO","logo":"omg.jpg","erc20":true,"symbol":"OMG","decimals":18},"0x99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d":{"name":"Quantstamp","logo":"qsp.svg","erc20":true,"symbol":"QSP","decimals":18},"0x4162178B78D6985480A308B2190EE5517460406D":{"name":"Colu Local Network","logo":"cln.png","erc20":true,"symbol":"CLN","decimals":18},"0xB64ef51C888972c908CFacf59B47C1AfBC0Ab8aC":{"name":"Storj","logo":"storj.jpg","erc20":true,"symbol":"STORJ","decimals":8},"0xD8E3FB3b08eBA982F2754988d70D57eDc0055ae6":{"name":"Zoracles","logo":"ZORA.svg","erc20":true,"symbol":"ZORA","decimals":9},"0xF938424F7210f31dF2Aee3011291b658f872e91e":{"name":"VISOR","logo":"VISR.svg","erc20":true,"symbol":"VISR","decimals":18},"0x0F5D2fB29fb7d3CFeE444a200298f468908cC942":{"name":"Decentraland","logo":"mana.svg","erc20":true,"symbol":"MANA","decimals":18},"0x0F513fFb4926ff82D7F60A05069047AcA295C413":{"name":"CrowdstartCoin","logo":"XSC_Logo.svg","erc20":true,"symbol":"XSC","decimals":18},"0x5BC7e5f0Ab8b2E10D2D0a3F21739FCe62459aeF3":{"name":"Hut34 Entropy Token","logo":"ENTRP.png","symbol":"ENTRP","erc20":true,"decimals":18},"0xEBBdf302c940c6bfd49C6b165f457fdb324649bc":{"name":"Hydro","logo":"hydro.png","erc20":true,"symbol":"HYDRO","decimals":18},"0x2604FA406Be957E542BEb89E6754fCdE6815e83f":{"name":"Playkey Token","logo":"playkey.svg","erc20":true,"symbol":"PKT","decimals":18},"0xE41d2489571d322189246DaFA5ebDe1F4699F498":{"name":"0x","logo":"zrx.svg","erc20":true,"symbol":"ZRX","decimals":18},"0xB563300A3BAc79FC09B93b6F84CE0d4465A2AC27":{"name":"RedCab","logo":"redcab.png","erc20":true,"symbol":"REDC","decimals":18},"0x957c30aB0426e0C93CD8241E2c60392d08c6aC8e":{"name":"Modum Token","logo":"modum.svg","erc20":true,"symbol":"MOD","decimals":0},"0x1a7a8BD9106F2B8D977E08582DC7d24c723ab0DB":{"name":"AppCoins","logo":"appcoins.png","erc20":true,"decimals":18,"symbol":"APPC"},"0xdB25f211AB05b1c97D595516F45794528a807ad8":{"name":"STASIS EURS Token","logo":"stasis-eurs.svg","erc20":true,"decimals":2,"symbol":"EURS"},"0xCA0e7269600d353F70b14Ad118A49575455C0f2f":{"name":"AMLT","logo":"amlt.png","erc20":true,"decimals":18,"symbol":"AMLT"},"0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F":{"name":"Synthetix Network Token","logo":"synthetix.svg","erc20":true,"decimals":18,"symbol":"SNX"},"0x57Ab1ec28D129707052df4dF418D58a2D46d5f51":{"name":"Synth sUSD","logo":"synthetix_susd.svg","erc20":true,"decimals":18,"symbol":"SUSD"},"0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb":{"name":"Synth sETH","logo":"synthetix_seth.svg","erc20":true,"decimals":18,"symbol":"SETH"},"0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6":{"name":"Synth sBTC","logo":"synthetix_sbtc.svg","erc20":true,"decimals":18,"symbol":"SBTC"},"0x0DB8D8b76BC361bAcbB72E2C491E06085A97Ab31":{"name":"IQeon","logo":"iqeon.svg","erc20":true,"decimals":18,"symbol":"IQN"},"0x000C100050E98C91f9114fa5Dd75CE6869Bf4F53":{"name":"CRYPTO10 Hedged","logo":"c10.svg","erc20":true,"symbol":"C10","decimals":18},"0x26E75307Fc0C021472fEb8F727839531F112f317":{"name":"Crypto20","logo":"c20.svg","erc20":true,"symbol":"C20","decimals":18},"0x06012c8cf97BEaD5deAe237070F9587f8E7A266d":{"name":"Crypto Kitties","logo":"CryptoKitties-Kitty-13733.svg","erc20":false,"erc721":true,"symbol":"CK","decimals":0},"0xE477292f1B3268687A29376116B0ED27A9c76170":{"name":"Herocoin","logo":"herocoin_logo.png","erc20":true,"symbol":"PLAY","decimals":18},"0x4F4f0Db4de903B88f2B1a2847971E231D54F8fd3":{"name":"Geens Platform Token","logo":"gee-icon.svg","erc20":true,"symbol":"GEE","decimals":8},"0xec67005c4E498Ec7f55E092bd1d35cbC47C91892":{"name":"Melon","logo":"mln.jpg","erc20":true,"symbol":"MLN","decimals":18},"0xba2184520A1cC49a6159c57e61E1844E085615B6":{"name":"HelloGold Token","logo":"hgt.png","erc20":true,"symbol":"HGT","decimals":8},"0xeAb43193CF0623073Ca89DB9B712796356FA7414":{"name":"GOLDX","logo":"goldx.png","erc20":true,"symbol":"GOLDX","decimals":18},"0x8727c112C712c4a03371AC87a74dD6aB104Af768":{"name":"Jetcoin Institute Token","logo":"JETCOIN28.png","erc20":true,"symbol":"JET","decimals":18},"0xf8e386EDa857484f5a12e4B5DAa9984E06E73705":{"name":"Indorse Token","logo":"indorseLogo.jpg","erc20":true,"symbol":"IND","decimals":18},"0xA54ddC7B3CcE7FC8b1E3Fa0256D0DB80D2c10970":{"name":"NEVERDIE Coin","logo":"ndc.png","erc20":true,"symbol":"NDC","decimals":18},"0x1c4481750daa5Ff521A2a7490d9981eD46465Dbd":{"name":"BlockMason Credit Protocol Token","logo":"bcpt.svg","erc20":true,"symbol":"BCPT","decimals":18},"0x20F7A3DdF244dc9299975b4Da1C39F8D5D75f05A":{"name":"Sapien Network Token","logo":"spn.svg","erc20":true,"symbol":"SPN","decimals":6},"0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0":{"name":"Loom Network Token","logo":"loom.svg","erc20":true,"symbol":"LOOM","decimals":18},"0x4F9254C83EB525f9FCf346490bbb3ed28a81C667":{"name":"Celer Network Token","logo":"CELR.svg","erc20":true,"symbol":"CELR","decimals":18},"0x71D01dB8d6a2fBEa7f8d434599C237980C234e4C":{"name":"Gladius","logo":"gladius.svg","erc20":true,"symbol":"GLA","decimals":8},"0xdd974D5C2e2928deA5F71b9825b8b646686BD200":{"name":"Kyber Network Crystal","logo":"kyber.svg","erc20":true,"symbol":"KNC","decimals":18},"0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C":{"name":"Bancor Network Token","logo":"bancor.png","erc20":true,"symbol":"BNT","decimals":18},"0xfa05A73FfE78ef8f1a739473e462c54bae6567D9":{"name":"Lunyr Token","logo":"lun.png","erc20":true,"symbol":"LUN","decimals":18},"0xC741f06082AA47F93729070aD0dD95E223Bda091":{"name":"LEDU Token","logo":"edu.svg","erc20":true,"symbol":"LEDU","decimals":8},"0x5c543e7AE0A1104f78406C340E9C64FD9fCE5170":{"name":"vSlice","logo":"vslice.png","erc20":true,"symbol":"VSL","decimals":18},"0x1f41E42D0a9e3c0Dd3BA15B527342783B43200A9":{"name":"Blockchain Capital","logo":"bcap.svg","erc20":true,"symbol":"BCAP","decimals":0},"0x6531f133e6DeeBe7F2dcE5A0441aA7ef330B4e53":{"name":"Chronobank TIME","logo":"chronobank.png","erc20":true,"symbol":"TIME","decimals":8},"0xE7775A6e9Bcf904eb39DA2b68c5efb4F9360e08C":{"name":"Token-as-a-Service","logo":"taas-ico.png","erc20":true,"symbol":"TAAS","decimals":6},"0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a":{"name":"Monolith TKN","logo":"tkn.svg","erc20":true,"symbol":"TKN","decimals":8},"0x08711D3B02C8758F2FB3ab4e80228418a7F8e39c":{"name":"Edgeless","logo":"edgeless.jpg","erc20":true,"symbol":"EDG","decimals":0},"0xf7B098298f7C69Fc14610bf71d5e02c60792894C":{"name":"Guppy","logo":"guppy.png","erc20":true,"symbol":"GUP","decimals":3},"0x4DF812F6064def1e5e029f1ca858777CC98D2D81":{"name":"Xaurum","logo":"xaurum_logo.svg","erc20":true,"symbol":"XAUR","decimals":8},"0xB9e7F8568e08d5659f5D29C4997173d84CdF2607":{"name":"Swarm City Token","logo":"swt.jpg","erc20":true,"symbol":"SWT","decimals":18},"0xCb94be6f13A1182E4A4B6140cb7bf2025d28e41B":{"name":"Trustcoin","logo":"trustcoin.jpg","erc20":true,"symbol":"TRST","decimals":6},"0x960b236A07cf122663c4303350609A66A7B288C0":{"name":"Aragon Network Token v1","logo":"antv1.svg","erc20":true,"symbol":"ANTv1","decimals":18},"0x667088b212ce3d06a1b553a7221E1fD19000d9aF":{"name":"WINGS","logo":"wings_logo.svg","erc20":true,"symbol":"WINGS","decimals":18},"0x16484d73Ac08d2355F466d448D2b79D2039F6EBB":{"name":"KnoxsterCoin","logo":"FortKnoxster.svg","erc20":true,"symbol":"FKX","decimals":18},"0xAf30D2a7E90d7DC361c8C4585e9BB7D2F6f15bc7":{"name":"FirstBlood Token","logo":"1st.svg","erc20":true,"symbol":"1ST","decimals":18},"0x607F4C5BB672230e8672085532f7e901544a7375":{"name":"iExec RLC Token","logo":"rlc.svg","erc20":true,"symbol":"RLC","decimals":9},"0xaeC2E87E0A235266D9C5ADc9DEb4b2E29b54D009":{"name":"SingularDTV","logo":"singulardtv.svg","erc20":true,"symbol":"SNGLS","decimals":0},"0x888666CA69E0f178DED6D75b5726Cee99A87D698":{"name":"ICONOMI","logo":"iconomi.png","erc20":true,"symbol":"ICN","decimals":18},"0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A":{"name":"Digix","logo":"DGD.png","erc20":true,"symbol":"DGD","decimals":9},"0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2":{"name":"Maker","logo":"mkr.svg","erc20":true,"symbol":"MKR","decimals":18},"0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359":{"name":"Sai Stablecoin v1.0","logo":"sai.svg","erc20":true,"symbol":"SAI","decimals":18},"0x6B175474E89094C44Da98b954EedeAC495271d0F":{"name":"Dai Stablecoin","logo":"dai.svg","erc20":true,"symbol":"DAI","decimals":18},"0xC477D038d5420C6A9e0b031712f61c5120090de9":{"name":"Boson Token","logo":"boson.svg","erc20":true,"symbol":"BOSON","decimals":18},"0xD46bA6D942050d489DBd938a2C909A5d5039A161":{"name":"Ampleforth","logo":"ampl.svg","erc20":true,"symbol":"AMPL","decimals":9},"0xDF2C7238198Ad8B389666574f2d8bc411A4b7428":{"name":"Mainframe Token","logo":"Mainframe.png","erc20":true,"symbol":"MFT","decimals":18},"0x0D8775F648430679A709E98d2b0Cb6250d2887EF":{"name":"Basic Attention Token","logo":"bat.svg","erc20":true,"symbol":"BAT","decimals":18},"0x4D8fc1453a0F359e99c9675954e656D80d996FbF":{"name":"BEE Token","logo":"bee_token.svg","erc20":true,"symbol":"BEE","decimals":18},"0x6810e776880C02933D47DB1b9fc05908e5386b96":{"name":"Gnosis Token","logo":"gnosis.svg","erc20":true,"symbol":"GNO","decimals":18},"0x514910771AF9Ca656af840dff83E8264EcF986CA":{"name":"Chainlink Token","logo":"chainlink.svg","erc20":true,"symbol":"LINK","decimals":18},"0xD8912C10681D8B21Fd3742244f44658dBA12264E":{"name":"Pluton","logo":"plutus-god.svg","erc20":true,"symbol":"PLU","decimals":18},"0x1985365e9f78359a9B6AD760e32412f4a445E862":{"name":"Reputation Old","logo":"rep.svg","erc20":true,"symbol":"REP","decimals":18},"0x221657776846890989a759BA2973e427DfF5C9bB":{"name":"Reputation","logo":"repv2.svg","erc20":true,"symbol":"REPv2","decimals":18},"0xd0929d411954c47438dc1d871dd6081F5C5e149c":{"name":"Refereum","logo":"rfr.svg","erc20":true,"symbol":"RFR","decimals":4},"0xb0866289e870D2efc282406cF4123Df6E5BcB652":{"name":"NoFakeCoin","logo":"nfticon.png","erc20":true,"symbol":"NFC","decimals":18},"0x2C4e8f2D746113d0696cE89B35F0d8bF88E0AEcA":{"name":"Open Simple Token","logo":"OST.svg","erc20":true,"symbol":"OST","decimals":18},"0x408e41876cCCDC0F92210600ef50372656052a38":{"name":"Republic Token","logo":"ren.svg","erc20":true,"symbol":"REN","decimals":18},"0xEB4C2781e4ebA804CE9a9803C67d0893436bB27D":{"name":"renBTC","logo":"renBTC.svg","erc20":true,"symbol":"renBTC","decimals":8},"0x1C5db575E2Ff833E46a2E9864C22F4B22E0B37C2":{"name":"renZEC","logo":"renZEC.svg","erc20":true,"symbol":"renZEC","decimals":8},"0x459086F2376525BdCebA5bDDA135e4E9d3FeF5bf":{"name":"renBCH","logo":"renBCH.svg","erc20":true,"symbol":"renBCH","decimals":8},"0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5":{"name":"renFIL","logo":"renFIL.svg","erc20":true,"symbol":"renFIL","decimals":18},"0xa74476443119A942dE498590Fe1f2454d7D4aC0d":{"name":"Golem Network Token","logo":"golem.svg","erc20":true,"symbol":"GNT","decimals":18},"0x6888a16eA9792c15A4DCF2f6C623D055c8eDe792":{"name":"Spectiv Signal Token","logo":"spectiv.svg","erc20":true,"symbol":"SIG","decimals":18},"0x9a642d6b3368ddc662CA244bAdf32cDA716005BC":{"name":"Qtum","logo":"qtum_28.png","erc20":true,"decimals":18,"symbol":"QTUM"},"0x1234567461d3f8Db7496581774Bd869C83D51c93":{"name":"BitClave","logo":"bitclave.svg","erc20":true,"decimals":18,"symbol":"CAT"},"0x7d4b8Cce0591C9044a22ee543533b72E976E36C3":{"name":"Change","logo":"change.svg","erc20":true,"decimals":18,"symbol":"CAG"},"0x1d462414fe14cf489c7A21CaC78509f4bF8CD7c0":{"name":"CanYaCoin","logo":"CanYa.svg","erc20":true,"decimals":6,"symbol":"CAN"},"0x6090A6e47849629b7245Dfa1Ca21D94cd15878Ef":{"name":"ENS Registrar","logo":"ens.svg"},"0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244":{"name":"Rivetz","logo":"rivetz.png","erc20":true,"decimals":18,"symbol":"RVT"},"0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff":{"name":"Project Wyvern Token","logo":"wyvern-logo.svg","erc20":true,"symbol":"WYV","decimals":18},"0xfec0cF7fE078a500abf15F1284958F22049c2C7e":{"name":"Maecenas ART Token","logo":"Maecenas.jpg","erc20":true,"symbol":"ART","decimals":18},"0x05f4a42e251f2d52b8ed15E9FEdAacFcEF1FAD27":{"name":"Zilliqa","logo":"zilliqa.svg","erc20":true,"symbol":"ZIL","decimals":12},"0x986EE2B944c42D017F52Af21c4c69B84DBeA35d8":{"name":"BitMartToken","logo":"bitmart.png","erc20":true,"symbol":"BMX","decimals":18},"0x2af47a65da8CD66729b4209C22017d6A5C2d2400":{"name":"StandardBounties","logo":"StandardBounties.png"},"0xF03f8D65BaFA598611C3495124093c56e8F638f0":{"name":"Viewly","logo":"viewly.svg","erc20":true,"symbol":"VIEW","decimals":18},"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2":{"name":"Wrapped Ether","logo":"weth.png","erc20":true,"symbol":"WETH","decimals":18},"0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E":{"name":"Compound Basic Attention Token","logo":"ctoken-bat.svg","erc20":true,"symbol":"cBAT","decimals":8},"0x70e36f6BF80a52b3B46b3aF8e106CC0ed743E8e4":{"name":"Compound Collateral","logo":"ctoken-comp.svg","erc20":true,"symbol":"cCOMP","decimals":8},"0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643":{"name":"Compound Dai","logo":"ctoken-dai.svg","erc20":true,"symbol":"cDAI","decimals":8},"0xF5DCe57282A584D2746FaF1593d3121Fcac444dC":{"name":"Compound Sai (Legacy Dai)","logo":"ctoken-sai.svg","erc20":true,"symbol":"cSAI","decimals":8},"0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5":{"name":"Compound Ether","logo":"ctoken-eth.svg","erc20":true,"symbol":"cETH","decimals":8},"0x158079Ee67Fce2f58472A96584A73C7Ab9AC95c1":{"name":"Compound Augur","logo":"ctoken-rep.svg","erc20":true,"symbol":"cREP","decimals":8},"0x39AA39c021dfbaE8faC545936693aC917d5E7563":{"name":"Compound USD Coin","logo":"ctoken-usdc.svg","erc20":true,"symbol":"cUSDC","decimals":8},"0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9":{"name":"Compound Tether","logo":"ctoken-usdt.svg","erc20":true,"symbol":"cUSDT","decimals":8},"0xC11b1268C1A384e55C48c2391d8d480264A3A7F4":{"name":"Compound Wrapped BTC","logo":"ctoken-wbtc.svg","erc20":true,"symbol":"cWBTC","decimals":8},"0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407":{"name":"Compound 0x","logo":"ctoken-zrx.svg","erc20":true,"symbol":"cZRX","decimals":8},"0xc00e94Cb662C3520282E6f5717214004A7f26888":{"name":"Compound","logo":"comp.svg","erc20":true,"symbol":"COMP","decimals":18},"0xFFE02ee4C69eDf1b340fCaD64fbd6b37a7b9e265":{"name":"NANJCOIN","logo":"nanjcoin.svg","erc20":true,"symbol":"NANJ","decimals":8},"0xB6eD7644C69416d67B522e20bC294A9a9B405B31":{"name":"0xBitcoin Token","logo":"0xbitcoin.svg","erc20":true,"symbol":"0xBTC","decimals":8},"0x744d70FDBE2Ba4CF95131626614a1763DF805B9E":{"name":"Status Network Token","logo":"snt.svg","erc20":true,"symbol":"SNT","decimals":18},"0x42d6622deCe394b54999Fbd73D108123806f6a18":{"name":"SPANK","logo":"SPANK.png","erc20":true,"symbol":"SPANK","decimals":18},"0x6B01c3170ae1EFEBEe1a3159172CB3F7A5ECf9E5":{"name":"BOOTY","logo":"booty.png","erc20":true,"symbol":"BOOTY","decimals":18},"0x4a6058666cf1057eaC3CD3A5a614620547559fc9":{"name":"Brickblock","logo":"Brickblock.svg","erc20":true,"symbol":"BBK","decimals":18},"0x80fB784B7eD66730e8b1DBd9820aFD29931aab03":{"name":"ETHLend Token","logo":"lend.svg","erc20":true,"symbol":"LEND","decimals":18},"0x48FF53777F747cFB694101222a944dE070c15D36":{"name":"Ether Kingdoms Token","logo":"IMP.svg","erc20":true,"symbol":"IMP","decimals":7},"0x02F61Fd266DA6E8B102D4121f5CE7b992640CF98":{"name":"LikeCoin","logo":"like.svg","erc20":true,"symbol":"LIKE","decimals":18},"0xB8c77482e45F1F44dE1745F52C74426C631bDD52":{"name":"Binance Coin","logo":"bnb.png","erc20":true,"symbol":"BNB","decimals":18},"0xD850942eF8811f2A866692A623011bDE52a462C1":{"name":"VeChain","logo":"ven.svg","erc20":true,"symbol":"VEN","decimals":18},"0xb5A5F22694352C15B00323844aD545ABb2B11028":{"name":"ICON","logo":"icon-icx-logo.png","erc20":true,"symbol":"ICX","decimals":18},"0x91Af0fBB28ABA7E31403Cb457106Ce79397FD4E6":{"name":"Aergo","logo":"Aergo.svg","erc20":true,"symbol":"AERGO","decimals":18},"0x5CA9a71B1d01849C0a95490Cc00559717fCF0D1d":{"name":"Aeternity","logo":"aeternity.svg","erc20":true,"symbol":"AE","decimals":18},"0xd4fa1460F537bb9085d22C7bcCB5DD450Ef28e3a":{"name":"Populous","logo":"FEATURED.POP_.png","erc20":true,"symbol":"PPT","decimals":8},"0xFA1a856Cfa3409CFa145Fa4e20Eb270dF3EB21ab":{"name":"IOST","logo":"iost.png","erc20":true,"symbol":"IOST","decimals":18},"0x039B5649A59967e3e936D7471f9c3700100Ee1ab":{"name":"Kucoin Shares","logo":"kucoin.svg","erc20":true,"symbol":"KCS","decimals":6},"0x3893b9422Cd5D70a81eDeFfe3d5A1c6A978310BB":{"name":"Mithril","logo":"mithril-featured.png","erc20":true,"symbol":"MITH","decimals":18},"0xb7cB1C96dB6B22b0D3d9536E0108d062BD488F74":{"name":"Walton","logo":"waltonchain.png","erc20":true,"symbol":"WTC","decimals":18},"0x1776e1F26f98b1A5dF9cD347953a26dd3Cb46671":{"name":"Numeraire","logo":"nmr.png","erc20":true,"symbol":"NMR","decimals":18},"0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd":{"name":"Gemini Dollar","logo":"gusd.svg","erc20":true,"symbol":"GUSD","decimals":2},"0xA4Bdb11dc0a2bEC88d24A3aa1E6Bb17201112eBe":{"name":"StableUSD","logo":"usds.svg","erc20":true,"symbol":"USDS","decimals":6},"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":{"name":"USD Coin","logo":"usdc.svg","erc20":true,"symbol":"USDC","decimals":6},"0x93ED3FBe21207Ec2E8f2d3c3de6e058Cb73Bc04d":{"name":"Pinakion Token","logo":"pinakion.svg","erc20":true,"symbol":"PNK","decimals":18},"0x419D0d8BdD9aF5e606Ae2232ed285Aff190E711b":{"name":"FunFair","logo":"fun.svg","erc20":true,"symbol":"FUN","decimals":8},"0xcA2796F9F61dc7b238Aab043971e49c6164DF375":{"name":"YGGDRASH YEED Token","logo":"yggdrash.svg","erc20":true,"symbol":"YEED","decimals":18},"0x03e3f0c25965f13DbbC58246738C183E27b26a56":{"name":"Disciplina Token","logo":"disciplina.svg","erc20":true,"symbol":"DSCP","decimals":18},"0xE814aeE960a85208C3dB542C53E7D4a6C8D5f60F":{"name":"Chronologic DAY Token","logo":"DAY.png","erc20":true,"symbol":"DAY","decimals":18},"0x7E43581b19ab509BCF9397a2eFd1ab10233f27dE":{"name":"PLATINUM","logo":"plat.png","erc20":true,"symbol":"PLAT","decimals":18},"0x8E870D67F660D95d5be530380D0eC0bd388289E1":{"name":"PAX Stablecoin","logo":"pax.svg","erc20":true,"symbol":"PAX","decimals":18},"0x45804880De22913dAFE09f4980848ECE6EcbAf78":{"name":"PAX Gold","logo":"paxg.svg","erc20":true,"symbol":"PAXG","decimals":18},"0x0000000000085d4780B73119b644AE5ecd22b376":{"name":"TrueUSD","logo":"TUSD.svg","erc20":true,"symbol":"TUSD","decimals":18},"0x4Fabb145d64652a948d72533023f6E7A623C7C53":{"name":"Binance USD","logo":"busd.svg","erc20":true,"symbol":"BUSD","decimals":18},"0x23Ccc43365D9dD3882eab88F43d515208f832430":{"name":"MidasProtocol","logo":"MAS.png","erc20":true,"symbol":"MAS","decimals":18},"0xC16b542ff490e01fcc0DC58a60e1EFdc3e357cA6":{"name":"ICE ROCK MINING","logo":"rock2.png","erc20":true,"symbol":"ROCK2","decimals":0},"0x6758B7d441a9739b98552B373703d8d3d14f9e62":{"name":"POA20 Token","logo":"POA20.png","erc20":true,"symbol":"POA20","decimals":18},"0x3DB6Ba6ab6F95efed1a6E794caD492fAAabF294D":{"name":"LTO Network Token","logo":"LTO.svg","erc20":true,"symbol":"LTO","decimals":8},"0xfeF4185594457050cC9c23980d301908FE057Bb1":{"name":"VIDT Datalink","logo":"VIDT.svg","erc20":true,"symbol":"VIDT","decimals":18},"0x7064aAb39A0Fcf7221c3396719D0917a65E35515":{"name":"Cpollo","logo":"Cpollo.svg","erc20":true,"symbol":"CPLO","decimals":18},"0xd8446236FA95b9b5f9fd0f8E7Df1a944823c683d":{"name":"NEEO","logo":"neeo.png","erc20":true,"symbol":"NEEO","decimals":18},"0xA823E6722006afe99E91c30FF5295052fe6b8E32":{"name":"Neumark","logo":"neu.svg","erc20":true,"symbol":"NEU","decimals":18},"0x0Cf0Ee63788A0849fE5297F3407f701E122cC023":{"name":"Streamr","logo":"streamr.svg","erc20":true,"symbol":"DATA","decimals":18},"0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b":{"name":"Crypto.com Chain","logo":"CRO.png","erc20":true,"symbol":"CRO","decimals":8},"0xF70a642bD387F94380fFb90451C2c81d4Eb82CBc":{"name":"STAR","logo":"starbase.png","erc20":true,"symbol":"STAR","decimals":18},"0x7C5A0CE9267ED19B22F8cae653F198e3E8daf098":{"name":"Santiment","logo":"santiment.svg","erc20":true,"symbol":"SAN","decimals":18},"0x58b6A8A3302369DAEc383334672404Ee733aB239":{"name":"Livepeer","logo":"livepeer.png","erc20":true,"symbol":"LPT","decimals":18},"0x6fe56C0bcdD471359019FcBC48863d6c3e9d4F41":{"name":"Props","logo":"props.png","erc20":true,"symbol":"PROPS","decimals":18},"0x6c6EE5e31d828De241282B9606C8e98Ea48526E2":{"name":"HoloToken","logo":"holotoken.png","erc20":true,"symbol":"HOT","decimals":18},"0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c":{"name":"Enjin Coin","logo":"enj.svg","erc20":true,"symbol":"ENJ","decimals":18},"0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e":{"name":"AELF","logo":"aelf.png","erc20":true,"symbol":"ELF","decimals":18},"0x39Bb259F66E1C59d5ABEF88375979b4D20D98022":{"name":"Wax","logo":"wax.png","erc20":true,"symbol":"WAX","decimals":8},"0x595832F8FC6BF59c85C527fEC3740A1b7a361269":{"name":"PowerLedger","logo":"power.png","erc20":true,"symbol":"POWR","decimals":6},"0x28dee01D53FED0Edf5f6E310BF8Ef9311513Ae40":{"name":"BlitzPredict","logo":"blitzpredict.svg","erc20":true,"symbol":"XBP","decimals":18},"0xFBeef911Dc5821886e1dda71586d90eD28174B7d":{"name":"KnownOrigin","logo":"knownorigin.svg","erc20":true,"symbol":"KODA","decimals":0},"0x8207c1FfC5B6804F6024322CcF34F29c3541Ae26":{"name":"Origin Protocol","logo":"originprotocol.png","erc20":true,"symbol":"OGN","decimals":18},"0x2A8e1E676Ec238d8A992307B495b45B3fEAa5e86":{"name":"Origin Dollar","logo":"ousd.svg","erc20":true,"symbol":"OUSD","decimals":18},"0x8f8221aFbB33998d8584A2B05749bA73c37a938a":{"name":"Request","logo":"request.svg","erc20":true,"symbol":"REQ","decimals":18},"0x2aEa4Add166EBf38b63d09a75dE1a7b94Aa24163":{"name":"Kudos","logo":"kudos.svg","erc20":false,"erc721":true,"symbol":"KDO","decimals":0},"0x14C926F2290044B647e1Bf2072e67B495eff1905":{"name":"Bethereum","logo":"bether.jpg","erc20":true,"symbol":"BETHER","decimals":18},"0x9AAb071B4129B083B01cB5A0Cb513Ce7ecA26fa5":{"name":"Hunt Token","logo":"hunt.png","erc20":true,"symbol":"HUNT","decimals":18},"0xFEF3884b603C33EF8eD4183346E093A173C94da6":{"name":"Metamorph","logo":"metamorph.svg","erc20":true,"symbol":"METM","decimals":18},"0x0AbdAce70D3790235af448C88547603b945604ea":{"name":"district0x","logo":"district0x.svg","erc20":true,"symbol":"DNT","decimals":18},"0x0C6144c16af288948C8fdB37fD8fEc94bfF3d1d9":{"name":"Neutral Dollar","logo":"neutraldollar.png","erc20":true,"symbol":"NUSD","decimals":6},"0xB26631c6dda06aD89B93C71400D25692de89c068":{"name":"Minds","logo":"minds.svg","erc20":true,"symbol":"MINDS","decimals":18},"0xBb1f24C0c1554b9990222f036b0AaD6Ee4CAec29":{"name":"CryptoSoul","logo":"SOUL.svg","erc20":true,"symbol":"SOUL","decimals":18},"0xFF0E5e014cf97e0615cb50F6f39Da6388E2FaE6E":{"name":"Origo","logo":"origo.svg","erc20":true,"symbol":"OGO","decimals":18},"0x0cB8D0B37C7487b11d57F1f33dEfA2B1d3cFccfE":{"name":"DANKToken","logo":"dank-logo.svg","erc20":true,"symbol":"DANK","decimals":18},"0x3a4f40631a4f906c2BaD353Ed06De7A5D3fCb430":{"name":"PlayDapp Token","logo":"playdapp.svg","erc20":true,"symbol":"PLA","decimals":18},"0xE9e3F9cfc1A64DFca53614a0182CFAD56c10624F":{"name":"Su Squares","logo":"Su-Squares.svg","erc20":false,"erc721":true,"symbol":"SU","decimals":0},"0xfA5047c9c78B8877af97BDcb85Db743fD7313d4a":{"name":"ROOK","logo":"Rook.svg","erc20":true,"symbol":"ROOK","decimals":18},"0xbE9375C6a420D2eEB258962efB95551A5b722803":{"name":"StormX Token","logo":"stormx.svg","erc20":true,"symbol":"STMX","decimals":18},"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0":{"name":"Matic Network Token","logo":"matic-network-logo.svg","erc20":true,"symbol":"MATIC","decimals":18},"0x9992eC3cF6A55b00978cdDF2b27BC6882d88D1eC":{"name":"Polymath","logo":"polymath_logo.svg","erc20":true,"symbol":"POLY","decimals":18},"0x0a50C93c762fDD6E56D86215C24AaAD43aB629aa":{"name":"LGO Token","logo":"lgo.png","erc20":true,"symbol":"LGO","decimals":8},"0xc8Cac7672f4669685817cF332a33Eb249F085475":{"name":"LivenCoin","logo":"LVN.svg","erc20":true,"symbol":"LVN","decimals":18},"0xBBbbCA6A901c926F240b89EacB641d8Aec7AEafD":{"name":"Loopring","logo":"LRC.svg","erc20":true,"symbol":"LRC","decimals":18},"0x255Aa6DF07540Cb5d3d297f0D0D4D84cb52bc8e6":{"name":"Raiden Network Token","logo":"raiden.svg","erc20":true,"symbol":"RDN","decimals":18},"0x66fD97a78d8854fEc445cd1C80a07896B0b4851f":{"name":"Lunch Money","logo":"LMY.svg","erc20":true,"symbol":"LMY","decimals":18},"0x679131F591B4f369acB8cd8c51E68596806c3916":{"name":"Trustlines Network Token","logo":"TLN128.png","erc20":true,"symbol":"TLN","decimals":18},"0xdcD85914b8aE28c1E62f1C488E1D968D5aaFfE2b":{"name":"TOP Network Token","logo":"TOP.svg","erc20":true,"symbol":"TOP","decimals":18},"0xaea46A60368A7bD060eec7DF8CBa43b7EF41Ad85":{"name":"Fetch","logo":"fetch.svg","erc20":true,"symbol":"FET","decimals":18},"0x2e1E15C44Ffe4Df6a0cb7371CD00d5028e571d14":{"name":"Mettalex","logo":"mettalex.svg","erc20":true,"symbol":"MTLX","decimals":18},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984":{"name":"Uniswap","logo":"uni.svg","erc20":true,"symbol":"UNI","decimals":18},"0x2e6539edc3b76f1E21B71d214527FAbA875F70F3":{"name":"Yearn Finance Dot","logo":"YFDOT.svg","erc20":true,"symbol":"YFDOT","decimals":18},"0x9F284E1337A815fe77D2Ff4aE46544645B20c5ff":{"name":"Darwinia Commitment Token","logo":"kton.svg","erc20":true,"symbol":"KTON","decimals":18},"0xE48972fCd82a274411c01834e2f031D4377Fa2c0":{"name":"TwoKeyEconomy","logo":"2key.svg","erc20":true,"symbol":"2KEY","decimals":18},"0x970B9bB2C0444F5E81e9d0eFb84C8ccdcdcAf84d":{"name":"Fuse Token","logo":"fuse.svg","erc20":true,"symbol":"FUSE","decimals":18},"0x0Ae055097C6d159879521C384F1D2123D1f195e6":{"name":"STAKE Token","logo":"stake.png","erc20":true,"symbol":"STAKE","decimals":18},"0x5dc60C4D5e75D22588FA17fFEB90A63E535efCE0":{"name":"dKargo","logo":"DKA.svg","erc20":true,"symbol":"DKA","decimals":18},"0x9469D013805bFfB7D3DEBe5E7839237e535ec483":{"name":"Darwinia Network Native Token","logo":"ring.svg","erc20":true,"symbol":"RING","decimals":18},"0xA31B1767e09f842ECFd4bc471Fe44F830E3891AA":{"name":"ROOBEE","logo":"ROOBEE.svg","erc20":true,"symbol":"ROOBEE","decimals":18},"0xC7e43A1c8E118aA2965F5EAbe0e718D83DB7A63C":{"name":"ZCore Token","logo":"zcrt.svg","erc20":true,"symbol":"ZCRT","decimals":18},"0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6":{"name":"Dentacoin Token","logo":"dcn.svg","erc20":true,"symbol":"DCN","decimals":0},"0xe2f2a5C287993345a840Db3B0845fbC70f5935a5":{"name":"mStable USD","logo":"mUSD.svg","erc20":true,"symbol":"mUSD","decimals":18},"0xa3BeD4E1c75D00fa6f4E5E6922DB7261B5E9AcD2":{"name":"Meta","logo":"MTA.svg","erc20":true,"symbol":"MTA","decimals":18},"0xe3818504c1B32bF1557b16C238B2E01Fd3149C17":{"name":"Pillar","logo":"plr.svg","erc20":true,"symbol":"PLR","decimals":18},"0xba100000625a3754423978a60c9317c58a424e3D":{"name":"Balancer (BAL)","logo":"balancer.svg","erc20":true,"symbol":"BAL","decimals":18},"0x8a854288a5976036A725879164Ca3e91d30c6A1B":{"name":"Guaranteed Entrance Token","logo":"get-logo.svg","erc20":true,"symbol":"GET","decimals":18},"0x2781246fe707bB15CeE3e5ea354e2154a2877B16":{"name":"Elysia","logo":"el.svg","erc20":true,"symbol":"EL","decimals":18},"0xc12d099be31567add4e4e4d0D45691C3F58f5663":{"name":"Auctus","logo":"auc.svg","erc20":true,"symbol":"AUC","decimals":18},"0xdF574c24545E5FfEcb9a659c229253D4111d87e1":{"name":"HUSD","logo":"HUSD.svg","erc20":true,"symbol":"HUSD","decimals":8},"0x2ecB13A8c458c379c4d9a7259e202De03c8F3D19":{"name":"Block-Chain.com Token","logo":"block-chain.svg","erc20":true,"symbol":"BC","decimals":18},"0x38e4adB44ef08F22F5B5b76A8f0c2d0dCbE7DcA1":{"name":"Concentrated Voting Power","logo":"PowerPool.svg","erc20":true,"symbol":"CVP","decimals":18},"0xa117000000f279D81A1D3cc75430fAA017FA5A2e":{"name":"Aragon Network Token","logo":"antv2.svg","erc20":true,"symbol":"ANT","decimals":18},"0xDecade1c6Bf2cD9fb89aFad73e4a519C867adcF5":{"name":"Experty Wisdom Token","logo":"wisdom-token.svg","erc20":true,"symbol":"WIS","decimals":18},"0x7D85e23014F84E6E21d5663aCD8751bEF3562352":{"name":"Axion Old","logo":"obsolete.svg","erc20":true,"symbol":"AXNv1","decimals":18},"0x358AA737e033F34df7c54306960a38d09AaBd523":{"name":"Ares Token","logo":"ares.svg","erc20":true,"symbol":"ARES","decimals":18},"0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206":{"name":"NEXO","logo":"NEXO.svg","erc20":true,"symbol":"NEXO","decimals":18},"0xE9E73E1aE76D17A16cC53E3e87a9a7dA78834d37":{"name":"Camp","logo":"Camp.svg","erc20":true,"symbol":"CAMP","decimals":18},"0xdacD69347dE42baBfAEcD09dC88958378780FB62":{"name":"Atari Token","logo":"atrilast.svg","erc20":true,"symbol":"ATRI","decimals":0},"0x71F85B2E46976bD21302B64329868fd15eb0D127":{"name":"Axion","logo":"axion.svg","erc20":true,"symbol":"AXN","decimals":18},"0xc944E90C64B2c07662A292be6244BDf05Cda44a7":{"name":"Graph Token","logo":"graphToken.svg","erc20":true,"symbol":"GRT","decimals":18},"0xFE3E6a25e6b192A42a44ecDDCd13796471735ACf":{"name":"Reef Finance","logo":"reef.svg","erc20":true,"symbol":"REEF","decimals":18},"0x43Dfc4159D86F3A37A5A4B3D4580b888ad7d4DDd":{"name":"DODO bird","logo":"DODO.svg","erc20":true,"symbol":"DODO","decimals":18},"0x4a615bB7166210CCe20E6642a6f8Fb5d4D044496":{"name":"NAOS Finance","logo":"naos.svg","erc20":true,"symbol":"NAOS","decimals":18},"0x111111111117dC0aa78b770fA6A738034120C302":{"name":"1INCH Token","logo":"1inch.svg","erc20":true,"symbol":"1INCH","decimals":18},"0x27702a26126e0B3702af63Ee09aC4d1A084EF628":{"name":"Aleph.im Token","logo":"aleph.svg","erc20":true,"symbol":"ALEPH","decimals":18},"0x32a7C02e79c4ea1008dD6564b35F131428673c41":{"name":"CRUST","logo":"crust.svg","erc20":true,"symbol":"CRU","decimals":18},"0x3472A5A71965499acd81997a54BBA8D852C6E53d":{"name":"BADGER","logo":"badger.svg","erc20":true,"symbol":"BADGER","decimals":18},"0xDcB01cc464238396E213a6fDd933E36796eAfF9f":{"name":"Yield","logo":"yield-logo.svg","erc20":true,"symbol":"YLD","decimals":18},"0xeb269732ab75A6fD61Ea60b06fE994cD32a83549":{"name":"dForce USDx","logo":"USDx.svg","erc20":true,"symbol":"USDx","decimals":18},"0x6e0daDE58D2d89eBBe7aFc384e3E4f15b70b14D8":{"name":"QuiverX","logo":"quiverx.svg","erc20":true,"symbol":"QRX","decimals":18},"0x9F9c8ec3534c3cE16F928381372BfbFBFb9F4D24":{"name":"GraphLinq","logo":"glq.svg","erc20":true,"symbol":"GLQ","decimals":18},"0xEB58343b36C7528F23CAAe63a150240241310049":{"name":"NBU","logo":"NBU.svg","erc20":true,"symbol":"NBU","decimals":18},"0x16ECCfDbb4eE1A85A33f3A9B21175Cd7Ae753dB4":{"name":"Route","logo":"route.svg","erc20":true,"symbol":"ROUTE","decimals":18},"0x75739d5944534115d7C54ee8C73F186D793BAE02":{"name":"Collective","logo":"CO2.svg","erc20":true,"symbol":"CO2","decimals":18},"0x35bD01FC9d6D5D81CA9E055Db88Dc49aa2c699A8":{"name":"FWB Pro","logo":"FWB.svg","erc20":true,"symbol":"FWB","decimals":18},"0x1C9491865a1DE77C5b6e19d2E6a5F1D7a6F2b25F":{"name":"Antimatter","logo":"antimatter.svg","erc20":true,"symbol":"MATTER","decimals":18},"0x6De037ef9aD2725EB40118Bb1702EBb27e4Aeb24":{"name":"Render Token","logo":"RNDR.svg","erc20":true,"symbol":"RNDR","decimals":18},"0xDf49C9f599A0A9049D97CFF34D0C30E468987389":{"name":"SaTT","logo":"SaTT.svg","erc20":true,"symbol":"SATT","decimals":18},"0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0":{"name":"dForce","logo":"DF.svg","erc20":true,"symbol":"DF","decimals":18},"0x6e1A19F235bE7ED8E3369eF73b196C07257494DE":{"name":"Wrapped Filecoin","logo":"WFIL.svg","erc20":true,"symbol":"WFIL","decimals":18},"0xE452E6Ea2dDeB012e20dB73bf5d3863A3Ac8d77a":{"name":"Wrapped Celo","logo":"WCELO.svg","erc20":true,"symbol":"wCELO","decimals":18},"0x4A64515E5E1d1073e83f30cB97BEd20400b66E10":{"name":"Wrapped ZEC","logo":"WZEC.svg","erc20":true,"symbol":"WZEC","decimals":18},"0xA3865E64121537b5b59B5e239Db4aCBe6F36aa74":{"name":"Wrapped Tezos","logo":"WXTZ.svg","erc20":true,"symbol":"WXTZ","decimals":18},"0x53c4871322Bb47e7A24136fce291a6dcC832a294":{"name":"Wrapped Litecoin","logo":"WLTC.svg","erc20":true,"symbol":"WLTC","decimals":18},"0xad3E3Fc59dff318BecEaAb7D00EB4F68b1EcF195":{"name":"Wrapped Celo USD","logo":"WCUSD.svg","erc20":true,"symbol":"wCUSD","decimals":18},"0xBBC7f7A6AADAc103769C66CBC69AB720f7F9Eae3":{"name":"INX Token","logo":"INX.svg","erc20":true,"symbol":"INX","decimals":18},"0x1b40183EFB4Dd766f11bDa7A7c3AD8982e998421":{"name":"Vesper","logo":"Vesper-VSP-Token.svg","erc20":true,"symbol":"VSP","decimals":18},"0x544c42fBB96B39B21DF61cf322b5EDC285EE7429":{"name":"InsurAce","logo":"INSUR.svg","erc20":true,"symbol":"INSUR","decimals":18},"0x3B73c1B2ea59835cbfcADade5462b6aB630D9890":{"name":"ChainSwap.com Governance Token","logo":"chainswap.svg","erc20":true,"symbol":"TOKEN","decimals":18},"0x182F4c4C97cd1c24E1Df8FC4c053E5C47bf53Bef":{"name":"keyTango Token","logo":"keyTango.svg","erc20":true,"symbol":"TANGO","decimals":18},"0xDe30da39c46104798bB5aA3fe8B9e0e1F348163F":{"name":"Gitcoin","logo":"gtc.svg","erc20":true,"symbol":"GTC","decimals":18},"0x1796ae0b0fa4862485106a0de9b654eFE301D0b2":{"name":"Polychain Monsters","logo":"PMON.svg","erc20":true,"symbol":"PMON","decimals":18},"0x5218E472cFCFE0b64A064F055B43b4cdC9EfD3A6":{"name":"unFederalReserve Token","logo":"eRSDL.svg","erc20":true,"symbol":"eRSDL","decimals":18},"0xE4cC5A22B39fFB0A56d67F94f9300db20D786a5F":{"name":"unFederal eRSDL","logo":"uneRSDL.svg","erc20":true,"symbol":"uneRSDL","decimals":8},"0x2dbA05B51eF5A7DE3E7c3327201CA2F8a25C2414":{"name":"unFederal DAI","logo":"unDAI.svg","erc20":true,"symbol":"unDAI","decimals":8},"0xFaCecE87e14B50eafc85C44C01702F5f485CA460":{"name":"unFederal ETH","logo":"unETH.svg","erc20":true,"symbol":"unETH","decimals":8},"0x6b576972de33BebDe3A703BfF52a091e79f8c87A":{"name":"unFederal USDC","logo":"unUSDC.svg","erc20":true,"symbol":"unUSDC","decimals":8},"0x6e2aA5bB90ac37D9006685AFc651ef067E1c7b44":{"name":"unFederal USDT","logo":"unUSDT.svg","erc20":true,"symbol":"unUSDT","decimals":8},"0x5D446FC8DBd10EBAcfE9A427aB5402586af98cD4":{"name":"unFederal WBTC","logo":"unWBTC.svg","erc20":true,"symbol":"unWBTC","decimals":8},"0xD837eCa6C91c67D98461A411BA2f00bdA9960a9D":{"name":"unFederal AAVE","logo":"unAAVE.svg","erc20":true,"symbol":"unAAVE","decimals":8},"0x9e29Ce9cD25F4141dF6BB85b27Ef6933a16A5824":{"name":"unFederal YFI","logo":"unYFI.svg","erc20":true,"symbol":"unYFI","decimals":8},"0x031002d15B0D0Cd7c9129d6F644446368deaE391":{"name":"unFederal LINK","logo":"unLINK.svg","erc20":true,"symbol":"unLINK","decimals":8},"0xB8E2e2101eD11e9138803cd3e06e16dd19910647":{"name":"ArdCoin","logo":"ardcoin.svg","erc20":true,"symbol":"ARDX","decimals":2},"0x6D0F5149c502faf215C89ab306ec3E50b15e2892":{"name":"Portion Token","logo":"PRT.svg","erc20":true,"symbol":"PRT","decimals":18},"0x3845badAde8e6dFF049820680d1F14bD3903a5d0":{"name":"SAND","logo":"SAND.svg","erc20":true,"symbol":"SAND","decimals":18},"0xcc7ab8d78dBA187dC95bF3bB86e65E0C26d0041f":{"name":"Spacelens","logo":"SPACE.svg","erc20":true,"symbol":"SPACE","decimals":18},"0x50f5474724e0Ee42D9a4e711ccFB275809Fd6d4a":{"name":"Sandbox\'s LANDs","logo":"SAND.svg","erc20":false,"erc721":true,"symbol":"LAND","decimals":0},"0x362bc847A3a9637d3af6624EeC853618a43ed7D2":{"name":"PARSIQ","logo":"parsiq.svg","erc20":true,"symbol":"PRQ","decimals":18},"0x21381e026Ad6d8266244f2A583b35F9E4413FA2a":{"name":"Formation Finance","logo":"form.svg","erc20":true,"symbol":"FORM","decimals":18},"0x2ba592F78dB6436527729929AAf6c908497cB200":{"name":"Cream","logo":"cream.svg","erc20":true,"symbol":"CREAM","decimals":18},"0x46576e20EC5F25586A6Fa2E0d6B6058354B72E72":{"name":"Cryptomind","logo":"CR.svg","erc20":true,"erc721":false,"symbol":"CR","decimals":8},"0x5ab21Ec0bfa0B29545230395e3Adaca7d552C948":{"name":"PUNKS Comic","logo":"punks-comic.svg","erc20":false,"erc721":true,"symbol":"COMIC","decimals":0},"0x9C2dc0c3CC2BADdE84B0025Cf4df1c5aF288D835":{"name":"Coreto","logo":"coreto.svg","erc20":true,"symbol":"COR","decimals":18}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedCeloERC20=void 0,t.supportedCeloERC20={"0x765DE816845861e75A25fCA122bb6898B8B1282a":{symbol:"cUSD",decimals:18,name:"Celo Dollar"},"0x471EcE3750Da237f93B8E339c536989b8978a438":{symbol:"cGLD",decimals:18,name:"Celo Gold"},"0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73":{symbol:"cEUR",decimals:18,name:"Celo Euro"}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedMaticERC20=void 0,t.supportedMaticERC20={"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063":{name:"(PoS) Dai Stablecoin",symbol:"DAI",decimals:18},"0x282d8efCe846A88B159800bd4130ad77443Fa1A1":{name:"Ocean Token (PoS)",symbol:"mOCEAN",decimals:18},"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174":{name:"USD Coin (PoS)",symbol:"USDC",decimals:6},"0xc2132D05D31c914a87C6611C10748AEb04B58e8F":{name:"(PoS) Tether USD",symbol:"USDT",decimals:6},"0xD3b71117E6C1558c1553305b44988cd944e97300":{name:"YEL Token",symbol:"YEL",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedFantomTokens=void 0,t.supportedFantomTokens={"0xD3b71117E6C1558c1553305b44988cd944e97300":{name:"YEL Token",symbol:"YEL",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedBSCTestERC20=void 0,t.supportedBSCTestERC20={"0xEC5dCb5Dbf4B114C9d0F65BcCAb49EC54F6A0867":{name:"DAI Token",symbol:"DAI",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedBSCERC20=void 0,t.supportedBSCERC20={"0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3":{name:"Binance-Peg Dai Token",symbol:"DAI",decimals:18}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedXDAIERC20=void 0,t.supportedXDAIERC20={"0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83":{name:"USDC token on xDai",symbol:"USDC",decimals:6}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getPath=t.chainlinkCurrencyPairs=void 0;const n=(0,r(73).__importDefault)(r(506));t.chainlinkCurrencyPairs={private:{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0x8acee021a27779d8e98b9650722676b850b25e11":1},"0x8acee021a27779d8e98b9650722676b850b25e11":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}},rinkeby:{"0xfab46e002bbf0b4509813474841e0716e6730136":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfab46e002bbf0b4509813474841e0716e6730136":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}},mainnet:{"0x4f99f266506be1475e943b2f097827011bfa4e93":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0x4f99f266506be1475e943b2f097827011bfa4e93":1,"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c":1,"0x8290333cef9e6d528dd5618fb97a76f268f3edd4":1,"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":1,"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":1,"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0xdac17f958d2ee523a2206206994597c13d831ec7":1,"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x6b175474e89094c44da98b954eedeac495271d0f":1,"0x3845badade8e6dff049820680d1f14bd3903a5d0":1,"0x8ab7404063ec4dbcfd4598215992dc3f8ec853d7":1},"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c":1,"0xa117000000f279d81a1d3cc75430faa017fa5a2e":1,"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":1,"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2":1,"0x4e15361fd6b4bb609fa63c81a2be19d873717870":1,"0xdac17f958d2ee523a2206206994597c13d831ec7":1,"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":1,"0x6b175474e89094c44da98b954eedeac495271d0f":1,"0xc944e90c64b2c07662a292be6244bdf05cda44a7":1,"0x967da4048cd07ab37855c090aaf366e4ce1b9f48":1,"0x0f5d2fb29fb7d3cfee444a200298f468908cc942":1},"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xa117000000f279d81a1d3cc75430faa017fa5a2e":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x8290333cef9e6d528dd5618fb97a76f268f3edd4":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x4e15361fd6b4bb609fa63c81a2be19d873717870":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xdac17f958d2ee523a2206206994597c13d831ec7":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x6b175474e89094c44da98b954eedeac495271d0f":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xc944e90c64b2c07662a292be6244bdf05cda44a7":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x967da4048cd07ab37855c090aaf366e4ce1b9f48":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x3845badade8e6dff049820680d1f14bd3903a5d0":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8ab7404063ec4dbcfd4598215992dc3f8ec853d7":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x0f5d2fb29fb7d3cfee444a200298f468908cc942":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}},matic:{"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":1,"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x4f99f266506be1475e943b2f097827011bfa4e93":1,"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x4f99f266506be1475e943b2f097827011bfa4e93":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x831753dd7087cac61ab5644b308642cc1c33dc13":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}},fantom:{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":1,"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":1,"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":1,"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":1,"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":1,"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":1,"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":1,"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":1,"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":1,"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":1,"0x04068da6c83afcfa0e13ba15a6696662335d5b75":1},"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x04068da6c83afcfa0e13ba15a6696662335d5b75":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}},t.getPath=function(e,r,i="mainnet"){if(!t.chainlinkCurrencyPairs[i])throw Error(`network ${i} not supported`);return new n.default(t.chainlinkCurrencyPairs[i]).path(e.hash.toLowerCase(),r.hash.toLowerCase())}},function(e,t,r){const n=r(507),i=r(508),f=r(509),o=r(510);e.exports=class{constructor(e){e instanceof Map?(o(e),this.graph=e):this.graph=e?f(e):new Map}addNode(e,t){let r;return t instanceof Map?(o(t),r=t):r=f(t),this.graph.set(e,r),this}addVertex(e,t){return this.addNode(e,t)}removeNode(e){return this.graph=i(this.graph,e),this}path(e,t,r={}){if(!this.graph.size)return r.cost?{path:null,cost:0}:null;const i=new Set,f=new n,o=new Map;let a=[],s=0,c=[];if(r.avoid&&(c=[].concat(r.avoid)),c.includes(e))throw new Error(`Starting node (${e}) cannot be avoided`);if(c.includes(t))throw new Error(`Ending node (${t}) cannot be avoided`);for(f.set(e,0);!f.isEmpty();){const e=f.next();if(e.key===t){s=e.priority;let t=e.key;for(;o.has(t);)a.push(t),t=o.get(t);break}i.add(e.key);(this.graph.get(e.key)||new Map).forEach(((t,r)=>{if(i.has(r)||c.includes(r))return null;if(!f.has(r))return o.set(r,e.key),f.set(r,e.priority+t);const n=f.get(r).priority,a=e.priority+t;return a<n?(o.set(r,e.key),f.set(r,a)):null}))}return a.length?(r.trim?a.shift():a=a.concat([e]),r.reverse||(a=a.reverse()),r.cost?{path:a,cost:s}:a):r.cost?{path:null,cost:0}:null}shortestPath(...e){return this.path(...e)}}},function(e,t){e.exports=class{constructor(){this.keys=new Set,this.queue=[]}sort(){this.queue.sort(((e,t)=>e.priority-t.priority))}set(e,t){const r=Number(t);if(isNaN(r))throw new TypeError('"priority" must be a number');return this.keys.has(e)?this.queue.map((t=>(t.key===e&&Object.assign(t,{priority:r}),t))):(this.keys.add(e),this.queue.push({key:e,priority:r})),this.sort(),this.queue.length}next(){const e=this.queue.shift();return this.keys.delete(e.key),e}isEmpty(){return Boolean(0===this.queue.length)}has(e){return this.keys.has(e)}get(e){return this.queue.find((t=>t.key===e))}}},function(e,t){e.exports=function e(t,r){const n=new Map;for(const[i,f]of t)i!==r&&f instanceof Map?n.set(i,e(f,r)):i!==r&&n.set(i,f);return n}},function(e,t){e.exports=function e(t){const r=new Map;return Object.keys(t).forEach((n=>{const i=t[n];if(null!==i&&"object"==typeof i&&!Array.isArray(i))return r.set(n,e(i));if(!function(e){const t=Number(e);return!(isNaN(t)||t<=0)}(i))throw new Error(`Could not add node at key "${n}", make sure it's a valid node`,i);return r.set(n,Number(i))})),r}},function(e,t){e.exports=function e(t){if(!(t instanceof Map))throw new Error("Invalid graph: Expected Map instead found "+typeof t);t.forEach(((t,r)=>{if("object"==typeof t&&t instanceof Map)e(t);else if("number"!=typeof t||t<=0)throw new Error(`Values must be numbers greater than 0. Found value ${t} at ${r}`)}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CurrencyManager=void 0;const n=r(73),i=r(4),f=r(6),o=(0,n.__importDefault)(r(512)),a=r(216),s=r(217),c=(0,n.__importDefault)(r(220)),u=r(541),l=r(542),{BTC:d,ERC20:h,ETH:p,ISO4217:b}=i.RequestLogicTypes.CURRENCY;class y{constructor(e,t){this.knownCurrencies=[];for(const t of e){const e=y.fromInput(t);if(this.knownCurrencies.some((t=>t.id===e.id)))throw new Error(`Duplicate found: ${e.id}`);this.knownCurrencies.push(e)}this.legacyTokens=t||y.getDefaultLegacyTokens()}from(e,t){if(!e)return;if(f.utils.isAddress(e))return this.fromAddress(e,t);const r=e.split("-"),n=this.fromSymbol(r[0],t||r[1])||this.fromSymbol(e,t);return n||this.fromId(e)}fromId(e){return this.knownCurrencies.find((t=>t.id===e))}fromAddress(e,t){e=f.utils.getAddress(e);const r=this.knownCurrencies.filter((r=>r.type===h&&r.address===e&&(!t||r.network===t)));if(!(r.length>1))return r[0];{const t=r.map((e=>e.network)).join(", ");console.warn(`${e} has several matches on ${t}. To avoid errors, specify a network.`)}}fromSymbol(e,t){var r;e=null==e?void 0:e.toUpperCase();const n=(t=null==t?void 0:t.toLowerCase())?null===(r=this.legacyTokens[t])||void 0===r?void 0:r[e]:void 0;return n&&([e,t]=n),this.knownCurrencies.find((r=>r.symbol.toUpperCase()===e&&(r.type===b&&!t||"network"in r&&r.network===t||!t)))}fromStorageCurrency(e){if(!e)return;if(!e.type)throw new Error("Invalid format");const t=e.network||"mainnet";return this.knownCurrencies.find((r=>r.type===e.type&&(r.type===h&&e.value===r.address&&r.network===t||(r.type===p||r.type===d)&&r.network===t||r.symbol===e.value&&!e.network)))}getNativeCurrency(e,t){return this.knownCurrencies.find((r=>r.type===e&&r.network===t))}static fromInput(e){var{id:t,hash:r,meta:i}=e,f=(0,n.__rest)(e,["id","hash","meta"]);return Object.assign({id:t||y.currencyId(f),hash:r||(0,s.getHash)(y.toStorageCurrency(f)),meta:i},f)}static currencyId(e){return"network"in e?`${e.symbol}-${e.network}`:e.symbol}static toStorageCurrency(e){return{type:e.type,value:e.type===h?e.address:e.symbol,network:e.type===b?void 0:e.network}}static validateAddress(e,t){switch(t.type){case i.RequestLogicTypes.CURRENCY.ISO4217:throw new Error("Could not validate an address for an ISO4217 currency");case i.RequestLogicTypes.CURRENCY.ETH:case i.RequestLogicTypes.CURRENCY.ERC20:switch(t.symbol){case"NEAR":case"NEAR-testnet":return(0,l.isValidNearAddress)(e,t.network);default:return o.default.validate(e,"ETH")}case i.RequestLogicTypes.CURRENCY.BTC:return o.default.validate(e,"BTC","testnet"===t.network?"testnet":"prod");default:throw new Error("Could not validate an address for an unknown currency type")}}static getDefaultList(){const e=c.default.map((e=>({decimals:e.digits,name:e.currency,symbol:e.code,type:b}))),t=u.nativeCurrencies.ETH.map((e=>Object.assign(Object.assign({},e),{type:p}))),r=u.nativeCurrencies.BTC.map((e=>Object.assign(Object.assign({},e),{type:d}))),n=(0,a.getSupportedERC20Tokens)().map((e=>Object.assign(Object.assign({},e),{type:h})));return e.concat(n).concat(t).concat(r).map(y.fromInput)}static getDefaultLegacyTokens(){return{near:{NEAR:["NEAR","aurora"]}}}static getDefault(){return new y(y.getDefaultList(),y.getDefaultLegacyTokens())}}t.CurrencyManager=y},function(e,t,r){var n=r(513);e.exports={validate:function(e,t,r){var i=n.getByNameOrSymbol(t||"bitcoin");if(i&&i.validator)return r&&"string"==typeof r?i.validator.isValidAddress(e,i,{networkType:r}):i.validator.isValidAddress(e,i,r);throw new Error("Missing validator for currency: "+t)},getCurrencies:function(){return n.getAll()},findCurrency:function(e){return n.getByNameOrSymbol(e)||null}}},function(e,t,r){var n=r(514),i=r(218),f=r(121),o=r(523),a=r(525),s=r(528),c=r(529),u=r(531),l=r(532),d=r(533),h=r(534),p=r(535),b=r(536),y=r(537),m=r(538),g=r(539),v=r(540),_=[{name:"Bitcoin",symbol:"btc",addressTypes:{prod:["00","05"],testnet:["6f","c4","3c","26"]},bech32Hrp:{prod:["bc"],testnet:["tb"]},validator:f},{name:"BitcoinCash",symbol:"bch",regexp:"^[qQpP]{1}[0-9a-zA-Z]{41}$",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:h},{name:"Bitcoin SV",symbol:"bsv",regexp:"^[qQ]{1}[0-9a-zA-Z]{41}$",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:h},{name:"LiteCoin",symbol:"ltc",addressTypes:{prod:["30","05","32"],testnet:["6f","c4","3a"]},bech32Hrp:{prod:["ltc"],testnet:["tltc"]},validator:f},{name:"PeerCoin",symbol:"ppc",addressTypes:{prod:["37","75"],testnet:["6f","c4"]},validator:f},{name:"DogeCoin",symbol:"doge",addressTypes:{prod:["1e","16"],testnet:["71","c4"]},validator:f},{name:"BeaverCoin",symbol:"bvc",addressTypes:{prod:["19","05"],testnet:["6f","c4"]},validator:f},{name:"FreiCoin",symbol:"frc",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:f},{name:"ProtoShares",symbol:"pts",addressTypes:{prod:["38","05"],testnet:["6f","c4"]},validator:f},{name:"MegaCoin",symbol:"mec",addressTypes:{prod:["32","05"],testnet:["6f","c4"]},validator:f},{name:"PrimeCoin",symbol:"xpm",addressTypes:{prod:["17","53"],testnet:["6f","c4"]},validator:f},{name:"AuroraCoin",symbol:"aur",addressTypes:{prod:["17","05"],testnet:["6f","c4"]},validator:f},{name:"NameCoin",symbol:"nmc",addressTypes:{prod:["34"],testnet:[]},validator:f},{name:"BioCoin",symbol:"bio",addressTypes:{prod:["19","14"],testnet:["6f","c4"]},validator:f},{name:"GarliCoin",symbol:"grlc",addressTypes:{prod:["26","05"],testnet:["6f","c4"]},validator:f},{name:"VertCoin",symbol:"vtc",addressTypes:{prod:["0x","47","71","05"],testnet:["6f","c4"]},validator:f},{name:"BitcoinGold",symbol:"btg",addressTypes:{prod:["26","17"],testnet:["6f","c4"]},validator:f},{name:"Komodo",symbol:"kmd",addressTypes:{prod:["3c","55"],testnet:["0","5"]},validator:f},{name:"BitcoinZ",symbol:"btcz",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"BitcoinPrivate",symbol:"btcp",expectedLength:26,addressTypes:{prod:["1325","13af"],testnet:["1957","19e0"]},validator:f},{name:"Hush",symbol:"hush",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"SnowGem",symbol:"sng",expectedLength:26,addressTypes:{prod:["1c28","1c2d"],testnet:["1d25","1cba"]},validator:f},{name:"ZCash",symbol:"zec",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"ZClassic",symbol:"zcl",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"ZenCash",symbol:"zen",expectedLength:26,addressTypes:{prod:["2089","2096"],testnet:["2092","2098"]},validator:f},{name:"VoteCoin",symbol:"vot",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:f},{name:"Decred",symbol:"dcr",addressTypes:{prod:["073f","071a"],testnet:["0f21","0efc"]},hashFunction:"blake256",expectedLength:26,validator:f},{name:"GameCredits",symbol:"game",addressTypes:{prod:["26","05"],testnet:[]},validator:i},{name:"PIVX",symbol:"pivx",addressTypes:{prod:["1e","0d"],testnet:[]},validator:f},{name:"SolarCoin",symbol:"slr",addressTypes:{prod:["12","05"],testnet:[]},validator:f},{name:"MonaCoin",symbol:"mona",addressTypes:{prod:["32","37"],testnet:[]},validator:f},{name:"DigiByte",symbol:"dgb",addressTypes:{prod:["1e","3f"],testnet:[]},bech32Hrp:{prod:["dgb","S"],testnet:[]},validator:f},{name:"Tether",symbol:"usdt",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:m},{name:"Ripple",symbol:"xrp",validator:n},{name:"Dash",symbol:"dash",addressTypes:{prod:["4c","10"],testnet:["8c","13"]},validator:f},{name:"Neo",symbol:"neo",addressTypes:{prod:["17"],testnet:[]},validator:f},{name:"NeoGas",symbol:"gas",addressTypes:{prod:["17"],testnet:[]},validator:f},{name:"Qtum",symbol:"qtum",addressTypes:{prod:["3a","32"],testnet:["78","6e"]},validator:f},{name:"Waves",symbol:"waves",addressTypes:{prod:["0157"],testnet:["0154"]},expectedLength:26,hashFunction:"blake256keccak256",regex:/^[a-zA-Z0-9]{35}$/,validator:f},{name:"Ethereum",symbol:"eth",validator:i},{name:"EtherZero",symbol:"etz",validator:i},{name:"EthereumClassic",symbol:"etc",validator:i},{name:"Callisto",symbol:"clo",validator:i},{name:"Bankex",symbol:"bkx",validator:i},{name:"Cardano",symbol:"ada",bech32Hrp:{prod:["addr"],testnet:["addr"]},validator:o},{name:"Monero",symbol:"xmr",addressTypes:{prod:["18","42"],testnet:["53","63"],stagenet:["24"]},iAddressTypes:{prod:["19"],testnet:["54"],stagenet:["25"]},validator:a},{name:"Aragon",symbol:"ant",validator:i},{name:"Basic Attention Token",symbol:"bat",validator:i},{name:"Bancor",symbol:"bnt",validator:i},{name:"Civic",symbol:"cvc",validator:i},{name:"District0x",symbol:"dnt",validator:i},{name:"Gnosis",symbol:"gno",validator:i},{name:"Golem (GNT)",symbol:"gnt",validator:i},{name:"Golem",symbol:"glm",validator:i},{name:"Matchpool",symbol:"gup",validator:i},{name:"Melon",symbol:"mln",validator:i},{name:"Numeraire",symbol:"nmr",validator:i},{name:"OmiseGO",symbol:"omg",validator:i},{name:"TenX",symbol:"pay",validator:i},{name:"Ripio Credit Network",symbol:"rcn",validator:i},{name:"Augur",symbol:"rep",validator:i},{name:"iExec RLC",symbol:"rlc",validator:i},{name:"Salt",symbol:"salt",validator:i},{name:"Status",symbol:"snt",validator:i},{name:"Storj",symbol:"storj",validator:i},{name:"Swarm City",symbol:"swt",validator:i},{name:"TrueUSD",symbol:"tusd",validator:i},{name:"Wings",symbol:"wings",validator:i},{name:"0x",symbol:"zrx",validator:i},{name:"Expanse",symbol:"exp",validator:i},{name:"Viberate",symbol:"vib",validator:i},{name:"Odyssey",symbol:"ocn",validator:i},{name:"Polymath",symbol:"poly",validator:i},{name:"Storm",symbol:"storm",validator:i},{name:"Nano",symbol:"nano",validator:s},{name:"RaiBlocks",symbol:"xrb",validator:s},{name:"Siacoin",symbol:"sc",validator:c},{name:"HyperSpace",symbol:"xsc",validator:c},{name:"loki",symbol:"loki",addressTypes:{prod:["114","115","116"],testnet:[]},iAddressTypes:{prod:["115"],testnet:[]},validator:a},{name:"LBRY Credits",symbol:"lbc",addressTypes:{prod:["55"],testnet:[]},validator:f},{name:"Tron",symbol:"trx",addressTypes:{prod:[65],testnet:[160]},validator:u},{name:"Nem",symbol:"xem",validator:l},{name:"Lisk",symbol:"lsk",validator:d},{name:"Stellar",symbol:"xlm",validator:p},{name:"BTU Protocol",symbol:"btu",validator:i},{name:"Crypto.com Coin",symbol:"cro",bech32Hrp:{prod:["cro"],testnet:["tcro"]},validator:r(219)},{name:"Multi-collateral DAI",symbol:"dai",validator:i},{name:"Enjin Coin",symbol:"enj",validator:i},{name:"HedgeTrade",symbol:"hedg",validator:i},{name:"Cred",symbol:"lba",validator:i},{name:"Chainlink",symbol:"link",validator:i},{name:"Loom Network",symbol:"loom",validator:i},{name:"Maker",symbol:"mkr",validator:i},{name:"Metal",symbol:"mtl",validator:i},{name:"Ocean Protocol",symbol:"ocean",validator:i},{name:"Quant",symbol:"qnt",validator:i},{name:"Synthetix Network",symbol:"snx",validator:i},{name:"SOLVE",symbol:"solve",validator:i},{name:"Spendcoin",symbol:"spnd",validator:i},{name:"TEMCO",symbol:"temco",validator:i},{name:"EOS",symbol:"eos",validator:b},{name:"Tezos",symbol:"xtz",validator:y},{name:"VeChain",symbol:"vet",validator:i},{name:"StormX",symbol:"stmx",validator:i},{name:"AugurV2",symbol:"repv2",validator:i},{name:"FirmaChain",symbol:"fct",validator:i},{name:"BlockTrade",symbol:"btt",validator:i},{name:"Quantum Resistant Ledger",symbol:"qrl",validator:i},{name:"Serve",symbol:"serv",validator:i},{name:"Tap",symbol:"xtp",validator:i},{name:"Compound",symbol:"comp",validator:i},{name:"Paxos",symbol:"pax",validator:i},{name:"USD Coin",symbol:"usdc",validator:i},{name:"CUSD",symbol:"cusd",validator:i},{name:"Algorand",symbol:"algo",validator:g},{name:"Polkadot",symbol:"dot",validator:v},{name:"Uniswap Coin",symbol:"uni",validator:i},{name:"Aave Coin",symbol:"aave",validator:i},{name:"Matic",symbol:"matic",validator:i},{name:"Decentraland",symbol:"mana",validator:i}];e.exports={getByNameOrSymbol:function(e){var t=e.toLowerCase();return _.find((function(e){return e.name.toLowerCase()===t||e.symbol.toLowerCase()===t}))},getAll:function(){return _}}},function(e,t,r){var n=r(19),i="rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",f=r(120)(i),o=new RegExp("^r["+i+"]{27,35}$");e.exports={isValidAddress:function(e){return!!o.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=f.decode(e);return n.sha256Checksum(n.toHex(t.slice(0,-4)))===n.toHex(t.slice(-4))}}},function(e,t,r){"use strict";var n;!function(i){function f(e,t,r){var n,i,f,o,a,b,y,m,g,v=0,_=[],w=0,E=!1,A=[],S=[],T=!1,x=!1,P=-1;if(n=(r=r||{}).encoding||"UTF8",(g=r.numRounds||1)!==parseInt(g,10)||1>g)throw Error("numRounds must a integer >= 1");if("SHA-1"===e)a=512,b=U,y=q,o=160,m=function(e){return e.slice()};else if(0===e.lastIndexOf("SHA-",0))if(b=function(t,r){return z(t,r,e)},y=function(t,r,n,i){var f,o;if("SHA-224"===e||"SHA-256"===e)f=15+(r+65>>>9<<4),o=16;else{if("SHA-384"!==e&&"SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");f=31+(r+129>>>10<<5),o=32}for(;t.length<=f;)t.push(0);for(t[r>>>5]|=128<<24-r%32,r+=n,t[f]=4294967295&r,t[f-1]=r/4294967296|0,n=t.length,r=0;r<n;r+=o)i=z(t.slice(r,r+o),i,e);if("SHA-224"===e)t=[i[0],i[1],i[2],i[3],i[4],i[5],i[6]];else if("SHA-256"===e)t=i;else if("SHA-384"===e)t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b];else{if("SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b,i[6].a,i[6].b,i[7].a,i[7].b]}return t},m=function(e){return e.slice()},"SHA-224"===e)a=512,o=224;else if("SHA-256"===e)a=512,o=256;else if("SHA-384"===e)a=1024,o=384;else{if("SHA-512"!==e)throw Error("Chosen SHA variant is not supported");a=1024,o=512}else{if(0!==e.lastIndexOf("SHA3-",0)&&0!==e.lastIndexOf("SHAKE",0))throw Error("Chosen SHA variant is not supported");var R=6;if(b=H,m=function(e){var t,r=[];for(t=0;5>t;t+=1)r[t]=e[t].slice();return r},P=1,"SHA3-224"===e)a=1152,o=224;else if("SHA3-256"===e)a=1088,o=256;else if("SHA3-384"===e)a=832,o=384;else if("SHA3-512"===e)a=576,o=512;else if("SHAKE128"===e)a=1344,o=-1,R=31,x=!0;else{if("SHAKE256"!==e)throw Error("Chosen SHA variant is not supported");a=1088,o=-1,R=31,x=!0}y=function(e,t,r,n,i){var f,o=R,s=[],c=(r=a)>>>5,u=0,l=t>>>5;for(f=0;f<l&&t>=r;f+=c)n=H(e.slice(f,f+c),n),t-=r;for(e=e.slice(f),t%=r;e.length<c;)e.push(0);for(e[(f=t>>>3)>>2]^=o<<f%4*8,e[c-1]^=2147483648,n=H(e,n);32*s.length<i&&(e=n[u%5][u/5|0],s.push(e.b),!(32*s.length>=i));)s.push(e.a),0==64*(u+=1)%r&&(H(null,n),u=0);return s}}f=p(t,n,P),i=L(e),this.setHMACKey=function(t,r,f){var s;if(!0===E)throw Error("HMAC key already set");if(!0===T)throw Error("Cannot set HMAC key after calling update");if(!0===x)throw Error("SHAKE is not supported for HMAC");for(t=(r=p(r,n=(f||{}).encoding||"UTF8",P)(t)).binLen,r=r.value,f=(s=a>>>3)/4-1,s<t/8&&(r=y(r,t,0,L(e),o));r.length<=f;)r.push(0);for(t=0;t<=f;t+=1)A[t]=909522486^r[t],S[t]=1549556828^r[t];i=b(A,i),v=a,E=!0},this.update=function(e){var t,r,n,o=0,s=a>>>5;for(e=(t=f(e,_,w)).binLen,r=t.value,t=e>>>5,n=0;n<t;n+=s)o+a<=e&&(i=b(r.slice(n,n+s),i),o+=a);v+=o,_=r.slice(o>>>5),w=e%a,T=!0},this.getHash=function(t,r){var n,f,a,p;if(!0===E)throw Error("Cannot call getHash after setting HMAC key");if(a=h(r),!0===x){if(-1===a.shakeLen)throw Error("shakeLen must be specified in options");o=a.shakeLen}switch(t){case"HEX":n=function(e){return s(e,o,P,a)};break;case"B64":n=function(e){return c(e,o,P,a)};break;case"BYTES":n=function(e){return u(e,o,P)};break;case"ARRAYBUFFER":try{f=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return l(e,o,P)};break;case"UINT8ARRAY":try{f=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return d(e,o,P)};break;default:throw Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}for(p=y(_.slice(),w,v,m(i),o),f=1;f<g;f+=1)!0===x&&0!=o%32&&(p[p.length-1]&=16777215>>>24-o%32),p=y(p,o,0,L(e),o);return n(p)},this.getHMAC=function(t,r){var n,f,p,g;if(!1===E)throw Error("Cannot call getHMAC without first setting HMAC key");switch(p=h(r),t){case"HEX":n=function(e){return s(e,o,P,p)};break;case"B64":n=function(e){return c(e,o,P,p)};break;case"BYTES":n=function(e){return u(e,o,P)};break;case"ARRAYBUFFER":try{n=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return l(e,o,P)};break;case"UINT8ARRAY":try{n=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return d(e,o,P)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}return f=y(_.slice(),w,v,m(i),o),g=b(S,L(e)),n(g=y(f,o,a,g,o))}}function o(e,t){this.a=e,this.b=t}function a(e,t,r,n){var i,f,o,a,s;for(t=t||[0],f=(r=r||0)>>>3,s=-1===n?3:0,i=0;i<e.length;i+=1)o=(a=i+f)>>>2,t.length<=o&&t.push(0),t[o]|=e[i]<<8*(s+a%4*n);return{value:t,binLen:8*e.length+r}}function s(e,t,r,n){var i,f,o,a="";for(t/=8,o=-1===r?3:0,i=0;i<t;i+=1)f=e[i>>>2]>>>8*(o+i%4*r),a+="0123456789abcdef".charAt(f>>>4&15)+"0123456789abcdef".charAt(15&f);return n.outputUpper?a.toUpperCase():a}function c(e,t,r,n){var i,f,o,a,s="",c=t/8;for(a=-1===r?3:0,i=0;i<c;i+=3)for(f=i+1<c?e[i+1>>>2]:0,o=i+2<c?e[i+2>>>2]:0,o=(e[i>>>2]>>>8*(a+i%4*r)&255)<<16|(f>>>8*(a+(i+1)%4*r)&255)<<8|o>>>8*(a+(i+2)%4*r)&255,f=0;4>f;f+=1)s+=8*i+6*f<=t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(o>>>6*(3-f)&63):n.b64Pad;return s}function u(e,t,r){var n,i,f,o="";for(t/=8,f=-1===r?3:0,n=0;n<t;n+=1)i=e[n>>>2]>>>8*(f+n%4*r)&255,o+=String.fromCharCode(i);return o}function l(e,t,r){t/=8;var n,i,f,o=new ArrayBuffer(t);for(f=new Uint8Array(o),i=-1===r?3:0,n=0;n<t;n+=1)f[n]=e[n>>>2]>>>8*(i+n%4*r)&255;return o}function d(e,t,r){t/=8;var n,i,f=new Uint8Array(t);for(i=-1===r?3:0,n=0;n<t;n+=1)f[n]=e[n>>>2]>>>8*(i+n%4*r)&255;return f}function h(e){var t={outputUpper:!1,b64Pad:"=",shakeLen:-1};if(e=e||{},t.outputUpper=e.outputUpper||!1,!0===e.hasOwnProperty("b64Pad")&&(t.b64Pad=e.b64Pad),!0===e.hasOwnProperty("shakeLen")){if(0!=e.shakeLen%8)throw Error("shakeLen must be a multiple of 8");t.shakeLen=e.shakeLen}if("boolean"!=typeof t.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!=typeof t.b64Pad)throw Error("Invalid b64Pad formatting option");return t}function p(e,t,r){switch(t){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(e){case"HEX":e=function(e,t,n){var i,f,o,a,s,c,u=e.length;if(0!=u%2)throw Error("String of HEX type must be in byte increments");for(t=t||[0],s=(n=n||0)>>>3,c=-1===r?3:0,i=0;i<u;i+=2){if(f=parseInt(e.substr(i,2),16),isNaN(f))throw Error("String of HEX type contains invalid characters");for(o=(a=(i>>>1)+s)>>>2;t.length<=o;)t.push(0);t[o]|=f<<8*(c+a%4*r)}return{value:t,binLen:4*u+n}};break;case"TEXT":e=function(e,n,i){var f,o,a,s,c,u,l,d,h=0;if(n=n||[0],c=(i=i||0)>>>3,"UTF8"===t)for(d=-1===r?3:0,a=0;a<e.length;a+=1)for(o=[],128>(f=e.charCodeAt(a))?o.push(f):2048>f?(o.push(192|f>>>6),o.push(128|63&f)):55296>f||57344<=f?o.push(224|f>>>12,128|f>>>6&63,128|63&f):(a+=1,f=65536+((1023&f)<<10|1023&e.charCodeAt(a)),o.push(240|f>>>18,128|f>>>12&63,128|f>>>6&63,128|63&f)),s=0;s<o.length;s+=1){for(u=(l=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=o[s]<<8*(d+l%4*r),h+=1}else if("UTF16BE"===t||"UTF16LE"===t)for(d=-1===r?2:0,o="UTF16LE"===t&&1!==r||"UTF16LE"!==t&&1===r,a=0;a<e.length;a+=1){for(f=e.charCodeAt(a),!0===o&&(f=(s=255&f)<<8|f>>>8),u=(l=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=f<<8*(d+l%4*r),h+=2}return{value:n,binLen:8*h+i}};break;case"B64":e=function(e,t,n){var i,f,o,a,s,c,u,l,d=0;if(-1===e.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");if(f=e.indexOf("="),e=e.replace(/\=/g,""),-1!==f&&f<e.length)throw Error("Invalid '=' found in base-64 string");for(t=t||[0],c=(n=n||0)>>>3,l=-1===r?3:0,f=0;f<e.length;f+=4){for(s=e.substr(f,4),o=a=0;o<s.length;o+=1)a|=(i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(s.charAt(o)))<<18-6*o;for(o=0;o<s.length-1;o+=1){for(i=(u=d+c)>>>2;t.length<=i;)t.push(0);t[i]|=(a>>>16-8*o&255)<<8*(l+u%4*r),d+=1}}return{value:t,binLen:8*d+n}};break;case"BYTES":e=function(e,t,n){var i,f,o,a,s,c;for(t=t||[0],o=(n=n||0)>>>3,c=-1===r?3:0,f=0;f<e.length;f+=1)i=e.charCodeAt(f),a=(s=f+o)>>>2,t.length<=a&&t.push(0),t[a]|=i<<8*(c+s%4*r);return{value:t,binLen:8*e.length+n}};break;case"ARRAYBUFFER":try{e=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}e=function(e,t,n){return a(new Uint8Array(e),t,n,r)};break;case"UINT8ARRAY":try{e=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}e=function(e,t,n){return a(e,t,n,r)};break;default:throw Error("format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}return e}function b(e,t){return e<<t|e>>>32-t}function y(e,t){return 32<t?(t-=32,new o(e.b<<t|e.a>>>32-t,e.a<<t|e.b>>>32-t)):0!==t?new o(e.a<<t|e.b>>>32-t,e.b<<t|e.a>>>32-t):e}function m(e,t){return e>>>t|e<<32-t}function g(e,t){var r=null;r=new o(e.a,e.b);return 32>=t?new o(r.a>>>t|r.b<<32-t&4294967295,r.b>>>t|r.a<<32-t&4294967295):new o(r.b>>>t-32|r.a<<64-t&4294967295,r.a>>>t-32|r.b<<64-t&4294967295)}function v(e,t){return 32>=t?new o(e.a>>>t,e.b>>>t|e.a<<32-t&4294967295):new o(0,e.a>>>t-32)}function _(e,t,r){return e&t^~e&r}function w(e,t,r){return new o(e.a&t.a^~e.a&r.a,e.b&t.b^~e.b&r.b)}function E(e,t,r){return e&t^e&r^t&r}function A(e,t,r){return new o(e.a&t.a^e.a&r.a^t.a&r.a,e.b&t.b^e.b&r.b^t.b&r.b)}function S(e){return m(e,2)^m(e,13)^m(e,22)}function T(e){var t=g(e,28),r=g(e,34);return e=g(e,39),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function x(e){return m(e,6)^m(e,11)^m(e,25)}function P(e){var t=g(e,14),r=g(e,18);return e=g(e,41),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function R(e){return m(e,7)^m(e,18)^e>>>3}function k(e){var t=g(e,1),r=g(e,8);return e=v(e,7),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function C(e){return m(e,17)^m(e,19)^e>>>10}function O(e){var t=g(e,19),r=g(e,61);return e=v(e,6),new o(t.a^r.a^e.a,t.b^r.b^e.b)}function M(e,t){var r=(65535&e)+(65535&t);return((e>>>16)+(t>>>16)+(r>>>16)&65535)<<16|65535&r}function N(e,t,r,n){var i=(65535&e)+(65535&t)+(65535&r)+(65535&n);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(i>>>16)&65535)<<16|65535&i}function I(e,t,r,n,i){var f=(65535&e)+(65535&t)+(65535&r)+(65535&n)+(65535&i);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(i>>>16)+(f>>>16)&65535)<<16|65535&f}function D(e,t){var r,n,i;return r=(65535&e.b)+(65535&t.b),i=(65535&(n=(e.b>>>16)+(t.b>>>16)+(r>>>16)))<<16|65535&r,r=(65535&e.a)+(65535&t.a)+(n>>>16),new o((65535&(n=(e.a>>>16)+(t.a>>>16)+(r>>>16)))<<16|65535&r,i)}function B(e,t,r,n){var i,f,a;return i=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b),a=(65535&(f=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(i>>>16)))<<16|65535&i,i=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(f>>>16),new o((65535&(f=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(i>>>16)))<<16|65535&i,a)}function F(e,t,r,n,i){var f,a,s;return f=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b)+(65535&i.b),s=(65535&(a=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(i.b>>>16)+(f>>>16)))<<16|65535&f,f=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(65535&i.a)+(a>>>16),new o((65535&(a=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(i.a>>>16)+(f>>>16)))<<16|65535&f,s)}function j(e,t){return new o(e.a^t.a,e.b^t.b)}function L(e){var t,r=[];if("SHA-1"===e)r=[1732584193,4023233417,2562383102,271733878,3285377520];else if(0===e.lastIndexOf("SHA-",0))switch(r=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],t=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],e){case"SHA-224":break;case"SHA-256":r=t;break;case"SHA-384":r=[new o(3418070365,r[0]),new o(1654270250,r[1]),new o(2438529370,r[2]),new o(355462360,r[3]),new o(1731405415,r[4]),new o(41048885895,r[5]),new o(3675008525,r[6]),new o(1203062813,r[7])];break;case"SHA-512":r=[new o(t[0],4089235720),new o(t[1],2227873595),new o(t[2],4271175723),new o(t[3],1595750129),new o(t[4],2917565137),new o(t[5],725511199),new o(t[6],4215389547),new o(t[7],327033209)];break;default:throw Error("Unknown SHA variant")}else{if(0!==e.lastIndexOf("SHA3-",0)&&0!==e.lastIndexOf("SHAKE",0))throw Error("No SHA variants supported");for(e=0;5>e;e+=1)r[e]=[new o(0,0),new o(0,0),new o(0,0),new o(0,0),new o(0,0)]}return r}function U(e,t){var r,n,i,f,o,a,s,c=[];for(r=t[0],n=t[1],i=t[2],f=t[3],o=t[4],s=0;80>s;s+=1)c[s]=16>s?e[s]:b(c[s-3]^c[s-8]^c[s-14]^c[s-16],1),a=20>s?I(b(r,5),n&i^~n&f,o,1518500249,c[s]):40>s?I(b(r,5),n^i^f,o,1859775393,c[s]):60>s?I(b(r,5),E(n,i,f),o,2400959708,c[s]):I(b(r,5),n^i^f,o,3395469782,c[s]),o=f,f=i,i=b(n,30),n=r,r=a;return t[0]=M(r,t[0]),t[1]=M(n,t[1]),t[2]=M(i,t[2]),t[3]=M(f,t[3]),t[4]=M(o,t[4]),t}function q(e,t,r,n){var i;for(i=15+(t+65>>>9<<4);e.length<=i;)e.push(0);for(e[t>>>5]|=128<<24-t%32,t+=r,e[i]=4294967295&t,e[i-1]=t/4294967296|0,t=e.length,i=0;i<t;i+=16)n=U(e.slice(i,i+16),n);return n}function z(e,t,r){var n,i,f,a,s,c,u,l,d,h,p,b,y,m,g,v,j,L,U,q,z,H,K,W=[];if("SHA-224"===r||"SHA-256"===r)h=64,b=1,H=Number,y=M,m=N,g=I,v=R,j=C,L=S,U=x,z=E,q=_,K=G;else{if("SHA-384"!==r&&"SHA-512"!==r)throw Error("Unexpected error in SHA-2 implementation");h=80,b=2,H=o,y=D,m=B,g=F,v=k,j=O,L=T,U=P,z=A,q=w,K=V}for(r=t[0],n=t[1],i=t[2],f=t[3],a=t[4],s=t[5],c=t[6],u=t[7],p=0;p<h;p+=1)16>p?(d=p*b,l=e.length<=d?0:e[d],d=e.length<=d+1?0:e[d+1],W[p]=new H(l,d)):W[p]=m(j(W[p-2]),W[p-7],v(W[p-15]),W[p-16]),l=g(u,U(a),q(a,s,c),K[p],W[p]),d=y(L(r),z(r,n,i)),u=c,c=s,s=a,a=y(f,l),f=i,i=n,n=r,r=y(l,d);return t[0]=y(r,t[0]),t[1]=y(n,t[1]),t[2]=y(i,t[2]),t[3]=y(f,t[3]),t[4]=y(a,t[4]),t[5]=y(s,t[5]),t[6]=y(c,t[6]),t[7]=y(u,t[7]),t}function H(e,t){var r,n,i,f,a=[],s=[];if(null!==e)for(n=0;n<e.length;n+=2)t[(n>>>1)%5][(n>>>1)/5|0]=j(t[(n>>>1)%5][(n>>>1)/5|0],new o(e[n+1],e[n]));for(r=0;24>r;r+=1){for(f=L("SHA3-"),n=0;5>n;n+=1){i=t[n][0];var c=t[n][1],u=t[n][2],l=t[n][3],d=t[n][4];a[n]=new o(i.a^c.a^u.a^l.a^d.a,i.b^c.b^u.b^l.b^d.b)}for(n=0;5>n;n+=1)s[n]=j(a[(n+4)%5],y(a[(n+1)%5],1));for(n=0;5>n;n+=1)for(i=0;5>i;i+=1)t[n][i]=j(t[n][i],s[n]);for(n=0;5>n;n+=1)for(i=0;5>i;i+=1)f[i][(2*n+3*i)%5]=y(t[n][i],K[n][i]);for(n=0;5>n;n+=1)for(i=0;5>i;i+=1)t[n][i]=j(f[n][i],new o(~f[(n+1)%5][i].a&f[(n+2)%5][i].a,~f[(n+1)%5][i].b&f[(n+2)%5][i].b));t[0][0]=j(t[0][0],W[r])}return t}var G,V,K,W;V=[new o((G=[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])[0],3609767458),new o(G[1],602891725),new o(G[2],3964484399),new o(G[3],2173295548),new o(G[4],4081628472),new o(G[5],3053834265),new o(G[6],2937671579),new o(G[7],3664609560),new o(G[8],2734883394),new o(G[9],1164996542),new o(G[10],1323610764),new o(G[11],3590304994),new o(G[12],4068182383),new o(G[13],991336113),new o(G[14],633803317),new o(G[15],3479774868),new o(G[16],2666613458),new o(G[17],944711139),new o(G[18],2341262773),new o(G[19],2007800933),new o(G[20],1495990901),new o(G[21],1856431235),new o(G[22],3175218132),new o(G[23],2198950837),new o(G[24],3999719339),new o(G[25],766784016),new o(G[26],2566594879),new o(G[27],3203337956),new o(G[28],1034457026),new o(G[29],2466948901),new o(G[30],3758326383),new o(G[31],168717936),new o(G[32],1188179964),new o(G[33],1546045734),new o(G[34],1522805485),new o(G[35],2643833823),new o(G[36],2343527390),new o(G[37],1014477480),new o(G[38],1206759142),new o(G[39],344077627),new o(G[40],1290863460),new o(G[41],3158454273),new o(G[42],3505952657),new o(G[43],106217008),new o(G[44],3606008344),new o(G[45],1432725776),new o(G[46],1467031594),new o(G[47],851169720),new o(G[48],3100823752),new o(G[49],1363258195),new o(G[50],3750685593),new o(G[51],3785050280),new o(G[52],3318307427),new o(G[53],3812723403),new o(G[54],2003034995),new o(G[55],3602036899),new o(G[56],1575990012),new o(G[57],1125592928),new o(G[58],2716904306),new o(G[59],442776044),new o(G[60],593698344),new o(G[61],3733110249),new o(G[62],2999351573),new o(G[63],3815920427),new o(3391569614,3928383900),new o(3515267271,566280711),new o(3940187606,3454069534),new o(4118630271,4000239992),new o(116418474,1914138554),new o(174292421,2731055270),new o(289380356,3203993006),new o(460393269,320620315),new o(685471733,587496836),new o(852142971,1086792851),new o(1017036298,365543100),new o(1126000580,2618297676),new o(1288033470,3409855158),new o(1501505948,4234509866),new o(1607167915,987167468),new o(1816402316,1246189591)],W=[new o(0,1),new o(0,32898),new o(2147483648,32906),new o(2147483648,2147516416),new o(0,32907),new o(0,2147483649),new o(2147483648,2147516545),new o(2147483648,32777),new o(0,138),new o(0,136),new o(0,2147516425),new o(0,2147483658),new o(0,2147516555),new o(2147483648,139),new o(2147483648,32905),new o(2147483648,32771),new o(2147483648,32770),new o(2147483648,128),new o(0,32778),new o(2147483648,2147483658),new o(2147483648,2147516545),new o(2147483648,32896),new o(0,2147483649),new o(2147483648,2147516424)],K=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]],void 0===(n=function(){return f}.call(t,r,t,e))||(e.exports=n)}()},function(e,t,r){(function(t,n){var i;!function(){"use strict";var f="input is invalid type",o="object"==typeof window,a=o?window:{};a.JS_SHA512_NO_WINDOW&&(o=!1);var s=!o&&"object"==typeof self;!a.JS_SHA512_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?a=n:s&&(a=self);var c=!a.JS_SHA512_NO_COMMON_JS&&"object"==typeof e&&e.exports,u=r(42),l=!a.JS_SHA512_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,d="0123456789abcdef".split(""),h=[-2147483648,8388608,32768,128],p=[24,16,8,0],b=[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],y=["hex","array","digest","arrayBuffer"],m=[];!a.JS_SHA512_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!l||!a.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var g=function(e,t){return function(r){return new E(t,!0).update(r)[e]()}},v=function(e){var t=g("hex",e);t.create=function(){return new E(e)},t.update=function(e){return t.create().update(e)};for(var r=0;r<y.length;++r){var n=y[r];t[n]=g(n,e)}return t},_=function(e,t){return function(r,n){return new A(r,t,!0).update(n)[e]()}},w=function(e){var t=_("hex",e);t.create=function(t){return new A(t,e)},t.update=function(e,r){return t.create(e).update(r)};for(var r=0;r<y.length;++r){var n=y[r];t[n]=_(n,e)}return t};function E(e,t){t?(m[0]=m[1]=m[2]=m[3]=m[4]=m[5]=m[6]=m[7]=m[8]=m[9]=m[10]=m[11]=m[12]=m[13]=m[14]=m[15]=m[16]=m[17]=m[18]=m[19]=m[20]=m[21]=m[22]=m[23]=m[24]=m[25]=m[26]=m[27]=m[28]=m[29]=m[30]=m[31]=m[32]=0,this.blocks=m):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],384==e?(this.h0h=3418070365,this.h0l=3238371032,this.h1h=1654270250,this.h1l=914150663,this.h2h=2438529370,this.h2l=812702999,this.h3h=355462360,this.h3l=4144912697,this.h4h=1731405415,this.h4l=4290775857,this.h5h=2394180231,this.h5l=1750603025,this.h6h=3675008525,this.h6l=1694076839,this.h7h=1203062813,this.h7l=3204075428):256==e?(this.h0h=573645204,this.h0l=4230739756,this.h1h=2673172387,this.h1l=3360449730,this.h2h=596883563,this.h2l=1867755857,this.h3h=2520282905,this.h3l=1497426621,this.h4h=2519219938,this.h4l=2827943907,this.h5h=3193839141,this.h5l=1401305490,this.h6h=721525244,this.h6l=746961066,this.h7h=246885852,this.h7l=2177182882):224==e?(this.h0h=2352822216,this.h0l=424955298,this.h1h=1944164710,this.h1l=2312950998,this.h2h=502970286,this.h2l=855612546,this.h3h=1738396948,this.h3l=1479516111,this.h4h=258812777,this.h4l=2077511080,this.h5h=2011393907,this.h5l=79989058,this.h6h=1067287976,this.h6l=1780299464,this.h7h=286451373,this.h7l=2446758561):(this.h0h=1779033703,this.h0l=4089235720,this.h1h=3144134277,this.h1l=2227873595,this.h2h=1013904242,this.h2l=4271175723,this.h3h=2773480762,this.h3l=1595750129,this.h4h=1359893119,this.h4l=2917565137,this.h5h=2600822924,this.h5l=725511199,this.h6h=528734635,this.h6l=4215389547,this.h7h=1541459225,this.h7l=327033209),this.bits=e,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1}function A(e,t,r){var n,i=typeof e;if("string"!==i){if("object"!==i)throw new Error(f);if(null===e)throw new Error(f);if(l&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||l&&ArrayBuffer.isView(e)))throw new Error(f);n=!0}var o=e.length;if(!n){for(var a,s=[],c=(o=e.length,0),u=0;u<o;++u)(a=e.charCodeAt(u))<128?s[c++]=a:a<2048?(s[c++]=192|a>>6,s[c++]=128|63&a):a<55296||a>=57344?(s[c++]=224|a>>12,s[c++]=128|a>>6&63,s[c++]=128|63&a):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++u)),s[c++]=240|a>>18,s[c++]=128|a>>12&63,s[c++]=128|a>>6&63,s[c++]=128|63&a);e=s}e.length>128&&(e=new E(t,!0).update(e).array());var d=[],h=[];for(u=0;u<128;++u){var p=e[u]||0;d[u]=92^p,h[u]=54^p}E.call(this,t,r),this.update(h),this.oKeyPad=d,this.inner=!0,this.sharedMemory=r}E.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(f);if(null===e)throw new Error(f);if(l&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||l&&ArrayBuffer.isView(e)))throw new Error(f);t=!0}for(var n,i,o=0,a=e.length,s=this.blocks;o<a;){if(this.hashed&&(this.hashed=!1,s[0]=this.block,s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=s[16]=s[17]=s[18]=s[19]=s[20]=s[21]=s[22]=s[23]=s[24]=s[25]=s[26]=s[27]=s[28]=s[29]=s[30]=s[31]=s[32]=0),t)for(i=this.start;o<a&&i<128;++o)s[i>>2]|=e[o]<<p[3&i++];else for(i=this.start;o<a&&i<128;++o)(n=e.charCodeAt(o))<128?s[i>>2]|=n<<p[3&i++]:n<2048?(s[i>>2]|=(192|n>>6)<<p[3&i++],s[i>>2]|=(128|63&n)<<p[3&i++]):n<55296||n>=57344?(s[i>>2]|=(224|n>>12)<<p[3&i++],s[i>>2]|=(128|n>>6&63)<<p[3&i++],s[i>>2]|=(128|63&n)<<p[3&i++]):(n=65536+((1023&n)<<10|1023&e.charCodeAt(++o)),s[i>>2]|=(240|n>>18)<<p[3&i++],s[i>>2]|=(128|n>>12&63)<<p[3&i++],s[i>>2]|=(128|n>>6&63)<<p[3&i++],s[i>>2]|=(128|63&n)<<p[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=128?(this.block=s[32],this.start=i-128,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},E.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[32]=this.block,e[t>>2]|=h[3&t],this.block=e[32],t>=112&&(this.hashed||this.hash(),e[0]=this.block,e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=e[16]=e[17]=e[18]=e[19]=e[20]=e[21]=e[22]=e[23]=e[24]=e[25]=e[26]=e[27]=e[28]=e[29]=e[30]=e[31]=e[32]=0),e[30]=this.hBytes<<3|this.bytes>>>29,e[31]=this.bytes<<3,this.hash()}},E.prototype.hash=function(){var e,t,r,n,i,f,o,a,s,c,u,l,d,h,p,y,m,g,v,_,w,E,A,S,T,x=this.h0h,P=this.h0l,R=this.h1h,k=this.h1l,C=this.h2h,O=this.h2l,M=this.h3h,N=this.h3l,I=this.h4h,D=this.h4l,B=this.h5h,F=this.h5l,j=this.h6h,L=this.h6l,U=this.h7h,q=this.h7l,z=this.blocks;for(e=32;e<160;e+=2)t=((_=z[e-30])>>>1|(w=z[e-29])<<31)^(_>>>8|w<<24)^_>>>7,r=(w>>>1|_<<31)^(w>>>8|_<<24)^(w>>>7|_<<25),n=((_=z[e-4])>>>19|(w=z[e-3])<<13)^(w>>>29|_<<3)^_>>>6,i=(w>>>19|_<<13)^(_>>>29|w<<3)^(w>>>6|_<<26),_=z[e-32],w=z[e-31],s=((E=z[e-14])>>>16)+(_>>>16)+(t>>>16)+(n>>>16)+((a=(65535&E)+(65535&_)+(65535&t)+(65535&n)+((o=((A=z[e-13])>>>16)+(w>>>16)+(r>>>16)+(i>>>16)+((f=(65535&A)+(65535&w)+(65535&r)+(65535&i))>>>16))>>>16))>>>16),z[e]=s<<16|65535&a,z[e+1]=o<<16|65535&f;var H=x,G=P,V=R,K=k,W=C,$=O,Y=M,J=N,X=I,Z=D,Q=B,ee=F,te=j,re=L,ne=U,ie=q;for(y=V&W,m=K&$,e=0;e<160;e+=8)t=(H>>>28|G<<4)^(G>>>2|H<<30)^(G>>>7|H<<25),r=(G>>>28|H<<4)^(H>>>2|G<<30)^(H>>>7|G<<25),n=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),i=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),g=(c=H&V)^H&W^y,v=(u=G&K)^G&$^m,S=X&Q^~X&te,T=Z&ee^~Z&re,_=z[e],w=z[e+1],_=(s=((E=b[e])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(ne>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&ne)+((o=((A=b[e+1])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(ie>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&ie))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,ne=(s=(Y>>>16)+(_>>>16)+((a=(65535&Y)+(65535&_)+((o=(J>>>16)+(w>>>16)+((f=(65535&J)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,ie=o<<16|65535&f,t=((Y=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a)>>>28|(J=o<<16|65535&f)<<4)^(J>>>2|Y<<30)^(J>>>7|Y<<25),r=(J>>>28|Y<<4)^(Y>>>2|J<<30)^(Y>>>7|J<<25),n=(ne>>>14|ie<<18)^(ne>>>18|ie<<14)^(ie>>>9|ne<<23),i=(ie>>>14|ne<<18)^(ie>>>18|ne<<14)^(ne>>>9|ie<<23),g=(l=Y&H)^Y&V^c,v=(d=J&G)^J&K^u,S=ne&X^~ne&Q,T=ie&Z^~ie&ee,_=z[e+2],w=z[e+3],_=(s=((E=b[e+2])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(te>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&te)+((o=((A=b[e+3])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(re>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&re))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,te=(s=(W>>>16)+(_>>>16)+((a=(65535&W)+(65535&_)+((o=($>>>16)+(w>>>16)+((f=(65535&$)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,re=o<<16|65535&f,t=((W=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a)>>>28|($=o<<16|65535&f)<<4)^($>>>2|W<<30)^($>>>7|W<<25),r=($>>>28|W<<4)^(W>>>2|$<<30)^(W>>>7|$<<25),n=(te>>>14|re<<18)^(te>>>18|re<<14)^(re>>>9|te<<23),i=(re>>>14|te<<18)^(re>>>18|te<<14)^(te>>>9|re<<23),g=(h=W&Y)^W&H^l,v=(p=$&J)^$&G^d,S=te&ne^~te&X,T=re&ie^~re&Z,_=z[e+4],w=z[e+5],_=(s=((E=b[e+4])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(Q>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&Q)+((o=((A=b[e+5])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(ee>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&ee))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,Q=(s=(V>>>16)+(_>>>16)+((a=(65535&V)+(65535&_)+((o=(K>>>16)+(w>>>16)+((f=(65535&K)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,ee=o<<16|65535&f,t=((V=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a)>>>28|(K=o<<16|65535&f)<<4)^(K>>>2|V<<30)^(K>>>7|V<<25),r=(K>>>28|V<<4)^(V>>>2|K<<30)^(V>>>7|K<<25),n=(Q>>>14|ee<<18)^(Q>>>18|ee<<14)^(ee>>>9|Q<<23),i=(ee>>>14|Q<<18)^(ee>>>18|Q<<14)^(Q>>>9|ee<<23),g=(y=V&W)^V&Y^h,v=(m=K&$)^K&J^p,S=Q&te^~Q&ne,T=ee&re^~ee&ie,_=z[e+6],w=z[e+7],_=(s=((E=b[e+6])>>>16)+(_>>>16)+(S>>>16)+(n>>>16)+(X>>>16)+((a=(65535&E)+(65535&_)+(65535&S)+(65535&n)+(65535&X)+((o=((A=b[e+7])>>>16)+(w>>>16)+(T>>>16)+(i>>>16)+(Z>>>16)+((f=(65535&A)+(65535&w)+(65535&T)+(65535&i)+(65535&Z))>>>16))>>>16))>>>16))<<16|65535&a,w=o<<16|65535&f,E=(s=(g>>>16)+(t>>>16)+((a=(65535&g)+(65535&t)+((o=(v>>>16)+(r>>>16)+((f=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&a,A=o<<16|65535&f,X=(s=(H>>>16)+(_>>>16)+((a=(65535&H)+(65535&_)+((o=(G>>>16)+(w>>>16)+((f=(65535&G)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,Z=o<<16|65535&f,H=(s=(E>>>16)+(_>>>16)+((a=(65535&E)+(65535&_)+((o=(A>>>16)+(w>>>16)+((f=(65535&A)+(65535&w))>>>16))>>>16))>>>16))<<16|65535&a,G=o<<16|65535&f;s=(x>>>16)+(H>>>16)+((a=(65535&x)+(65535&H)+((o=(P>>>16)+(G>>>16)+((f=(65535&P)+(65535&G))>>>16))>>>16))>>>16),this.h0h=s<<16|65535&a,this.h0l=o<<16|65535&f,s=(R>>>16)+(V>>>16)+((a=(65535&R)+(65535&V)+((o=(k>>>16)+(K>>>16)+((f=(65535&k)+(65535&K))>>>16))>>>16))>>>16),this.h1h=s<<16|65535&a,this.h1l=o<<16|65535&f,s=(C>>>16)+(W>>>16)+((a=(65535&C)+(65535&W)+((o=(O>>>16)+($>>>16)+((f=(65535&O)+(65535&$))>>>16))>>>16))>>>16),this.h2h=s<<16|65535&a,this.h2l=o<<16|65535&f,s=(M>>>16)+(Y>>>16)+((a=(65535&M)+(65535&Y)+((o=(N>>>16)+(J>>>16)+((f=(65535&N)+(65535&J))>>>16))>>>16))>>>16),this.h3h=s<<16|65535&a,this.h3l=o<<16|65535&f,s=(I>>>16)+(X>>>16)+((a=(65535&I)+(65535&X)+((o=(D>>>16)+(Z>>>16)+((f=(65535&D)+(65535&Z))>>>16))>>>16))>>>16),this.h4h=s<<16|65535&a,this.h4l=o<<16|65535&f,s=(B>>>16)+(Q>>>16)+((a=(65535&B)+(65535&Q)+((o=(F>>>16)+(ee>>>16)+((f=(65535&F)+(65535&ee))>>>16))>>>16))>>>16),this.h5h=s<<16|65535&a,this.h5l=o<<16|65535&f,s=(j>>>16)+(te>>>16)+((a=(65535&j)+(65535&te)+((o=(L>>>16)+(re>>>16)+((f=(65535&L)+(65535&re))>>>16))>>>16))>>>16),this.h6h=s<<16|65535&a,this.h6l=o<<16|65535&f,s=(U>>>16)+(ne>>>16)+((a=(65535&U)+(65535&ne)+((o=(q>>>16)+(ie>>>16)+((f=(65535&q)+(65535&ie))>>>16))>>>16))>>>16),this.h7h=s<<16|65535&a,this.h7l=o<<16|65535&f},E.prototype.hex=function(){this.finalize();var e=this.h0h,t=this.h0l,r=this.h1h,n=this.h1l,i=this.h2h,f=this.h2l,o=this.h3h,a=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,l=this.h5l,h=this.h6h,p=this.h6l,b=this.h7h,y=this.h7l,m=this.bits,g=d[e>>28&15]+d[e>>24&15]+d[e>>20&15]+d[e>>16&15]+d[e>>12&15]+d[e>>8&15]+d[e>>4&15]+d[15&e]+d[t>>28&15]+d[t>>24&15]+d[t>>20&15]+d[t>>16&15]+d[t>>12&15]+d[t>>8&15]+d[t>>4&15]+d[15&t]+d[r>>28&15]+d[r>>24&15]+d[r>>20&15]+d[r>>16&15]+d[r>>12&15]+d[r>>8&15]+d[r>>4&15]+d[15&r]+d[n>>28&15]+d[n>>24&15]+d[n>>20&15]+d[n>>16&15]+d[n>>12&15]+d[n>>8&15]+d[n>>4&15]+d[15&n]+d[i>>28&15]+d[i>>24&15]+d[i>>20&15]+d[i>>16&15]+d[i>>12&15]+d[i>>8&15]+d[i>>4&15]+d[15&i]+d[f>>28&15]+d[f>>24&15]+d[f>>20&15]+d[f>>16&15]+d[f>>12&15]+d[f>>8&15]+d[f>>4&15]+d[15&f]+d[o>>28&15]+d[o>>24&15]+d[o>>20&15]+d[o>>16&15]+d[o>>12&15]+d[o>>8&15]+d[o>>4&15]+d[15&o];return m>=256&&(g+=d[a>>28&15]+d[a>>24&15]+d[a>>20&15]+d[a>>16&15]+d[a>>12&15]+d[a>>8&15]+d[a>>4&15]+d[15&a]),m>=384&&(g+=d[s>>28&15]+d[s>>24&15]+d[s>>20&15]+d[s>>16&15]+d[s>>12&15]+d[s>>8&15]+d[s>>4&15]+d[15&s]+d[c>>28&15]+d[c>>24&15]+d[c>>20&15]+d[c>>16&15]+d[c>>12&15]+d[c>>8&15]+d[c>>4&15]+d[15&c]+d[u>>28&15]+d[u>>24&15]+d[u>>20&15]+d[u>>16&15]+d[u>>12&15]+d[u>>8&15]+d[u>>4&15]+d[15&u]+d[l>>28&15]+d[l>>24&15]+d[l>>20&15]+d[l>>16&15]+d[l>>12&15]+d[l>>8&15]+d[l>>4&15]+d[15&l]),512==m&&(g+=d[h>>28&15]+d[h>>24&15]+d[h>>20&15]+d[h>>16&15]+d[h>>12&15]+d[h>>8&15]+d[h>>4&15]+d[15&h]+d[p>>28&15]+d[p>>24&15]+d[p>>20&15]+d[p>>16&15]+d[p>>12&15]+d[p>>8&15]+d[p>>4&15]+d[15&p]+d[b>>28&15]+d[b>>24&15]+d[b>>20&15]+d[b>>16&15]+d[b>>12&15]+d[b>>8&15]+d[b>>4&15]+d[15&b]+d[y>>28&15]+d[y>>24&15]+d[y>>20&15]+d[y>>16&15]+d[y>>12&15]+d[y>>8&15]+d[y>>4&15]+d[15&y]),g},E.prototype.toString=E.prototype.hex,E.prototype.digest=function(){this.finalize();var e=this.h0h,t=this.h0l,r=this.h1h,n=this.h1l,i=this.h2h,f=this.h2l,o=this.h3h,a=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,l=this.h5l,d=this.h6h,h=this.h6l,p=this.h7h,b=this.h7l,y=this.bits,m=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,f>>24&255,f>>16&255,f>>8&255,255&f,o>>24&255,o>>16&255,o>>8&255,255&o];return y>=256&&m.push(a>>24&255,a>>16&255,a>>8&255,255&a),y>=384&&m.push(s>>24&255,s>>16&255,s>>8&255,255&s,c>>24&255,c>>16&255,c>>8&255,255&c,u>>24&255,u>>16&255,u>>8&255,255&u,l>>24&255,l>>16&255,l>>8&255,255&l),512==y&&m.push(d>>24&255,d>>16&255,d>>8&255,255&d,h>>24&255,h>>16&255,h>>8&255,255&h,p>>24&255,p>>16&255,p>>8&255,255&p,b>>24&255,b>>16&255,b>>8&255,255&b),m},E.prototype.array=E.prototype.digest,E.prototype.arrayBuffer=function(){this.finalize();var e=this.bits,t=new ArrayBuffer(e/8),r=new DataView(t);return r.setUint32(0,this.h0h),r.setUint32(4,this.h0l),r.setUint32(8,this.h1h),r.setUint32(12,this.h1l),r.setUint32(16,this.h2h),r.setUint32(20,this.h2l),r.setUint32(24,this.h3h),e>=256&&r.setUint32(28,this.h3l),e>=384&&(r.setUint32(32,this.h4h),r.setUint32(36,this.h4l),r.setUint32(40,this.h5h),r.setUint32(44,this.h5l)),512==e&&(r.setUint32(48,this.h6h),r.setUint32(52,this.h6l),r.setUint32(56,this.h7h),r.setUint32(60,this.h7l)),t},E.prototype.clone=function(){var e=new E(this.bits,!1);return this.copyTo(e),e},E.prototype.copyTo=function(e){var t=0,r=["h0h","h0l","h1h","h1l","h2h","h2l","h3h","h3l","h4h","h4l","h5h","h5l","h6h","h6l","h7h","h7l","start","bytes","hBytes","finalized","hashed","lastByteIndex"];for(t=0;t<r.length;++t)e[r[t]]=this[r[t]];for(t=0;t<this.blocks.length;++t)e.blocks[t]=this.blocks[t]},A.prototype=new E,A.prototype.finalize=function(){if(E.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();E.call(this,this.bits,this.sharedMemory),this.update(this.oKeyPad),this.update(e),E.prototype.finalize.call(this)}},A.prototype.clone=function(){var e=new A([],this.bits,!1);this.copyTo(e),e.inner=this.inner;for(var t=0;t<this.oKeyPad.length;++t)e.oKeyPad[t]=this.oKeyPad[t];return e};var S=v(512);S.sha512=S,S.sha384=v(384),S.sha512_256=v(256),S.sha512_224=v(224),S.sha512.hmac=w(512),S.sha384.hmac=w(384),S.sha512_256.hmac=w(256),S.sha512_224.hmac=w(224),c?e.exports=S:(a.sha512=S.sha512,a.sha384=S.sha384,a.sha512_256=S.sha512_256,a.sha512_224=S.sha512_224,u&&(void 0===(i=function(){return S}.call(S,r,S,e))||(e.exports=i)))}()}).call(this,r(10),r(12))},function(e,t,r){"use strict";(function(t){o.sigma=[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9],[12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11],[13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10],[6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5],[10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]],o.u256=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479],o.padding=t.from([128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),o.prototype._length_carry=function(e){for(var t=0;t<e.length&&!(e[t]<4294967296);++t)e[t]-=4294967296,e[t+1]+=1},o.prototype.update=function(e,r){e=t.from(e,r);for(var n=this._block,i=0;this._blockOffset+e.length-i>=n.length;){for(var f=this._blockOffset;f<n.length;)n[f++]=e[i++];this._length[0]+=8*n.length,this._length_carry(this._length),this._compress(),this._blockOffset=0}for(;i<e.length;)n[this._blockOffset++]=e[i++];return this};var r=t.from([1]),n=t.from([129]);function i(e,t){return(e<<32-t|e>>>t)>>>0}function f(e,t,r,n,f,a,s,c){var u=o.sigma,l=o.u256;e[n]=e[n]+((t[u[r][c]]^l[u[r][c+1]])>>>0)+e[f]>>>0,e[s]=i(e[s]^e[n],16),e[a]=e[a]+e[s]>>>0,e[f]=i(e[f]^e[a],12),e[n]=e[n]+((t[u[r][c+1]]^l[u[r][c]])>>>0)+e[f]>>>0,e[s]=i(e[s]^e[n],8),e[a]=e[a]+e[s]>>>0,e[f]=i(e[f]^e[a],7)}function o(){this._h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this._s=[0,0,0,0],this._block=t.allocUnsafe(64),this._blockOffset=0,this._length=[0,0],this._nullt=!1,this._zo=r,this._oo=n}o.prototype._compress=function(){var e,t=o.u256,r=new Array(16),n=new Array(16);for(e=0;e<16;++e)n[e]=this._block.readUInt32BE(4*e);for(e=0;e<8;++e)r[e]=this._h[e]>>>0;for(e=8;e<12;++e)r[e]=(this._s[e-8]^t[e-8])>>>0;for(e=12;e<16;++e)r[e]=t[e-8];for(this._nullt||(r[12]=(r[12]^this._length[0])>>>0,r[13]=(r[13]^this._length[0])>>>0,r[14]=(r[14]^this._length[1])>>>0,r[15]=(r[15]^this._length[1])>>>0),e=0;e<14;++e)f(r,n,e,0,4,8,12,0),f(r,n,e,1,5,9,13,2),f(r,n,e,2,6,10,14,4),f(r,n,e,3,7,11,15,6),f(r,n,e,0,5,10,15,8),f(r,n,e,1,6,11,12,10),f(r,n,e,2,7,8,13,12),f(r,n,e,3,4,9,14,14);for(e=0;e<16;++e)this._h[e%8]=(this._h[e%8]^r[e])>>>0;for(e=0;e<8;++e)this._h[e]=(this._h[e]^this._s[e%4])>>>0},o.prototype._padding=function(){var e=this._length[0]+8*this._blockOffset,r=this._length[1];e>=4294967296&&(e-=4294967296,r+=1);var n=t.allocUnsafe(8);n.writeUInt32BE(r,0),n.writeUInt32BE(e,4),55===this._blockOffset?(this._length[0]-=8,this.update(this._oo)):(this._blockOffset<55?(0===this._blockOffset&&(this._nullt=!0),this._length[0]-=8*(55-this._blockOffset),this.update(o.padding.slice(0,55-this._blockOffset))):(this._length[0]-=8*(64-this._blockOffset),this.update(o.padding.slice(0,64-this._blockOffset)),this._length[0]-=440,this.update(o.padding.slice(1,56)),this._nullt=!0),this.update(this._zo),this._length[0]-=8),this._length[0]-=64,this.update(n)},o.prototype.digest=function(e){this._padding();for(var r=t.allocUnsafe(32),n=0;n<8;++n)r.writeUInt32BE(this._h[n],4*n);return r.toString(e)},e.exports=o}).call(this,r(7).Buffer)},function(e,t,r){"use strict";(function(t,r){var n="input is invalid type",i="object"==typeof window,f=i?window:{};f.JS_SHA3_NO_WINDOW&&(i=!1);var o=!i&&"object"==typeof self;!f.JS_SHA3_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?f=r:o&&(f=self);var a=!f.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!f.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!a||!f.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var y=function(e,t,r){return function(n){return new O(e,t,e).update(n)[r]()}},m=function(e,t,r){return function(n,i){return new O(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,f){return A["cshake"+e].update(t,n,i,f)[r]()}},v=function(e,t,r){return function(t,n,i,f){return A["kmac"+e].update(t,n,i,f)[r]()}},_=function(e,t,r,n){for(var i=0;i<p.length;++i){var f=p[i];e[f]=t(r,n,f)}return e},w=function(e,t){var r=y(e,t,"hex");return r.create=function(){return new O(e,t,e)},r.update=function(e){return r.create().update(e)},_(r,y,e,t)},E=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=m(e,t,"hex");return r.create=function(r){return new O(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},_(r,m,e,t)}},{name:"cshake",padding:c,bits:h,createMethod:function(e,t){var r=b[e],n=g(e,0,"hex");return n.create=function(n,i,f){return i||f?new O(e,t,n).bytepad([i,f],r):A["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},_(n,g,e,t)}},{name:"kmac",padding:c,bits:h,createMethod:function(e,t){var r=b[e],n=v(e,0,"hex");return n.create=function(n,i,f){return new M(e,t,i).bytepad(["KMAC",f],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},_(n,v,e,t)}}],A={},S=[],T=0;T<E.length;++T)for(var x=E[T],P=x.bits,R=0;R<P.length;++R){var k=x.name+"_"+P[R];if(S.push(k),A[k]=x.createMethod(P[R],x.padding),"sha3"!==x.name){var C=x.name+P[R];S.push(C),A[C]=A[k]}}function O(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function M(e,t,r){O.call(this,e,t,r)}O.prototype.update=function(e){if(!this.finalized){var t,r=typeof e;if("string"!==r){if("object"!==r)throw n;if(null===e)throw n;if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw n;t=!0}for(var i,f,o=this.blocks,s=this.byteCount,c=e.length,l=this.blockCount,d=0,h=this.s;d<c;){if(this.reset)for(this.reset=!1,o[0]=this.block,i=1;i<l+1;++i)o[i]=0;if(t)for(i=this.start;d<c&&i<s;++d)o[i>>2]|=e[d]<<u[3&i++];else for(i=this.start;d<c&&i<s;++d)(f=e.charCodeAt(d))<128?o[i>>2]|=f<<u[3&i++]:f<2048?(o[i>>2]|=(192|f>>6)<<u[3&i++],o[i>>2]|=(128|63&f)<<u[3&i++]):f<55296||f>=57344?(o[i>>2]|=(224|f>>12)<<u[3&i++],o[i>>2]|=(128|f>>6&63)<<u[3&i++],o[i>>2]|=(128|63&f)<<u[3&i++]):(f=65536+((1023&f)<<10|1023&e.charCodeAt(++d)),o[i>>2]|=(240|f>>18)<<u[3&i++],o[i>>2]|=(128|f>>12&63)<<u[3&i++],o[i>>2]|=(128|f>>6&63)<<u[3&i++],o[i>>2]|=(128|63&f)<<u[3&i++]);if(this.lastByteIndex=i,i>=s){for(this.start=i-s,this.block=o[l],i=0;i<l;++i)h[i]^=o[i];N(h),this.reset=!0}else this.start=i}return this}},O.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},O.prototype.encodeString=function(e){var t,r=typeof e;if("string"!==r){if("object"!==r)throw n;if(null===e)throw n;if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw n;t=!0}var i=0,f=e.length;if(t)i=f;else for(var o=0;o<e.length;++o){var s=e.charCodeAt(o);s<128?i+=1:s<2048?i+=2:s<55296||s>=57344?i+=3:(s=65536+((1023&s)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},O.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=t-r%t,f=[];return f.length=i,this.update(f),this},O.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];N(n)}},O.prototype.toString=O.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,f=0,o=0,a="";o<n;){for(f=0;f<t&&o<n;++f,++o)e=r[f],a+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(N(r),f=0)}return i&&(e=r[f],a+=s[e>>4&15]+s[15&e],i>1&&(a+=s[e>>12&15]+s[e>>8&15]),i>2&&(a+=s[e>>20&15]+s[e>>16&15])),a},O.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,f=0,o=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var s=new Uint32Array(e);o<n;){for(f=0;f<t&&o<n;++f,++o)s[o]=r[f];o%t==0&&N(r)}return i&&(s[f]=r[f],e=e.slice(0,a)),e},O.prototype.buffer=O.prototype.arrayBuffer,O.prototype.digest=O.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,f=this.extraBytes,o=0,a=0,s=[];a<i;){for(o=0;o<r&&a<i;++o,++a)e=a<<2,t=n[o],s[e]=255&t,s[e+1]=t>>8&255,s[e+2]=t>>16&255,s[e+3]=t>>24&255;a%r==0&&N(n)}return f&&(e=a<<2,t=n[o],s[e]=255&t,f>1&&(s[e+1]=t>>8&255),f>2&&(s[e+2]=t>>16&255)),s},M.prototype=new O,M.prototype.finalize=function(){return this.encode(this.outputBits,!0),O.prototype.finalize.call(this)};var N=function(e){var t,r,n,i,f,o,a,s,c,u,d,h,p,b,y,m,g,v,_,w,E,A,S,T,x,P,R,k,C,O,M,N,I,D,B,F,j,L,U,q,z,H,G,V,K,W,$,Y,J,X,Z,Q,ee,te,re,ne,ie,fe,oe,ae,se,ce,ue;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],f=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],s=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],u=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|a>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(a<<1|o>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(s<<1|c>>>31),r=f^(c<<1|s>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=o^(u<<1|d>>>31),r=a^(d<<1|u>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=s^(h<<1|p>>>31),r=c^(p<<1|h>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=u^(i<<1|f>>>31),r=d^(f<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],y=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,C=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,se=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,G=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,J=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,j=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,_=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,I=e[44]<<29|e[45]>>>3,T=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,R=e[19]<<20|e[18]>>>12,fe=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,q=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~m&v,e[1]=y^~g&_,e[10]=T^~P&k,e[11]=x^~R&C,e[20]=D^~F&L,e[21]=B^~j&U,e[30]=V^~W&Y,e[31]=K^~$&J,e[40]=te^~ne&fe,e[41]=re^~ie&oe,e[2]=m^~v&w,e[3]=g^~_&E,e[12]=P^~k&O,e[13]=R^~C&M,e[22]=F^~L&q,e[23]=j^~U&z,e[32]=W^~Y&X,e[33]=$^~J&Z,e[42]=ne^~fe&ae,e[43]=ie^~oe&se,e[4]=v^~w&A,e[5]=_^~E&S,e[14]=k^~O&N,e[15]=C^~M&I,e[24]=L^~q&H,e[25]=U^~z&G,e[34]=Y^~X&Q,e[35]=J^~Z&ee,e[44]=fe^~ae&ce,e[45]=oe^~se&ue,e[6]=w^~A&b,e[7]=E^~S&y,e[16]=O^~N&T,e[17]=M^~I&x,e[26]=q^~H&D,e[27]=z^~G&B,e[36]=X^~Q&V,e[37]=Z^~ee&K,e[46]=ae^~ce&te,e[47]=se^~ue&re,e[8]=A^~b&m,e[9]=S^~y&g,e[18]=N^~T&P,e[19]=I^~x&R,e[28]=H^~D&F,e[29]=G^~B&j,e[38]=Q^~V&W,e[39]=ee^~K&$,e[48]=ce^~te&ne,e[49]=ue^~re&ie,e[0]^=l[n],e[1]^=l[n+1]};e.exports=A}).call(this,r(10),r(12))},function(e,t,r){"use strict";function n(e,t,r){var n=e[t]+e[r],i=e[t+1]+e[r+1];n>=4294967296&&i++,e[t]=n,e[t+1]=i}function i(e,t,r,n){var i=e[t]+r;r<0&&(i+=4294967296);var f=e[t+1]+n;i>=4294967296&&f++,e[t]=i,e[t+1]=f}function f(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function o(e,t,r,f,o,a){var s=u[o],l=u[o+1],d=u[a],h=u[a+1];n(c,e,t),i(c,e,s,l);var p=c[f]^c[e],b=c[f+1]^c[e+1];c[f]=b,c[f+1]=p,n(c,r,f),p=c[t]^c[r],b=c[t+1]^c[r+1],c[t]=p>>>24^b<<8,c[t+1]=b>>>24^p<<8,n(c,e,t),i(c,e,d,h),p=c[f]^c[e],b=c[f+1]^c[e+1],c[f]=p>>>16^b<<16,c[f+1]=b>>>16^p<<16,n(c,r,f),p=c[t]^c[r],b=c[t+1]^c[r+1],c[t]=b>>>31^p<<1,c[t+1]=p>>>31^b<<1}var a=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((function(e){return 2*e}))),c=new Uint32Array(32),u=new Uint32Array(32);function l(e,t){var r=0;for(r=0;r<16;r++)c[r]=e.h[r],c[r+16]=a[r];for(c[24]=c[24]^e.t,c[25]=c[25]^e.t/4294967296,t&&(c[28]=~c[28],c[29]=~c[29]),r=0;r<32;r++)u[r]=f(e.b,4*r);for(r=0;r<12;r++)o(0,8,16,24,s[16*r+0],s[16*r+1]),o(2,10,18,26,s[16*r+2],s[16*r+3]),o(4,12,20,28,s[16*r+4],s[16*r+5]),o(6,14,22,30,s[16*r+6],s[16*r+7]),o(0,10,20,30,s[16*r+8],s[16*r+9]),o(2,12,22,24,s[16*r+10],s[16*r+11]),o(4,14,16,26,s[16*r+12],s[16*r+13]),o(6,8,18,28,s[16*r+14],s[16*r+15]);for(r=0;r<16;r++)e.h[r]=e.h[r]^c[r]^c[r+16]}var d=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function h(e,t,r,n){d.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,d[0]=e,t&&(d[1]=t.length),d[2]=1,d[3]=1,r&&d.set(r,32),n&&d.set(n,48);for(var i=0;i<16;i++)this.h[i]=a[i]^f(d,4*i);t&&(p(this,t),this.c=128)}function p(e,t){for(var r=0;r<t.length;r++)128===e.c&&(e.t+=e.c,l(e,!1),e.c=0),e.b[e.c++]=t[r]}function b(e){return e<16?"0"+e.toString(16):e.toString(16)}h.prototype.update=function(e){return p(this,e),this},h.prototype.digest=function(e){var t=e&&"binary"!==e&&"hex"!==e?e:new Uint8Array(this.outlen);return function(e,t){e.t+=e.c;for(;e.c<128;)e.b[e.c++]=0;l(e,!0);for(var r=0;r<e.outlen;r++)t[r]=e.h[r>>2]>>8*(3&r)}(this,t),"hex"===e?function(e){for(var t="",r=0;r<e.length;r++)t+=b(e[r]);return t}(t):t},h.prototype.final=h.prototype.digest,e.exports=h},function(e,t){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";e.exports={b32decode:function(e){for(var t=new ArrayBuffer(5*e.length/8),n=new Uint8Array(t),i=0;i<e.length/8;i++){for(var f=[0,0,0,0,0,0,0,0],o=0;o<8;++o)f[o]=r.indexOf(e[8*i+o]);o=0;n[5*i+0]=f[o+0]<<3|f[o+1]>>2,n[5*i+1]=(3&f[o+1])<<6|f[o+2]<<1|f[o+3]>>4,n[5*i+2]=(15&f[o+3])<<4|f[o+4]>>1,n[5*i+3]=(1&f[o+4])<<7|f[o+5]<<2|f[o+6]>>3,n[5*i+4]=(7&f[o+6])<<5|f[o+7]}return n},b32encode:function(e){var t=[],n=Math.floor(e.length/5),i=e.length%5;if(0!=i){for(var f=0;f<5-i;f++)e+="\0";n+=1}for(f=0;f<n;f++)t.push(r.charAt(e.charCodeAt(5*f)>>3)),t.push(r.charAt((7&e.charCodeAt(5*f))<<2|e.charCodeAt(5*f+1)>>6)),t.push(r.charAt((63&e.charCodeAt(5*f+1))>>1)),t.push(r.charAt((1&e.charCodeAt(5*f+1))<<4|e.charCodeAt(5*f+2)>>4)),t.push(r.charAt((15&e.charCodeAt(5*f+2))<<1|e.charCodeAt(5*f+3)>>7)),t.push(r.charAt((127&e.charCodeAt(5*f+3))>>2)),t.push(r.charAt((3&e.charCodeAt(5*f+3))<<3|e.charCodeAt(5*f+4)>>5)),t.push(r.charAt(31&e.charCodeAt(5*f+4)));var o=0;1==i?o=6:2==i?o=4:3==i?o=3:4==i&&(o=1);for(f=0;f<o;f++)t.pop();for(f=0;f<o;f++)t.push("=");return t.join("")}}},function(e,t,r){(function(t){var r,n=1e9,i=1e6,f=20,o=4,a=-7,s=21,c=-n,u=n,l=!0,d=parseInt,h=v.prototype,p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",b=0,y=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,m=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=v(1);function v(e,t){var n,i,a,s,d,h,g=this;if(!(g instanceof v))return new v(e,t);if(e instanceof v){if(b=0,t===n)return g.s=e.s,g.e=e.e,void(g.c=(e=e.c)?e.slice():e);e+=""}if("string"!=typeof e&&(e=(a="number"==typeof e||"[object Number]"==Object.prototype.toString.call(e))&&0===e&&1/e<0?"-0":e+""),h=e,t===n&&y.test(e))g.s="-"==e.charAt(0)?(e=e.slice(1),-1):1;else{if(10==t)return T(e,f,o);if(e=m.call(e).replace(/^\+(?!-)/,""),g.s="-"==e.charAt(0)?(e=e.replace(/^-(?!-)/,""),-1):1,null!=t?t!=(0|t)&&l||(r=!(t>=2&&t<65))?(_(t,2),d=y.test(e)):(s="["+p.slice(0,t|=0)+"]+",e=e.replace(/\.$/,"").replace(/^\./,"0."),(d=new RegExp("^"+s+"(?:\\."+s+")?$",t<37?"i":"").test(e))?(a&&(e.replace(/^0\.0*|\./,"").length>15&&_(h,0),a=!a),e=w(e,10,t,g.s)):"Infinity"!=e&&"NaN"!=e&&(_(h,1,t),e="NaN")):d=y.test(e),!d)return g.c=g.e=null,"Infinity"!=e&&("NaN"!=e&&_(h,3),g.s=null),void(b=0)}for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;"0"==e.charAt(i);i++);if(t=e.length,a&&t>15&&e.slice(i).length>15&&_(h,0),b=0,(n-=i+1)>u)g.c=g.e=null;else if(i==t||n<c)g.c=[g.e=0];else{for(;"0"==e.charAt(--t););for(g.e=n,g.c=[],n=0;i<=t;g.c[n++]=+e.charAt(i++));}}function _(e,t,n,i,f,o){if(l){var a,s=["new BigNumber","cmp","div","eq","gt","gte","lt","lte","minus","mod","plus","times","toFr"][b?b<0?-b:b:1/b<0?1:0]+"()",c=r?" out of range":" not a"+(f?" non-zero":"n")+" integer";throw c=([s+" number type has more than 15 significant digits",s+" not a base "+n+" number",s+" base"+c,s+" not a number"][t]||n+"() "+t+(o?" not a boolean or binary digit":c+(i?" or not ["+(r?" negative, positive":" integer, integer")+" ]":"")))+": "+e,r=b=0,(a=new Error(c)).name="BigNumber Error",a}}function w(e,t,r,n){var i,f,o,a,s,c;function u(e,n){var i,f,o=0,a=e.length,s=[0];for(n=n||r;o<a;o++){for(f=s.length,i=0;i<f;s[i]*=n,i++);for(s[0]+=p.indexOf(e.charAt(o)),i=0;i<s.length;i++)s[i]>t-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/t^0,s[i]%=t)}return s.reverse()}function l(e){for(var t=0,r=e.length,n="";t<r;n+=p.charAt(e[t++]));return n}if(r<37&&(e=e.toLowerCase()),(i=e.indexOf("."))>-1)if(i=e.length-i-1,f=u(new v(r).pow(i).toF(),10),o=u((a=e.split("."))[1]),a=u(a[0]),s=(c=E(o,f,o.length-f.length,n,t,1&a[a.length-1])).c,i=c.e){for(;++i;s.unshift(0));e=l(a)+"."+l(s)}else s[0]?a[i=a.length-1]<t-1?(++a[i],e=l(a)):e=new v(l(a),t).plus(g).toS(t):e=l(a);else e=l(u(e));return e}function E(e,t,r,n,i,o){var a,s,l,d,h,p=t.slice(),b=a=t.length,y=e.length,m=e.slice(0,a),_=m.length,w=new v(g),E=w.c=[],A=0,T=f+(w.e=r)+1;for(w.s=n,n=T<0?0:T;_++<a;m.push(0));p.unshift(0);do{for(l=0;l<i;l++){if(a!=(_=m.length))d=a>_?1:-1;else for(h=-1,d=0;++h<a;)if(t[h]!=m[h]){d=t[h]>m[h]?1:-1;break}if(!(d<0))break;for(s=_==a?t:p;_;){if(m[--_]<s[_]){for(h=_;h&&!m[--h];m[h]=i-1);--m[h],m[_]+=i}m[_]-=s[_]}for(;!m[0];m.shift());}E[A++]=d?l:++l,m[0]&&d?m[_]=e[b]||0:m=[e[b]]}while((b++<y||null!=m[0])&&n--);return E[0]||1==A||(--w.e,E.shift()),A>T&&S(w,f,i,o,null!=m[0]),w.e>u?w.c=w.e=null:w.e<c&&(w.c=[w.e=0]),w}function A(e,t,r){var n=t-(e=new v(e)).e,i=e.c;if(!i)return e.toS();for(i.length>++t&&S(e,n,10),n=0==i[0]?n+1:r?t:e.e+n+1;i.length<n;i.push(0));return n=e.e,1==r||2==r&&(--t<n||n<=a)?(e.s<0&&i[0]?"-":"")+(i.length>1?(i.splice(1,0,"."),i.join("")):i[0])+(n<0?"e":"e+")+n:e.toS()}function S(e,t,r,n,i){var f=e.c,a=e.s<0,s=r/2,c=e.e+t+1,u=f[c],l=i||c<0||null!=f[c+1];if(i=o<4?(null!=u||l)&&(0==o||2==o&&!a||3==o&&a):u>s||u==s&&(4==o||l||6==o&&(1&f[c-1]||!t&&n)||7==o&&!a||8==o&&a),c<1||!f[0])return f.length=0,f.push(0),i?(f[0]=1,e.e=-t):e.e=0,e;if(f.length=c--,i)for(--r;++f[c]>r;)f[c]=0,c--||(++e.e,f.unshift(1));for(c=f.length;!f[--c];f.pop());return e}function T(e,t,r){var n=o;return o=r,(e=new v(e)).c&&S(e,t,10),o=n,e}v.ROUND_UP=0,v.ROUND_DOWN=1,v.ROUND_CEIL=2,v.ROUND_FLOOR=3,v.ROUND_HALF_UP=4,v.ROUND_HALF_DOWN=5,v.ROUND_HALF_EVEN=6,v.ROUND_HALF_CEIL=7,v.ROUND_HALF_FLOOR=8,v.fromBuffer=function(e,t){t||(t={});var r={1:"big","-1":"little"}[t.endian]||t.endian||"big",n="auto"===t.size?Math.ceil(e.length):t.size||1;if(e.length%n!=0)throw new RangeError("Buffer length ("+e.length+") must be a multiple of size ("+n+")");for(var i=[],f=0;f<e.length;f+=n){for(var o=[],a=0;a<n;a++)o.push(e[f+("big"===r?a:n-a-1)]);i.push(o.map((function(e){return(e<16?"0":"")+e.toString(16)})).join(""))}return v(i.join(""),16)},v.config=function(){var e,t,i=0,h={},p=arguments,y=p[0],m="config",g=function(e,t,n){return!((r=e<t||e>n)||d(e)!=e&&0!==e)},v=y&&"object"==typeof y?function(){if(y.hasOwnProperty(t))return null!=(e=y[t])}:function(){if(p.length>i)return null!=(e=p[i++])};return v(t="DECIMAL_PLACES")&&(g(e,0,n)?f=0|e:_(e,t,m)),h[t]=f,v(t="ROUNDING_MODE")&&(g(e,0,8)?o=0|e:_(e,t,m)),h[t]=o,v(t="EXPONENTIAL_AT")&&(g(e,-n,n)?a=-(s=~~(e<0?-e:+e)):!r&&e&&g(e[0],-n,0)&&g(e[1],0,n)?(a=~~e[0],s=~~e[1]):_(e,t,m,1)),h[t]=[a,s],v(t="RANGE")&&(g(e,-n,n)&&~~e?c=-(u=~~(e<0?-e:+e)):!r&&e&&g(e[0],-n,-1)&&g(e[1],1,n)?(c=~~e[0],u=~~e[1]):_(e,t,m,1,1)),h[t]=[c,u],v(t="ERRORS")&&(e===!!e||1===e||0===e?(r=b=0,d=(l=!!e)?parseInt:parseFloat):_(e,t,m,0,0,1)),h[t]=l,h},h.abs=h.absoluteValue=function(){var e=new v(this);return e.s<0&&(e.s=1),e},h.bitLength=function(){return this.toString(2).length},h.ceil=function(){return T(this,0,2)},h.comparedTo=h.cmp=function(e,t){var r,n=this,i=n.c,f=(b=-b,e=new v(e,t)).c,o=n.s,a=e.s,s=n.e,c=e.e;if(!o||!a)return null;if(r=i&&!i[0],t=f&&!f[0],r||t)return r?t?0:-a:o;if(o!=a)return o;if(r=o<0,t=s==c,!i||!f)return t?0:!i^r?1:-1;if(!t)return s>c^r?1:-1;for(o=-1,a=(s=i.length)<(c=f.length)?s:c;++o<a;)if(i[o]!=f[o])return i[o]>f[o]^r?1:-1;return s==c?0:s>c^r?1:-1},h.dividedBy=h.div=function(e,t){var r=this.c,n=this.e,i=this.s,f=(b=2,e=new v(e,t)).c,o=e.e,a=e.s,s=i==a?1:-1;return(n||r&&r[0])&&(o||f&&f[0])?E(r,f,n-o,s,10):new v(i&&a&&(r?!f||r[0]!=f[0]:f)?r&&0==r[0]||!f?0*s:s/0:NaN)},h.equals=h.eq=function(e,t){return b=3,0===this.cmp(e,t)},h.floor=function(){return T(this,0,3)},h.greaterThan=h.gt=function(e,t){return b=4,this.cmp(e,t)>0},h.greaterThanOrEqualTo=h.gte=h.gt=function(e,t){return b=5,1==(t=this.cmp(e,t))||0===t},h.isFinite=h.isF=function(){return!!this.c},h.isNaN=function(){return!this.s},h.isNegative=h.isNeg=function(){return this.s<0},h.isZero=h.isZ=function(){return!!this.c&&0==this.c[0]},h.lessThan=h.lt=function(e,t){return b=6,this.cmp(e,t)<0},h.lessThanOrEqualTo=h.lte=h.le=function(e,t){return b=7,-1==(t=this.cmp(e,t))||0===t},h.minus=h.sub=function(e,t){var r,n,i,f,a=this,s=a.s;if(t=(b=8,e=new v(e,t)).s,!s||!t)return new v(NaN);if(s!=t)return e.s=-t,a.plus(e);var u=a.c,l=a.e,d=e.c,h=e.e;if(!l||!h){if(!u||!d)return u?(e.s=-t,e):new v(d?a:NaN);if(!u[0]||!d[0])return d[0]?(e.s=-t,e):new v(u[0]?a:3==o?-0:0)}if(u=u.slice(),s=l-h){for((r=(f=s<0)?(s=-s,u):(h=l,d)).reverse(),t=s;t--;r.push(0));r.reverse()}else for(i=((f=u.length<d.length)?u:d).length,s=t=0;t<i;t++)if(u[t]!=d[t]){f=u[t]<d[t];break}if(f&&(r=u,u=d,d=r,e.s=-e.s),(t=-((i=u.length)-d.length))>0)for(;t--;u[i++]=0);for(t=d.length;t>s;){if(u[--t]<d[t]){for(n=t;n&&!u[--n];u[n]=9);--u[n],u[t]+=10}u[t]-=d[t]}for(;0==u[--i];u.pop());for(;0==u[0];u.shift(),--h);return(h<c||!u[0])&&(u[0]||(e.s=3==o?-1:1),u=[h=0]),e.c=u,e.e=h,e},h.modulo=h.mod=function(e,t){var r=this,n=r.c,i=(b=9,e=new v(e,t)).c,a=r.s,s=e.s;return(t=!a||!s||i&&!i[0])||n&&!n[0]?new v(t?NaN:r):(r.s=e.s=1,t=1==e.cmp(r),r.s=a,e.s=s,t?new v(r):(a=f,s=o,f=0,o=1,r=r.div(e),f=a,o=s,this.minus(r.times(e))))},h.negated=h.neg=function(){var e=new v(this);return e.s=-e.s||null,e},h.plus=h.add=function(e,t){var r,n=this,i=n.s;if(t=(b=10,e=new v(e,t)).s,!i||!t)return new v(NaN);if(i!=t)return e.s=-t,n.minus(e);var f=n.e,o=n.c,a=e.e,s=e.c;if(!f||!a){if(!o||!s)return new v(i/0);if(!o[0]||!s[0])return s[0]?e:new v(o[0]?n:0*i)}if(o=o.slice(),i=f-a){for((r=i>0?(a=f,s):(i=-i,o)).reverse();i--;r.push(0));r.reverse()}for(o.length-s.length<0&&(r=s,s=o,o=r),i=s.length,t=0;i;t=(o[--i]=o[i]+s[i]+t)/10^0,o[i]%=10);for(t&&(o.unshift(t),++a>u&&(o=a=null)),i=o.length;0==o[--i];o.pop());return e.c=o,e.e=a,e},h.toPower=h.pow=function(e){var t=0*e==0?0|e:e,n=new v(this),f=new v(g);if(((r=e<-1e6||e>i)&&(t=1*e/0)||d(e)!=e&&0!==e&&!(t=NaN))&&!_(e,"exponent","pow")||!t)return new v(Math.pow(n.toS(),t));for(t=t<0?-t:t;1&t&&(f=f.times(n)),t>>=1;)n=n.times(n);return e<0?g.div(f):f},h.powm=function(e,t){return this.pow(e).mod(t)},h.round=function(e,t){return T(this,e=null==e||((r=e<0||e>n)||d(e)!=e)&&!_(e,"decimal places","round")?0:0|e,t=null==t||((r=t<0||t>8)||d(t)!=t&&0!==t)&&!_(t,"mode","round")?o:0|t)},h.squareRoot=h.sqrt=function(){var e,t,r,n,i=this,a=i.c,s=i.s,c=i.e,u=f,l=o,d=new v("0.5");if(1!==s||!a||!a[0])return new v(!s||s<0&&(!a||a[0])?NaN:a?i:1/0);for(s=Math.sqrt(i.toS()),o=1,0==s||s==1/0?((e=a.join("")).length+c&1||(e+="0"),(t=new v(Math.sqrt(e)+"")).c||(t.c=[1]),t.e=((c+1)/2|0)-(c<0||1&c)):t=new v(e=s.toString()),(s=(r=t.e)+(f+=4))<3&&(s=0),c=s;;)if(n=t,t=d.times(n.plus(i.div(n))),n.c.slice(0,s).join("")===t.c.slice(0,s).join("")){if(9!=(a=t.c)[s-=e&&t.e<r]||9!=a[s-1]||9!=a[s-2]||!(9==a[s-3]||e&&4==a[s-3])){if(!(a[c]||a[c-1]||a[c-2]||a[c-3]&&5!=a[c-3]||(a.length>c-2&&(a.length=c-2),t.times(t).eq(i)))){for(;a.length<c-3;)a.push(0);a[c-3]++}return o=l,S(t,f=u,10),t}if(e&&9==a[s-3]&&(n=t.round(u,0)).times(n).eq(i))return o=l,f=u,n;f+=4,s+=4,e=""}},h.times=h.mul=function(e,t){var r,n=this,i=n.c,f=(b=11,e=new v(e,t)).c,o=n.e,a=e.e,s=n.s;if(e.s=s==(t=e.s)?1:-1,!((o||i&&i[0])&&(a||f&&f[0])))return new v(!s||!t||i&&!i[0]&&!f||f&&!f[0]&&!i?NaN:i&&f?0*e.s:e.s/0);for(e.e=o+a,(s=i.length)<(t=f.length)&&(r=i,i=f,f=r,a=s,s=t,t=a),a=s+t,r=[];a--;r.push(0));for(o=t-1;o>-1;o--){for(t=0,a=s+o;a>o;t=r[a]+f[o]*i[a-o-1]+t,r[a--]=t%10|0,t=t/10|0);t&&(r[a]=(r[a]+t)%10)}for(t&&++e.e,!r[0]&&r.shift(),a=r.length;!r[--a];r.pop());return e.c=e.e>u?e.e=null:e.e<c?[e.e=0]:r,e},h.toBuffer=function(e){if("string"==typeof e){if("mpint"!==e)return"Unsupported Buffer representation";var r=this.abs(),n=1===(u=r.toBuffer({size:1,endian:"big"})).length&&0===u[0]?0:u.length;128&u[0]&&n++;var i=new t(4+n);n>0&&u.copy(i,4+(128&u[0]?1:0)),128&u[0]&&(i[4]=0),i[0]=n&255<<24,i[1]=n&255<<16,i[2]=65280&n,i[3]=255&n;var f=this.lt(0);if(f)for(var o=4;o<i.length;o++)i[o]=255-i[o];return i[4]=127&i[4]|(f?128:0),f&&i[i.length-1]++,i}e||(e={});var a={1:"big","-1":"little"}[e.endian]||e.endian||"big",s=this.toString(16);if("-"===s.charAt(0))throw new Error("converting negative numbers to Buffers not supported yet");for(var c="auto"===e.size?Math.ceil(s.length/2):e.size||1,u=(n=Math.ceil(s.length/(2*c))*c,new t(n));s.length<2*n;)s="0"+s;return s.split(new RegExp("(.{"+2*c+"})")).filter((function(e){return e.length>0})).forEach((function(e,t){for(var r=0;r<c;r++){u[t*c+("big"===a?r:c-r-1)]=parseInt(e.slice(2*r,2*r+2),16)}})),u},h.toExponential=h.toE=function(e){return A(this,(null==e||((r=e<0||e>n)||d(e)!=e&&0!==e)&&!_(e,"decimal places","toE"))&&this.c?this.c.length-1:0|e,1)},h.toFixed=h.toF=function(e){var t,i,f,o=this;return null==e||((r=e<0||e>n)||d(e)!=e&&0!==e)&&!_(e,"decimal places","toF")||(f=o.e+(0|e)),t=a,e=s,a=-(s=1/0),f==i?i=o.toS():(i=A(o,f),o.s<0&&o.c&&(o.c[0]?i.indexOf("-")<0&&(i="-"+i):i=i.replace(/^-/,""))),a=t,s=e,i},h.toFraction=h.toFr=function(e){var t,n,i,a,s,c,d,h=a=new v(g),p=i=new v("0"),y=this,m=y.c,w=u,E=f,A=o,S=new v(g);if(!m)return y.toS();for(d=S.e=m.length-y.e-1,(null==e||(!(b=12,c=new v(e)).s||(r=c.cmp(h)<0||!c.c)||l&&c.e<c.c.length-1)&&!_(e,"max denominator","toFr")||(e=c).cmp(S)>0)&&(e=d>0?S:h),u=1/0,c=new v(m.join("")),f=0,o=1;t=c.div(S),1!=(s=a.plus(t.times(p))).cmp(e);)a=p,p=s,h=i.plus(t.times(s=h)),i=s,S=c.minus(t.times(s=S)),c=s;return s=e.minus(a).div(p),i=i.plus(s.times(h)),a=a.plus(s.times(p)),i.s=h.s=y.s,f=2*d,o=A,n=h.div(p).minus(y).abs().cmp(i.div(a).minus(y).abs())<1?[h.toS(),p.toS()]:[i.toS(),a.toS()],u=w,f=E,n},h.toPrecision=h.toP=function(e){return null==e||((r=e<1||e>n)||d(e)!=e)&&!_(e,"precision","toP")?this.toS():A(this,0|--e,2)},h.toString=h.toS=function(e){var t,n,i,f=this,o=f.e;if(null===o)n=f.s?"Infinity":"NaN";else{if(e===t&&(o<=a||o>=s))return A(f,f.c.length-1,1);if(n=f.c.join(""),o<0){for(;++o;n="0"+n);n="0."+n}else if(i=n.length,o>0)if(++o>i)for(o-=i;o--;n+="0");else o<i&&(n=n.slice(0,o)+"."+n.slice(o));else if(t=n.charAt(0),i>1)n=t+"."+n.slice(1);else if("0"==t)return t;if(null!=e)if((r=!(e>=2&&e<65))||e!=(0|e)&&l)_(e,"base","toS");else if("0"==(n=w(n,0|e,10,f.s)))return n}return f.s<0?"-"+n:n},h.valueOf=function(){return this.toS()},e.exports=v}).call(this,r(7).Buffer)},function(e,t,r){var n=r(122);function i(e,t,r,n){for(var i=0,f=0,o=[],a=(1<<r)-1,s=0;s<e.length;++s){var c=e[s];if(c<0||c>>t!=0)return null;for(i=i<<t|c,f+=t;f>=r;)f-=r,o.push(i>>f&a)}if(n)f>0&&o.push(i<<r-f&a);else if(f>=t||i<<r-f&a)return null;return o}function f(e,t){var r=!1,f=n.decode(t,n.encodings.BECH32);if(null===f&&(f=n.decode(t,n.encodings.BECH32M),r=!0),null===f||f.hrp!==e||f.data.length<1||f.data[0]>16)return null;var o=i(f.data.slice(1),5,8,!1);return null===o||o.length<2||o.length>40||0===f.data[0]&&20!==o.length&&32!==o.length||0===f.data[0]&&r?null:0===f.data[0]||r?{version:f.data[0],program:o}:null}function o(e,t,r){var o=n.encodings.BECH32;t>0&&(o=n.encodings.BECH32M);var a=n.encode(e,[t].concat(i(r,8,5,!0)),o);return null===f(e,a)?null:a}var a="prod";e.exports={encode:o,decode:f,isValidAddress:function(e,t,r={}){if(!t.bech32Hrp||0===t.bech32Hrp.length)return!1;const{networkType:n=a}=r;var i;if("prod"===n||"testnet"===n)i=t.bech32Hrp[n];else{if(!t.bech32Hrp)return!1;i=t.bech32Hrp.prod.concat(t.bech32Hrp.testnet)}for(var s of i){var c=f(s,e);if(c)return o(s,c.version,c.program)===e.toLowerCase()}return!1}}},function(e,t,r){var n=r(524),i=r(282),f=r(85),o=r(219);function a(e){var t=function(e){try{var t=f.decode(e);return n.decode(new Uint8Array(t).buffer)}catch(e){return null}}(e);if(!t||!Array.isArray(t)&&2!=t.length)return!1;var r=t[0],o=t[1];return"number"==typeof o&&i.crc32(r)==o}e.exports={isValidAddress:function(e,t,r={}){return a(e)||function(e,t,r){return o.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){var n,i;!function(f,o){"use strict";var a=Math.pow(2,-24),s=Math.pow(2,32),c=Math.pow(2,53);(i="function"==typeof(n={encode:function(e){var t,r=new ArrayBuffer(256),n=new DataView(r),i=0;function f(e){for(var f=r.byteLength,o=i+e;f<o;)f*=2;if(f!==r.byteLength){var a=n;r=new ArrayBuffer(f),n=new DataView(r);for(var s=i+3>>2,c=0;c<s;++c)n.setUint32(4*c,a.getUint32(4*c))}return t=e,n}function a(){i+=t}function u(e){a(f(1).setUint8(i,e))}function l(e){for(var t=f(e.length),r=0;r<e.length;++r)t.setUint8(i+r,e[r]);a()}function d(e,t){t<24?u(e<<5|t):t<256?(u(e<<5|24),u(t)):t<65536?(u(e<<5|25),function(e){a(f(2).setUint16(i,e))}(t)):t<4294967296?(u(e<<5|26),function(e){a(f(4).setUint32(i,e))}(t)):(u(e<<5|27),function(e){var t=e%s,r=(e-t)/s,n=f(8);n.setUint32(i,r),n.setUint32(i+4,t),a()}(t))}if(function e(t){var r;if(!1===t)return u(244);if(!0===t)return u(245);if(null===t)return u(246);if(t===o)return u(247);switch(typeof t){case"number":if(Math.floor(t)===t){if(0<=t&&t<=c)return d(0,t);if(-c<=t&&t<0)return d(1,-(t+1))}return u(251),function(e){a(f(8).setFloat64(i,e))}(t);case"string":var n=[];for(r=0;r<t.length;++r){var s=t.charCodeAt(r);s<128?n.push(s):s<2048?(n.push(192|s>>6),n.push(128|63&s)):s<55296?(n.push(224|s>>12),n.push(128|s>>6&63),n.push(128|63&s)):(s=(1023&s)<<10,s|=1023&t.charCodeAt(++r),s+=65536,n.push(240|s>>18),n.push(128|s>>12&63),n.push(128|s>>6&63),n.push(128|63&s))}return d(3,n.length),l(n);default:var h;if(Array.isArray(t))for(d(4,h=t.length),r=0;r<h;++r)e(t[r]);else if(t instanceof Uint8Array)d(2,t.length),l(t);else{var p=Object.keys(t);for(d(5,h=p.length),r=0;r<h;++r){var b=p[r];e(b),e(t[b])}}}}(e),"slice"in r)return r.slice(0,i);for(var h=new ArrayBuffer(i),p=new DataView(h),b=0;b<i;++b)p.setUint8(b,n.getUint8(b));return h},decode:function(e,t,r){var n=new DataView(e),i=0;function f(e,t){return i+=t,e}function c(t){return f(new Uint8Array(e,i,t),t)}function u(){return f(n.getUint8(i),1)}function l(){return f(n.getUint16(i),2)}function d(){return f(n.getUint32(i),4)}function h(){return 255===n.getUint8(i)&&(i+=1,!0)}function p(e){if(e<24)return e;if(24===e)return u();if(25===e)return l();if(26===e)return d();if(27===e)return d()*s+d();if(31===e)return-1;throw"Invalid length encoding"}function b(e){var t=u();if(255===t)return-1;var r=p(31&t);if(r<0||t>>5!==e)throw"Invalid indefinite length element";return r}function y(e,t){for(var r=0;r<t;++r){var n=u();128&n&&(n<224?(n=(31&n)<<6|63&u(),t-=1):n<240?(n=(15&n)<<12|(63&u())<<6|63&u(),t-=2):(n=(15&n)<<18|(63&u())<<12|(63&u())<<6|63&u(),t-=3)),n<65536?e.push(n):(n-=65536,e.push(55296|n>>10),e.push(56320|1023&n))}}"function"!=typeof t&&(t=function(e){return e}),"function"!=typeof r&&(r=function(){return o});var m=function e(){var s,d,m=u(),g=m>>5,v=31&m;if(7===g)switch(v){case 25:return function(){var e=new ArrayBuffer(4),t=new DataView(e),r=l(),n=32768&r,i=31744&r,f=1023&r;if(31744===i)i=261120;else if(0!==i)i+=114688;else if(0!==f)return f*a;return t.setUint32(0,n<<16|i<<13|f<<13),t.getFloat32(0)}();case 26:return f(n.getFloat32(i),4);case 27:return f(n.getFloat64(i),8)}if((d=p(v))<0&&(g<2||6<g))throw"Invalid length";switch(g){case 0:return d;case 1:return-1-d;case 2:if(d<0){for(var _=[],w=0;(d=b(g))>=0;)w+=d,_.push(c(d));var E=new Uint8Array(w),A=0;for(s=0;s<_.length;++s)E.set(_[s],A),A+=_[s].length;return E}return c(d);case 3:var S=[];if(d<0)for(;(d=b(g))>=0;)y(S,d);else y(S,d);return String.fromCharCode.apply(null,S);case 4:var T;if(d<0)for(T=[];!h();)T.push(e());else for(T=new Array(d),s=0;s<d;++s)T[s]=e();return T;case 5:var x={};for(s=0;s<d||d<0&&!h();++s){x[e()]=e()}return x;case 6:return t(e(),d);case 7:switch(d){case 20:return!1;case 21:return!0;case 22:return null;case 23:return o;default:return r(d)}}}();if(i!==e.byteLength)throw"Remaining bytes";return m}})?n.call(t,r,t,e):n)===o||(e.exports=i)}()},function(e,t,r){var n=r(19),i=r(526),f="prod",o=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95}$"),a=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{106}$");e.exports={isValidAddress:function(e,t,r={}){const{networkType:s=f}=r;var c="standard";if(!o.test(e)){if(!a.test(e))return!1;c="integrated"}var u=i.decode(e);return!!u&&(!!function(e,t,r,n){var i=t.addressTypes;"integrated"==n&&(i=t.iAddressTypes);var f=parseInt(e.substr(0,2),16).toString();switch(r){case"prod":return i.prod.indexOf(f)>=0;case"testnet":return i.testnet.indexOf(f)>=0;case"stagenet":return i.stagenet.indexOf(f)>=0;case"both":return i.prod.indexOf(f)>=0||i.testnet.indexOf(f)>=0||i.stagenet.indexOf(f)>=0;default:return!1}}(u,t,s,c)&&u.slice(-8)===n.keccak256Checksum(function(e){if(e.length%2!=0)return null;for(var t=new Uint8Array(e.length/2),r=0;r<e.length/2;++r)t[r]=parseInt(e.slice(2*r,2*r+2),16);return t}(u.slice(0,-8))))}}},function(e,t,r){var n=r(527).JSBigInt,i=function(){for(var e={},t="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",r=[],i=0;i<t.length;i++)r.push(t.charCodeAt(i));var f=[0,2,3,5,6,7,9,10,11],o=r.length,a=11,s=new n(2).pow(64);return e.encode_block=function(e,t,i){if(e.length<1||e.length>a)throw"Invalid block length: "+e.length;for(var s=function(e){if(e.length<1||e.length>8)throw"Invalid input length";var t=n.ZERO,r=new n(2).pow(8),i=0;switch(9-e.length){case 1:t=t.add(e[i++]);case 2:t=t.multiply(r).add(e[i++]);case 3:t=t.multiply(r).add(e[i++]);case 4:t=t.multiply(r).add(e[i++]);case 5:t=t.multiply(r).add(e[i++]);case 6:t=t.multiply(r).add(e[i++]);case 7:t=t.multiply(r).add(e[i++]);case 8:t=t.multiply(r).add(e[i++]);break;default:throw"Impossible condition"}return t}(e),c=f[e.length]-1;1===s.compare(0);){var u=s.divRem(o),l=u[1];s=u[0],t[i+c]=r[l.toJSValue()],c--}return t},e.encode=function(t){var n=function(e){if(e.length%2!=0)throw"Hex string has invalid length!";for(var t=new Uint8Array(e.length/2),r=0;r<e.length/2;++r)t[r]=parseInt(e.slice(2*r,2*r+2),16);return t}(t);if(0===n.length)return"";var i,o=Math.floor(n.length/8),s=n.length%8,c=o*a+f[s],u=new Uint8Array(c);for(i=0;i<c;++i)u[i]=r[0];for(i=0;i<o;i++)u=e.encode_block(n.subarray(8*i,8*i+8),u,i*a);return s>0&&(u=e.encode_block(n.subarray(8*o,8*o+s),u,o*a)),function(e){for(var t=[],r=0;r<e.length;r++)t.push(String.fromCharCode(e[r]));return t.join("")}(u)},e.decode_block=function(e,t,i){if(e.length<1||e.length>a)throw"Invalid block length: "+e.length;var c=f.indexOf(e.length);if(c<=0)throw"Invalid block size";for(var u=new n(0),l=new n(1),d=e.length-1;d>=0;d--){var h=r.indexOf(e[d]);if(h<0)throw"Invalid symbol";var p=l.multiply(h).add(u);if(1===p.compare(s))throw"Overflow";u=p,l=l.multiply(o)}if(c<8&&new n(2).pow(8*c).compare(u)<=0)throw"Overflow 2";return t.set(function(e,t){var r=new Uint8Array(t);if(t<1||t>8)throw"Invalid input length";for(var i=new n(2).pow(8),f=t-1;f>=0;f--)r[f]=e.remainder(i).toJSValue(),e=e.divide(i);return r}(u,c),i),t},e.decode=function(t){if(0===(t=function(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(t)).length)return"";var r=Math.floor(t.length/a),n=t.length%a,i=f.indexOf(n);if(i<0)throw"Invalid encoded length";for(var o=new Uint8Array(8*r+i),s=0;s<r;s++)o=e.decode_block(t.subarray(s*a,s*a+a),o,8*s);return n>0&&(o=e.decode_block(t.subarray(r*a,r*a+n),o,8*r)),function(e){for(var t=[],r=0;r<e.length;++r)t.push(("0"+e[r].toString(16)).slice(-2));return t.join("")}(o)},e}();e.exports=i},function(e,t,r){!function(e){"use strict";var t={};function r(e,n,f){if(f!==t)return e instanceof r?e:void 0===e?i:r.parse(e);for(e=e||[];e.length&&!e[e.length-1];)--e.length;this._d=e,this._s=e.length?n||1:0}r._construct=function(e,n){return new r(e,n,t)};var n=1e7;r.base=n,r.base_log10=7;var i=new r([],0,t);r.ZERO=i;var f=new r([1],1,t);r.ONE=f;var o=new r(f._d,-1,t);r.M_ONE=o,r._0=i,r._1=f,r.small=[i,f,new r([2],1,t),new r([3],1,t),new r([4],1,t),new r([5],1,t),new r([6],1,t),new r([7],1,t),new r([8],1,t),new r([9],1,t),new r([10],1,t),new r([11],1,t),new r([12],1,t),new r([13],1,t),new r([14],1,t),new r([15],1,t),new r([16],1,t),new r([17],1,t),new r([18],1,t),new r([19],1,t),new r([20],1,t),new r([21],1,t),new r([22],1,t),new r([23],1,t),new r([24],1,t),new r([25],1,t),new r([26],1,t),new r([27],1,t),new r([28],1,t),new r([29],1,t),new r([30],1,t),new r([31],1,t),new r([32],1,t),new r([33],1,t),new r([34],1,t),new r([35],1,t),new r([36],1,t)],r.digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),r.prototype.toString=function(e){if((e=+e||10)<2||e>36)throw new Error("illegal radix "+e+".");if(0===this._s)return"0";if(10===e){var t=this._s<0?"-":"";t+=this._d[this._d.length-1].toString();for(var n=this._d.length-2;n>=0;n--){for(var i=this._d[n].toString();i.length<7;)i="0"+i;t+=i}return t}var f=r.digits;e=r.small[e];for(var o,a=this._s,s=this.abs(),c=[];0!==s._s;){var u=s.divRem(e);s=u[0],o=u[1],c.push(f[o.valueOf()])}return(a<0?"-":"")+c.reverse().join("")},r.radixRegex=[/^$/,/^$/,/^[01]*$/,/^[012]*$/,/^[0-3]*$/,/^[0-4]*$/,/^[0-5]*$/,/^[0-6]*$/,/^[0-7]*$/,/^[0-8]*$/,/^[0-9]*$/,/^[0-9aA]*$/,/^[0-9abAB]*$/,/^[0-9abcABC]*$/,/^[0-9a-dA-D]*$/,/^[0-9a-eA-E]*$/,/^[0-9a-fA-F]*$/,/^[0-9a-gA-G]*$/,/^[0-9a-hA-H]*$/,/^[0-9a-iA-I]*$/,/^[0-9a-jA-J]*$/,/^[0-9a-kA-K]*$/,/^[0-9a-lA-L]*$/,/^[0-9a-mA-M]*$/,/^[0-9a-nA-N]*$/,/^[0-9a-oA-O]*$/,/^[0-9a-pA-P]*$/,/^[0-9a-qA-Q]*$/,/^[0-9a-rA-R]*$/,/^[0-9a-sA-S]*$/,/^[0-9a-tA-T]*$/,/^[0-9a-uA-U]*$/,/^[0-9a-vA-V]*$/,/^[0-9a-wA-W]*$/,/^[0-9a-xA-X]*$/,/^[0-9a-yA-Y]*$/,/^[0-9a-zA-Z]*$/],r.parse=function(e,n){var f;e=e.toString(),void 0!==n&&10!=+n||(e=e.replace(/\s*[*xX]\s*10\s*(\^|\*\*)\s*/,"e").replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/,(function(e,t,r,n,i){var f=(i=+i)<0,o=r.length+i;e=(f?r:n).length,i=(i=Math.abs(i))>=e?i-e+f:0;var a=new Array(i+1).join("0"),s=r+n;return(t||"")+(f?s=a+s:s+=a).substr(0,o+=f?a.length:0)+(o<s.length?"."+s.substr(o):"")}))),f=void 0===n?"0[xcb]":16==n?"0x":8==n?"0c":2==n?"0b":"";var o=new RegExp("^([+\\-]?)("+f+")?([0-9a-z]*)(?:\\.\\d*)?$","i").exec(e);if(o){var a=o[1]||"+",s=o[2]||"",c=o[3]||"";if(void 0===n)n="0x"===s||"0X"===s?16:"0c"===s||"0C"===s?8:"0b"===s||"0B"===s?2:10;else if(n<2||n>36)throw new Error("Illegal radix "+n+".");if(n=+n,!r.radixRegex[n].test(c))throw new Error("Bad digit for radix "+n);if(0===(c=c.replace(/^0+/,"").split("")).length)return i;if(a="-"===a?-1:1,10==n){for(var u=[];c.length>=7;)u.push(parseInt(c.splice(c.length-r.base_log10,r.base_log10).join(""),10));return u.push(parseInt(c.join(""),10)),new r(u,a,t)}u=i;n=r.small[n];for(var l=r.small,d=0;d<c.length;d++)u=u.multiply(n).add(l[parseInt(c[d],36)]);return new r(u._d,a,t)}throw new Error("Invalid BigInteger format: "+e)},r.prototype.add=function(e){if(0===this._s)return r(e);if(0===(e=r(e))._s)return this;if(this._s!==e._s)return e=e.negate(),this.subtract(e);for(var i,f=this._d,o=e._d,a=f.length,s=o.length,c=new Array(Math.max(a,s)+1),u=Math.min(a,s),l=0,d=0;d<u;d++)i=f[d]+o[d]+l,c[d]=i%n,l=i/n|0;for(s>a&&(f=o,a=s),d=u;l&&d<a;d++)i=f[d]+l,c[d]=i%n,l=i/n|0;for(l&&(c[d]=l);d<a;d++)c[d]=f[d];return new r(c,this._s,t)},r.prototype.negate=function(){return new r(this._d,0|-this._s,t)},r.prototype.abs=function(){return this._s<0?this.negate():this},r.prototype.subtract=function(e){if(0===this._s)return r(e).negate();if(0===(e=r(e))._s)return this;if(this._s!==e._s)return e=e.negate(),this.add(e);var f=this;this._s<0&&(f=new r(e._d,1,t),e=new r(this._d,1,t));var o=f.compareAbs(e);if(0===o)return i;if(o<0){var a=e;e=f,f=a}var s,c,u=f._d,l=e._d,d=u.length,h=l.length,p=new Array(d),b=0;for(s=0;s<h;s++)(c=u[s]-b-l[s])<0?(c+=n,b=1):b=0,p[s]=c;for(s=h;s<d;s++){if(!((c=u[s]-b)<0)){p[s++]=c;break}c+=n,p[s]=c}for(;s<d;s++)p[s]=u[s];return new r(p,o,t)},function(){function e(e,i){for(var f=e._d,o=f.slice(),a=0;;){var s=(f[a]||0)+1;if(o[a]=s%n,s<=9999999)break;++a}return new r(o,i,t)}function i(e,i){for(var f=e._d,o=f.slice(),a=0;;){var s=(f[a]||0)-1;if(!(s<0)){o[a]=s;break}o[a]=s+n,++a}return new r(o,i,t)}r.prototype.next=function(){switch(this._s){case 0:return f;case-1:return i(this,-1);default:return e(this,1)}},r.prototype.prev=function(){switch(this._s){case 0:return o;case-1:return e(this,-1);default:return i(this,1)}}}(),r.prototype.compareAbs=function(e){if(this===e)return 0;if(!(e instanceof r)){if(!isFinite(e))return isNaN(e)?e:-1;e=r(e)}if(0===this._s)return 0!==e._s?-1:0;if(0===e._s)return 1;var t=this._d.length,n=e._d.length;if(t<n)return-1;if(t>n)return 1;for(var i=this._d,f=e._d,o=t-1;o>=0;o--)if(i[o]!==f[o])return i[o]<f[o]?-1:1;return 0},r.prototype.compare=function(e){return this===e?0:(e=r(e),0===this._s?-e._s:this._s===e._s?this.compareAbs(e)*this._s:this._s)},r.prototype.isUnit=function(){return this===f||this===o||1===this._d.length&&1===this._d[0]},r.prototype.multiply=function(e){if(0===this._s)return i;if(0===(e=r(e))._s)return i;if(this.isUnit())return this._s<0?e.negate():e;if(e.isUnit())return e._s<0?this.negate():this;if(this===e)return this.square();var f,o=this._d.length>=e._d.length,a=(o?this:e)._d,s=(o?e:this)._d,c=a.length,u=s.length,l=c+u,d=new Array(l);for(f=0;f<l;f++)d[f]=0;for(f=0;f<u;f++){for(var h,p=0,b=s[f],y=c+f,m=f;m<y;m++)p=(h=d[m]+b*a[m-f]+p)/n|0,d[m]=h%n|0;p&&(p=(h=d[m]+p)/n|0,d[m]=h%n)}return new r(d,this._s*e._s,t)},r.prototype.multiplySingleDigit=function(e){if(0===e||0===this._s)return i;if(1===e)return this;var f;if(1===this._d.length)return new r((f=this._d[0]*e)>=n?[f%n|0,f/n|0]:[f],1,t);if(2===e)return this.add(this);if(this.isUnit())return new r([e],1,t);for(var o=this._d,a=o.length,s=a+1,c=new Array(s),u=0;u<s;u++)c[u]=0;for(var l=0,d=0;d<a;d++)l=(f=e*o[d]+l)/n|0,c[d]=f%n|0;return l&&(c[d]=l),new r(c,1,t)},r.prototype.square=function(){if(0===this._s)return i;if(this.isUnit())return f;var e,o,a,s,c=this._d,u=c.length,l=new Array(u+u+1);for(s=0;s<u;s++)a=2*s,o=(e=c[s]*c[s])/n|0,l[a]=e%n,l[a+1]=o;for(s=0;s<u;s++){o=0,a=2*s+1;for(var d=s+1;d<u;d++,a++)o=(e=c[d]*c[s]*2+l[a]+o)/n|0,l[a]=e%n;var h=o+l[a=u+s];o=h/n|0,l[a]=h%n,l[a+1]+=o}return new r(l,1,t)},r.prototype.quotient=function(e){return this.divRem(e)[0]},r.prototype.divide=r.prototype.quotient,r.prototype.remainder=function(e){return this.divRem(e)[1]},r.prototype.divRem=function(e){if(0===(e=r(e))._s)throw new Error("Divide by zero");if(0===this._s)return[i,i];if(1===e._d.length)return this.divRemSmall(e._s*e._d[0]);switch(this.compareAbs(e)){case 0:return[this._s===e._s?f:o,i];case-1:return[i,this]}for(var a,s=this._s*e._s,c=e.abs(),u=this._d,l=u.length,d=(e._d.length,[]),h=new r([],0,t);l;)if(h._d.unshift(u[--l]),(h=new r(h._d,1,t)).compareAbs(e)<0)d.push(0);else{if(0===h._s)a=0;else{var p=h._d.length,b=c._d.length,y=h._d[p-1]*n+h._d[p-2],m=c._d[b-1]*n+c._d[b-2];h._d.length>c._d.length&&(y=(y+1)*n),a=Math.ceil(y/m)}do{var g=c.multiplySingleDigit(a);if(g.compareAbs(h)<=0)break;a--}while(a);if(d.push(a),a){var v=h.subtract(g);h._d=v._d.slice()}}return[new r(d.reverse(),s,t),new r(h._d,this._s,t)]},r.prototype.divRemSmall=function(e){var f;if(0===(e=+e))throw new Error("Divide by zero");var o=e<0?-1:1,a=this._s*o;if((e=Math.abs(e))<1||e>=n)throw new Error("Argument out of range");if(0===this._s)return[i,i];if(1===e||-1===e)return[1===a?this.abs():new r(this._d,a,t),i];if(1===this._d.length){var s=new r([this._d[0]/e|0],1,t);return f=new r([this._d[0]%e|0],1,t),a<0&&(s=s.negate()),this._s<0&&(f=f.negate()),[s,f]}for(var c,u=this._d.slice(),l=new Array(u.length),d=0,h=0,p=0;u.length;){if((d=d*n+u[u.length-1])<e)l[p++]=0,u.pop(),h=n*h+d;else h=d-e*(c=0===d?0:d/e|0),l[p++]=c,c?(u.pop(),d=h):u.pop()}return f=new r([h],1,t),this._s<0&&(f=f.negate()),[new r(l.reverse(),a,t),f]},r.prototype.isEven=function(){var e=this._d;return 0===this._s||0===e.length||e[0]%2==0},r.prototype.isOdd=function(){return!this.isEven()},r.prototype.sign=function(){return this._s},r.prototype.isPositive=function(){return this._s>0},r.prototype.isNegative=function(){return this._s<0},r.prototype.isZero=function(){return 0===this._s},r.prototype.exp10=function(e){if(0===(e=+e))return this;if(Math.abs(e)>Number(a))throw new Error("exponent too large in BigInteger.exp10");if(0===this._s)return i;if(e>0){for(var n=new r(this._d.slice(),this._s,t);e>=7;e-=7)n._d.unshift(0);return 0==e?n:(n._s=1,n=n.multiplySingleDigit(Math.pow(10,e)),this._s<0?n.negate():n)}if(-e>=7*this._d.length)return i;n=new r(this._d.slice(),this._s,t);for(e=-e;e>=7;e-=7)n._d.shift();return 0==e?n:n.divRemSmall(Math.pow(10,e))[0]},r.prototype.pow=function(e){if(this.isUnit())return this._s>0||r(e).isOdd()?this:this.negate();if(0===(e=r(e))._s)return f;if(e._s<0){if(0===this._s)throw new Error("Divide by zero");return i}if(0===this._s)return i;if(e.isUnit())return this;if(e.compareAbs(a)>0)throw new Error("exponent too large in BigInteger.pow");for(var t=this,n=f,o=r.small[2];e.isPositive();){if(e.isOdd()&&(n=n.multiply(t),e.isUnit()))return n;t=t.square(),e=e.quotient(o)}return n},r.prototype.modPow=function(e,t){for(var n=f,i=this;e.isPositive();)e.isOdd()&&(n=n.multiply(i).remainder(t)),(e=e.quotient(r.small[2])).isPositive()&&(i=i.square().remainder(t));return n},r.prototype.log=function(){switch(this._s){case 0:return-1/0;case-1:return NaN}var e=this._d.length;if(7*e<30)return Math.log(this.valueOf());var i=Math.ceil(30/7),f=this._d.slice(e-i);return Math.log(new r(f,1,t).valueOf())+(e-i)*Math.log(n)},r.prototype.valueOf=function(){return parseInt(this.toString(),10)},r.prototype.toJSValue=function(){return parseInt(this.toString(),10)},r.prototype.lowVal=function(){return this._d[0]||0};var a=r(2147483647);r.MAX_EXP=a,function(){function e(e){return function(t){return e.call(r(t))}}function t(e){return function(t,n){return e.call(r(t),r(n))}}function n(e){return function(t,n,i){return e.call(r(t),r(n),r(i))}}!function(){var i,f,o="toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(","),a="compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(","),s=["modPow"];for(i=0;i<o.length;i++)r[f=o[i]]=e(r.prototype[f]);for(i=0;i<a.length;i++)r[f=a[i]]=t(r.prototype[f]);for(i=0;i<s.length;i++)r[f=s[i]]=n(r.prototype[f]);r.exp10=function(e,t){return r(e).exp10(t)}}()}(),e.JSBigInt=r}(t)},function(e,t,r){var n=r(19),i="13456789abcdefghijkmnopqrstuwxyz",f=r(120)(i),o=new RegExp("^(xrb|nano)_(["+i+"]{60})$");e.exports={isValidAddress:function(e){return!!o.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=f.decode(o.exec(e)[2]).slice(-37);return n.blake2b(n.toHex(t.slice(0,-5)),5)===n.toHex(t.slice(-5).reverse())}}},function(e,t,r){var n=r(19),i=r(530);e.exports={isValidAddress:function(e){return 76===e.length&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=e.slice(0,64),r=e.slice(64,76),f=n.blake2b(t,32).slice(0,12);return!!i(f,r)}}},function(e,t,r){(function(e,r){var n="__lodash_hash_undefined__",i=9007199254740991,f="[object Arguments]",o="[object Array]",a="[object Boolean]",s="[object Date]",c="[object Error]",u="[object Function]",l="[object Map]",d="[object Number]",h="[object Object]",p="[object Promise]",b="[object RegExp]",y="[object Set]",m="[object String]",g="[object Symbol]",v="[object WeakMap]",_="[object ArrayBuffer]",w="[object DataView]",E=/^\[object .+?Constructor\]$/,A=/^(?:0|[1-9]\d*)$/,S={};S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S[f]=S[o]=S[_]=S[a]=S[w]=S[s]=S[c]=S[u]=S[l]=S[d]=S[h]=S[b]=S[y]=S[m]=S[v]=!1;var T="object"==typeof e&&e&&e.Object===Object&&e,x="object"==typeof self&&self&&self.Object===Object&&self,P=T||x||Function("return this")(),R=t&&!t.nodeType&&t,k=R&&"object"==typeof r&&r&&!r.nodeType&&r,C=k&&k.exports===R,O=C&&T.process,M=function(){try{return O&&O.binding&&O.binding("util")}catch(e){}}(),N=M&&M.isTypedArray;function I(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function D(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function B(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var F,j,L,U=Array.prototype,q=Function.prototype,z=Object.prototype,H=P["__core-js_shared__"],G=q.toString,V=z.hasOwnProperty,K=(F=/[^.]+$/.exec(H&&H.keys&&H.keys.IE_PROTO||""))?"Symbol(src)_1."+F:"",W=z.toString,$=RegExp("^"+G.call(V).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Y=C?P.Buffer:void 0,J=P.Symbol,X=P.Uint8Array,Z=z.propertyIsEnumerable,Q=U.splice,ee=J?J.toStringTag:void 0,te=Object.getOwnPropertySymbols,re=Y?Y.isBuffer:void 0,ne=(j=Object.keys,L=Object,function(e){return j(L(e))}),ie=Me(P,"DataView"),fe=Me(P,"Map"),oe=Me(P,"Promise"),ae=Me(P,"Set"),se=Me(P,"WeakMap"),ce=Me(Object,"create"),ue=Be(ie),le=Be(fe),de=Be(oe),he=Be(ae),pe=Be(se),be=J?J.prototype:void 0,ye=be?be.valueOf:void 0;function me(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ge(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ve(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function _e(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new ve;++t<r;)this.add(e[t])}function we(e){var t=this.__data__=new ge(e);this.size=t.size}function Ee(e,t){var r=Le(e),n=!r&&je(e),i=!r&&!n&&Ue(e),f=!r&&!n&&!i&&Ve(e),o=r||n||i||f,a=o?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],s=a.length;for(var c in e)!t&&!V.call(e,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||f&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||De(c,s))||a.push(c);return a}function Ae(e,t){for(var r=e.length;r--;)if(Fe(e[r][0],t))return r;return-1}function Se(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ee&&ee in Object(e)?function(e){var t=V.call(e,ee),r=e[ee];try{e[ee]=void 0;var n=!0}catch(e){}var i=W.call(e);n&&(t?e[ee]=r:delete e[ee]);return i}(e):function(e){return W.call(e)}(e)}function Te(e){return Ge(e)&&Se(e)==f}function xe(e,t,r,n,i){return e===t||(null==e||null==t||!Ge(e)&&!Ge(t)?e!=e&&t!=t:function(e,t,r,n,i,u){var p=Le(e),v=Le(t),E=p?o:Ie(e),A=v?o:Ie(t),S=(E=E==f?h:E)==h,T=(A=A==f?h:A)==h,x=E==A;if(x&&Ue(e)){if(!Ue(t))return!1;p=!0,S=!1}if(x&&!S)return u||(u=new we),p||Ve(e)?ke(e,t,r,n,i,u):function(e,t,r,n,i,f,o){switch(r){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _:return!(e.byteLength!=t.byteLength||!f(new X(e),new X(t)));case a:case s:case d:return Fe(+e,+t);case c:return e.name==t.name&&e.message==t.message;case b:case m:return e==t+"";case l:var u=D;case y:var h=1&n;if(u||(u=B),e.size!=t.size&&!h)return!1;var p=o.get(e);if(p)return p==t;n|=2,o.set(e,t);var v=ke(u(e),u(t),n,i,f,o);return o.delete(e),v;case g:if(ye)return ye.call(e)==ye.call(t)}return!1}(e,t,E,r,n,i,u);if(!(1&r)){var P=S&&V.call(e,"__wrapped__"),R=T&&V.call(t,"__wrapped__");if(P||R){var k=P?e.value():e,C=R?t.value():t;return u||(u=new we),i(k,C,r,n,u)}}if(!x)return!1;return u||(u=new we),function(e,t,r,n,i,f){var o=1&r,a=Ce(e),s=a.length,c=Ce(t).length;if(s!=c&&!o)return!1;var u=s;for(;u--;){var l=a[u];if(!(o?l in t:V.call(t,l)))return!1}var d=f.get(e);if(d&&f.get(t))return d==t;var h=!0;f.set(e,t),f.set(t,e);var p=o;for(;++u<s;){var b=e[l=a[u]],y=t[l];if(n)var m=o?n(y,b,l,t,e,f):n(b,y,l,e,t,f);if(!(void 0===m?b===y||i(b,y,r,n,f):m)){h=!1;break}p||(p="constructor"==l)}if(h&&!p){var g=e.constructor,v=t.constructor;g==v||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof v&&v instanceof v||(h=!1)}return f.delete(e),f.delete(t),h}(e,t,r,n,i,u)}(e,t,r,n,xe,i))}function Pe(e){return!(!He(e)||function(e){return!!K&&K in e}(e))&&(qe(e)?$:E).test(Be(e))}function Re(e){if(r=(t=e)&&t.constructor,n="function"==typeof r&&r.prototype||z,t!==n)return ne(e);var t,r,n,i=[];for(var f in Object(e))V.call(e,f)&&"constructor"!=f&&i.push(f);return i}function ke(e,t,r,n,i,f){var o=1&r,a=e.length,s=t.length;if(a!=s&&!(o&&s>a))return!1;var c=f.get(e);if(c&&f.get(t))return c==t;var u=-1,l=!0,d=2&r?new _e:void 0;for(f.set(e,t),f.set(t,e);++u<a;){var h=e[u],p=t[u];if(n)var b=o?n(p,h,u,t,e,f):n(h,p,u,e,t,f);if(void 0!==b){if(b)continue;l=!1;break}if(d){if(!I(t,(function(e,t){if(o=t,!d.has(o)&&(h===e||i(h,e,r,n,f)))return d.push(t);var o}))){l=!1;break}}else if(h!==p&&!i(h,p,r,n,f)){l=!1;break}}return f.delete(e),f.delete(t),l}function Ce(e){return function(e,t,r){var n=t(e);return Le(e)?n:function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}(n,r(e))}(e,Ke,Ne)}function Oe(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function Me(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return Pe(r)?r:void 0}me.prototype.clear=function(){this.__data__=ce?ce(null):{},this.size=0},me.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},me.prototype.get=function(e){var t=this.__data__;if(ce){var r=t[e];return r===n?void 0:r}return V.call(t,e)?t[e]:void 0},me.prototype.has=function(e){var t=this.__data__;return ce?void 0!==t[e]:V.call(t,e)},me.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ce&&void 0===t?n:t,this},ge.prototype.clear=function(){this.__data__=[],this.size=0},ge.prototype.delete=function(e){var t=this.__data__,r=Ae(t,e);return!(r<0)&&(r==t.length-1?t.pop():Q.call(t,r,1),--this.size,!0)},ge.prototype.get=function(e){var t=this.__data__,r=Ae(t,e);return r<0?void 0:t[r][1]},ge.prototype.has=function(e){return Ae(this.__data__,e)>-1},ge.prototype.set=function(e,t){var r=this.__data__,n=Ae(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},ve.prototype.clear=function(){this.size=0,this.__data__={hash:new me,map:new(fe||ge),string:new me}},ve.prototype.delete=function(e){var t=Oe(this,e).delete(e);return this.size-=t?1:0,t},ve.prototype.get=function(e){return Oe(this,e).get(e)},ve.prototype.has=function(e){return Oe(this,e).has(e)},ve.prototype.set=function(e,t){var r=Oe(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},_e.prototype.add=_e.prototype.push=function(e){return this.__data__.set(e,n),this},_e.prototype.has=function(e){return this.__data__.has(e)},we.prototype.clear=function(){this.__data__=new ge,this.size=0},we.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},we.prototype.get=function(e){return this.__data__.get(e)},we.prototype.has=function(e){return this.__data__.has(e)},we.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ge){var n=r.__data__;if(!fe||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ve(n)}return r.set(e,t),this.size=r.size,this};var Ne=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,f=[];++r<n;){var o=e[r];t(o,r,e)&&(f[i++]=o)}return f}(te(e),(function(t){return Z.call(e,t)})))}:function(){return[]},Ie=Se;function De(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||A.test(e))&&e>-1&&e%1==0&&e<t}function Be(e){if(null!=e){try{return G.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fe(e,t){return e===t||e!=e&&t!=t}(ie&&Ie(new ie(new ArrayBuffer(1)))!=w||fe&&Ie(new fe)!=l||oe&&Ie(oe.resolve())!=p||ae&&Ie(new ae)!=y||se&&Ie(new se)!=v)&&(Ie=function(e){var t=Se(e),r=t==h?e.constructor:void 0,n=r?Be(r):"";if(n)switch(n){case ue:return w;case le:return l;case de:return p;case he:return y;case pe:return v}return t});var je=Te(function(){return arguments}())?Te:function(e){return Ge(e)&&V.call(e,"callee")&&!Z.call(e,"callee")},Le=Array.isArray;var Ue=re||function(){return!1};function qe(e){if(!He(e))return!1;var t=Se(e);return t==u||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function ze(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}function He(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ge(e){return null!=e&&"object"==typeof e}var Ve=N?function(e){return function(t){return e(t)}}(N):function(e){return Ge(e)&&ze(e.length)&&!!S[Se(e)]};function Ke(e){return null!=(t=e)&&ze(t.length)&&!qe(t)?Ee(e):Re(e);var t}r.exports=function(e,t){return xe(e,t)}}).call(this,r(12),r(79)(e))},function(e,t,r){var n=r(19);e.exports={isValidAddress:function(e,t,r){var i=r?r.networkType:"",f=function(e){if("string"!=typeof e)return!1;if(e.length<=4)return!1;try{var t=n.base58(e)}catch(e){return!1}var r=t.length-4,i=t.slice(r);t=t.slice(0,r);var f=n.sha256(n.byteArray2hexStr(t)),o=n.hexStr2byteArray(n.sha256(f)).slice(0,4);return i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]&&i[3]===o[3]&&t}(e);return!!f&&(21===f.length&&function(e,t){var r=t||"prod";return"prod"!==r&&"testnet"!==r&&(r="prod"),e.addressTypes[r][0]}(t,i)===f[0])}}},function(e,t,r){(function(t){var n=r(19);e.exports={isValidAddress:function(e){var r=e.toString().toUpperCase().replace(/-/g,"");if(!r||40!==r.length)return!1;var i=n.toHex(n.base32.b32decode(r));return n.keccak256Checksum(t.from(i.slice(0,42),"hex"))===i.slice(42)}}}).call(this,r(7).Buffer)},function(e,t,r){(function(t){var n=r(19),i=new RegExp("^[0-9]{1,20}L$");e.exports={isValidAddress:function(e){return!!i.test(e)&&this.verifyAddress(e)},verifyAddress:function(e){var r=e.substring(0,e.length-1),i=n.bigNumberToBuffer(r);return t.from(i).slice(0,8).equals(i)}}}).call(this,r(7).Buffer)},function(e,t,r){var n=r(19),i=r(122),f=r(121);e.exports={isValidAddress:function(e,t,r){return function(e,t,r){var f,o=r?r.networkType:"",a="bitcoincash",s=new RegExp(t.regexp),c=e.split(":");if(1===c.length)f=e;else{if("bitcoincash"!==c[0])return!1;f=c[1]}if(!s.test(f))return!1;if(f.toLowerCase()!=f&&f.toUpperCase()!=f)return!1;var u=n.base32.b32decode(f);"testnet"===o&&(a="bchtest");try{if(i.verifyChecksum(a,u,i.encodings.BECH32))return!1}catch(e){return!1}return!0}(e,t,r)||f.isValidAddress(e,t,r)}}},function(e,t,r){var n=r(120),i=r(282),f=r(19),o="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",a=n(o),s=new RegExp("^["+o+"]{56}$");e.exports={isValidAddress:function(e){return!!s.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t,r=a.decode(e);return 48===r[0]&&f.numberToHex((255&(t=i.crc16xmodem(r.slice(0,-2))))<<8|t>>8&255,4)===f.toHex(r.slice(-2))}}},function(e,t){e.exports={isValidAddress:function(e,t,r){return function(e,t,r){return-1!==e.search(/^[a-z0-9.]+$/g)&&12===e.length}(e)}}},function(e,t,r){const n=r(85),i=r(19),f=new Uint8Array([6,161,159]);e.exports={isValidAddress:function(e){try{let t=function(e){let t=e.slice(0,-4),r=e.slice(-4),n=i.hexStr2byteArray(i.sha256x2(i.byteArray2hexStr(t)));if(!(r[0]^n[0]|r[1]^n[1]|r[2]^n[2]|r[3]^n[3]))return t}(n.decode(e));return!!t&&(t.slice(f.length),!0)}catch(e){return!1}}}},function(e,t,r){var n=r(121),i=r(218);e.exports={isValidAddress:function(e,t,r){if(r){if("erc20"===r.chainType)return i.isValidAddress(e,t,r.networkType);if("omni"===r.chainType)return n.isValidAddress(e,t,r.networkType)}return function(e,t,r){return n.isValidAddress(e,t,r)||i.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){const n=r(19);e.exports={isValidAddress:function(e,t,r={}){const{networkType:n="prod"}=r;return this.verifyChecksum(e)},verifyChecksum:function(e){if(58!==e.length)return!1;{const t=n.base32.b32decode(e),r=t.slice(0,t.length-4),i=n.byteArray2hexStr(t.slice(-4)).toString("HEX");return n.sha512_256(n.byteArray2hexStr(r)).substr(-8)===i}}}},function(e,t,r){const n=r(19),i=[{addressLength:3,accountIndexLength:1,checkSumLength:1},{addressLength:4,accountIndexLength:2,checkSumLength:1},{addressLength:5,accountIndexLength:2,checkSumLength:2},{addressLength:6,accountIndexLength:4,checkSumLength:1},{addressLength:7,accountIndexLength:4,checkSumLength:2},{addressLength:8,accountIndexLength:4,checkSumLength:3},{addressLength:9,accountIndexLength:4,checkSumLength:4},{addressLength:10,accountIndexLength:8,checkSumLength:1},{addressLength:11,accountIndexLength:8,checkSumLength:2},{addressLength:12,accountIndexLength:8,checkSumLength:3},{addressLength:13,accountIndexLength:8,checkSumLength:4},{addressLength:14,accountIndexLength:8,checkSumLength:5},{addressLength:15,accountIndexLength:8,checkSumLength:6},{addressLength:16,accountIndexLength:8,checkSumLength:7},{addressLength:17,accountIndexLength:8,checkSumLength:8},{addressLength:34,accountIndexLength:32,checkSumLength:2}];e.exports={isValidAddress:function(e,t,r={}){const{networkType:n="prod"}=r;return this.verifyChecksum(e)},verifyChecksum:function(e){try{const t="53533538505245",r=n.base58(e),f=n.byteArray2hexStr(r.slice(0,1)),o=r.slice(1),a=i.find((e=>e.addressLength===o.length));if(!a)throw new Erorr("Invalid address length");const s=n.byteArray2hexStr(o.slice(0,a.accountIndexLength)),c=n.byteArray2hexStr(o.slice(-a.checkSumLength));return n.blake2b(t+f+s,64).substr(0,2*a.checkSumLength).toUpperCase()==c}catch(e){return!1}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nativeCurrencies=void 0;const n=r(4);t.nativeCurrencies={[n.RequestLogicTypes.CURRENCY.ETH]:[{symbol:"ETH",decimals:18,name:"Ether",network:"mainnet"},{symbol:"ETH-rinkeby",decimals:18,name:"Rinkeby Ether",network:"rinkeby"},{symbol:"MATIC",decimals:18,name:"Matic",network:"matic"},{symbol:"xDAI",decimals:18,name:"xDAI",network:"xdai"},{symbol:"POA",decimals:18,name:"POA Sokol Ether",network:"sokol"},{symbol:"FUSE",decimals:18,name:"FUSE",network:"fuse"},{symbol:"CELO",decimals:18,name:"CELO",network:"celo"},{symbol:"FTM",decimals:18,name:"Fantom",network:"fantom"},{symbol:"BNB",decimals:18,name:"BNB",network:"bsctest"},{symbol:"BNB",decimals:18,name:"BNB",network:"bsc"},{symbol:"NEAR",decimals:24,name:"Near",network:"aurora"},{symbol:"NEAR-testnet",decimals:24,name:"Near Testnet",network:"aurora-testnet"}],[n.RequestLogicTypes.CURRENCY.BTC]:[{symbol:"BTC",decimals:8,name:"Bitcoin",network:"mainnet"},{symbol:"BTC-testnet",decimals:8,name:"Test Bitcoin",network:"testnet"}]}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isValidNearAddress=void 0;t.isValidNearAddress=(e,r)=>{if(!r)return(0,t.isValidNearAddress)(e,"aurora")||(0,t.isValidNearAddress)(e,"aurora-testnet");if(e.length<2||e.length>64)return!1;if(!e.match(/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/))return!1;switch(r){case"aurora":return!!e.match(/\.near$/);case"aurora-testnet":return!!e.match(/\.testnet$/);default:throw new Error(`Cannot validate NEAR address for network ${r}`)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestERC20__factory=t.ERC20True__factory=t.ERC20Revert__factory=t.ERC20NoReturn__factory=t.ERC20False__factory=t.ERC20Alpha__factory=t.UsdtFake__factory=t.BytesUtilsMock__factory=t.AggregatorMock__factory=t.StorageFeeCollector__factory=t.RequestOpenHashSubmitter__factory=t.RequestHashStorage__factory=t.Migrations__factory=t.WhitelistedRole__factory=t.WhitelistAdminRole__factory=t.IERC20FeeProxy__factory=t.FakeSwapRouter__factory=t.EthereumProxy__factory=t.EthereumFeeProxy__factory=t.EthConversionProxy__factory=t.ERC20SwapToPay__factory=t.IUniswapV2Router02__factory=t.ERC20SwapToConversion__factory=t.ERC20Proxy__factory=t.ERC20FeeProxy__factory=t.ERC20EscrowToPay__factory=t.Erc20ConversionProxy__factory=t.ERC20fraction__factory=t.ChainlinkConversionPath__factory=t.AggregatorFraction__factory=t.UpgradedStandardToken__factory=t.StandardToken__factory=t.Pausable__factory=t.ERC20Basic__factory=t.BlackList__factory=t.BasicToken__factory=t.BadERC20__factory=t.IERC20__factory=t.IERC20Metadata__factory=t.ERC20__factory=t.Ownable__factory=void 0;var n=r(545);Object.defineProperty(t,"Ownable__factory",{enumerable:!0,get:function(){return n.Ownable__factory}});var i=r(546);Object.defineProperty(t,"ERC20__factory",{enumerable:!0,get:function(){return i.ERC20__factory}});var f=r(547);Object.defineProperty(t,"IERC20Metadata__factory",{enumerable:!0,get:function(){return f.IERC20Metadata__factory}});var o=r(548);Object.defineProperty(t,"IERC20__factory",{enumerable:!0,get:function(){return o.IERC20__factory}});var a=r(549);Object.defineProperty(t,"BadERC20__factory",{enumerable:!0,get:function(){return a.BadERC20__factory}});var s=r(550);Object.defineProperty(t,"BasicToken__factory",{enumerable:!0,get:function(){return s.BasicToken__factory}});var c=r(551);Object.defineProperty(t,"BlackList__factory",{enumerable:!0,get:function(){return c.BlackList__factory}});var u=r(552);Object.defineProperty(t,"ERC20Basic__factory",{enumerable:!0,get:function(){return u.ERC20Basic__factory}});var l=r(553);Object.defineProperty(t,"Pausable__factory",{enumerable:!0,get:function(){return l.Pausable__factory}});var d=r(554);Object.defineProperty(t,"StandardToken__factory",{enumerable:!0,get:function(){return d.StandardToken__factory}});var h=r(555);Object.defineProperty(t,"UpgradedStandardToken__factory",{enumerable:!0,get:function(){return h.UpgradedStandardToken__factory}});var p=r(556);Object.defineProperty(t,"AggregatorFraction__factory",{enumerable:!0,get:function(){return p.AggregatorFraction__factory}});var b=r(557);Object.defineProperty(t,"ChainlinkConversionPath__factory",{enumerable:!0,get:function(){return b.ChainlinkConversionPath__factory}});var y=r(558);Object.defineProperty(t,"ERC20fraction__factory",{enumerable:!0,get:function(){return y.ERC20fraction__factory}});var m=r(559);Object.defineProperty(t,"Erc20ConversionProxy__factory",{enumerable:!0,get:function(){return m.Erc20ConversionProxy__factory}});var g=r(560);Object.defineProperty(t,"ERC20EscrowToPay__factory",{enumerable:!0,get:function(){return g.ERC20EscrowToPay__factory}});var v=r(561);Object.defineProperty(t,"ERC20FeeProxy__factory",{enumerable:!0,get:function(){return v.ERC20FeeProxy__factory}});var _=r(562);Object.defineProperty(t,"ERC20Proxy__factory",{enumerable:!0,get:function(){return _.ERC20Proxy__factory}});var w=r(563);Object.defineProperty(t,"ERC20SwapToConversion__factory",{enumerable:!0,get:function(){return w.ERC20SwapToConversion__factory}});var E=r(564);Object.defineProperty(t,"IUniswapV2Router02__factory",{enumerable:!0,get:function(){return E.IUniswapV2Router02__factory}});var A=r(565);Object.defineProperty(t,"ERC20SwapToPay__factory",{enumerable:!0,get:function(){return A.ERC20SwapToPay__factory}});var S=r(566);Object.defineProperty(t,"EthConversionProxy__factory",{enumerable:!0,get:function(){return S.EthConversionProxy__factory}});var T=r(567);Object.defineProperty(t,"EthereumFeeProxy__factory",{enumerable:!0,get:function(){return T.EthereumFeeProxy__factory}});var x=r(568);Object.defineProperty(t,"EthereumProxy__factory",{enumerable:!0,get:function(){return x.EthereumProxy__factory}});var P=r(569);Object.defineProperty(t,"FakeSwapRouter__factory",{enumerable:!0,get:function(){return P.FakeSwapRouter__factory}});var R=r(570);Object.defineProperty(t,"IERC20FeeProxy__factory",{enumerable:!0,get:function(){return R.IERC20FeeProxy__factory}});var k=r(571);Object.defineProperty(t,"WhitelistAdminRole__factory",{enumerable:!0,get:function(){return k.WhitelistAdminRole__factory}});var C=r(572);Object.defineProperty(t,"WhitelistedRole__factory",{enumerable:!0,get:function(){return C.WhitelistedRole__factory}});var O=r(573);Object.defineProperty(t,"Migrations__factory",{enumerable:!0,get:function(){return O.Migrations__factory}});var M=r(574);Object.defineProperty(t,"RequestHashStorage__factory",{enumerable:!0,get:function(){return M.RequestHashStorage__factory}});var N=r(575);Object.defineProperty(t,"RequestOpenHashSubmitter__factory",{enumerable:!0,get:function(){return N.RequestOpenHashSubmitter__factory}});var I=r(576);Object.defineProperty(t,"StorageFeeCollector__factory",{enumerable:!0,get:function(){return I.StorageFeeCollector__factory}});var D=r(577);Object.defineProperty(t,"AggregatorMock__factory",{enumerable:!0,get:function(){return D.AggregatorMock__factory}});var B=r(578);Object.defineProperty(t,"BytesUtilsMock__factory",{enumerable:!0,get:function(){return B.BytesUtilsMock__factory}});var F=r(579);Object.defineProperty(t,"UsdtFake__factory",{enumerable:!0,get:function(){return F.UsdtFake__factory}});var j=r(580);Object.defineProperty(t,"ERC20Alpha__factory",{enumerable:!0,get:function(){return j.ERC20Alpha__factory}});var L=r(581);Object.defineProperty(t,"ERC20False__factory",{enumerable:!0,get:function(){return L.ERC20False__factory}});var U=r(582);Object.defineProperty(t,"ERC20NoReturn__factory",{enumerable:!0,get:function(){return U.ERC20NoReturn__factory}});var q=r(583);Object.defineProperty(t,"ERC20Revert__factory",{enumerable:!0,get:function(){return q.ERC20Revert__factory}});var z=r(584);Object.defineProperty(t,"ERC20True__factory",{enumerable:!0,get:function(){return z.ERC20True__factory}});var H=r(585);Object.defineProperty(t,"TestERC20__factory",{enumerable:!0,get:function(){return H.TestERC20__factory}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Ownable__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Ownable__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20Metadata__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IERC20Metadata__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IERC20__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BadERC20__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"},{internalType:"string",name:"_name",type:"string"},{internalType:"string",name:"_symbol",type:"string"},{internalType:"uint256",name:"_decimals",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"AddedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"newAddress",type:"address"}],name:"Deprecate",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_blackListedUser",type:"address"},{indexed:!1,internalType:"uint256",name:"_balance",type:"uint256"}],name:"DestroyedBlackFunds",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Issue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"feeBasisPoints",type:"uint256"},{indexed:!1,internalType:"uint256",name:"maxFee",type:"uint256"}],name:"Params",type:"event"},{anonymous:!1,inputs:[],name:"Pause",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Redeem",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"RemovedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[],name:"Unpause",type:"event"},{inputs:[],name:"MAX_UINT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_evilUser",type:"address"}],name:"addBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_upgradedAddress",type:"address"}],name:"deprecate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"deprecated",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_blackListedUser",type:"address"}],name:"destroyBlackFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_maker",type:"address"}],name:"getBlackListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isBlackListed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"issue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_clearedUser",type:"address"}],name:"removeBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newBasisPoints",type:"uint256"},{internalType:"uint256",name:"newMaxFee",type:"uint256"}],name:"setParams",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"upgradedAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],f="0x608060405260008060146101000a81548160ff021916908315150217905550600060035560006004553480156200003557600080fd5b50604051620037983803806200379883398181016040528101906200005b919062000361565b6200007b6200006f6200013360201b60201c565b6200013b60201b60201c565b8360018190555082600790805190602001906200009a92919062000228565b508160089080519060200190620000b392919062000228565b50806009819055508360026000620000d0620001ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60146101000a81548160ff0219169083151502179055505050505062000593565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000236906200049e565b90600052602060002090601f0160209004810192826200025a5760008555620002a6565b82601f106200027557805160ff1916838001178555620002a6565b82800160010185558215620002a6579182015b82811115620002a557825182559160200191906001019062000288565b5b509050620002b59190620002b9565b5090565b5b80821115620002d4576000816000905550600101620002ba565b5090565b6000620002ef620002e98462000428565b620003ff565b9050828152602081018484840111156200030857600080fd5b6200031584828562000468565b509392505050565b600082601f8301126200032f57600080fd5b815162000341848260208601620002d8565b91505092915050565b6000815190506200035b8162000579565b92915050565b600080600080608085870312156200037857600080fd5b600062000388878288016200034a565b945050602085015167ffffffffffffffff811115620003a657600080fd5b620003b4878288016200031d565b935050604085015167ffffffffffffffff811115620003d257600080fd5b620003e0878288016200031d565b9250506060620003f3878288016200034a565b91505092959194509250565b60006200040b6200041e565b9050620004198282620004d4565b919050565b6000604051905090565b600067ffffffffffffffff82111562000446576200044562000539565b5b620004518262000568565b9050602081019050919050565b6000819050919050565b60005b83811015620004885780820151818401526020810190506200046b565b8381111562000498576000848401525b50505050565b60006002820490506001821680620004b757607f821691505b60208210811415620004ce57620004cd6200050a565b5b50919050565b620004df8262000568565b810181811067ffffffffffffffff8211171562000501576200050062000539565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b62000584816200045e565b81146200059057600080fd5b50565b6131f580620005a36000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063cc872b66116100ad578063e47d60601161007c578063e47d606014610556578063e4997dc514610586578063e5b5019a146105a2578063f2fde38b146105c0578063f3bdc228146105dc576101fb565b8063cc872b66146104d0578063db006a75146104ec578063dd62ed3e14610508578063dd644f7214610538576101fb565b80638da5cb5b116100e95780638da5cb5b1461045c57806395d89b411461047a578063a9059cbb14610498578063c0324c77146104b4576101fb565b806370a08231146103fa578063715018a61461042a5780638456cb5914610434578063893d20e81461043e576101fb565b806327e235e3116101925780633f4ba83a116101615780633f4ba83a1461037257806359bf1abe1461037c5780635c658165146103ac5780635c975abb146103dc576101fb565b806327e235e3146102e8578063313ce5671461031857806335390714146103365780633eaaf86b14610354576101fb565b80630ecb93c0116101ce5780630ecb93c01461027457806318160ddd1461029057806323b872dd146102ae57806326976e3f146102ca576101fb565b806306fdde03146102005780630753c30c1461021e578063095ea7b31461023a5780630e136b1914610256575b600080fd5b6102086105f8565b6040516102159190612c56565b60405180910390f35b61023860048036038101906102339190612905565b610686565b005b610254600480360381019061024f91906129b9565b610798565b005b61025e6108a8565b60405161026b9190612c3b565b60405180910390f35b61028e60048036038101906102899190612905565b6108bb565b005b6102986109c9565b6040516102a59190612cd8565b60405180910390f35b6102c860048036038101906102c3919061296a565b610a90565b005b6102d2610c2b565b6040516102df9190612b52565b60405180910390f35b61030260048036038101906102fd9190612905565b610c51565b60405161030f9190612cd8565b60405180910390f35b610320610c69565b60405161032d9190612cd8565b60405180910390f35b61033e610c6f565b60405161034b9190612cd8565b60405180910390f35b61035c610c75565b6040516103699190612cd8565b60405180910390f35b61037a610c7b565b005b61039660048036038101906103919190612905565b610d8e565b6040516103a39190612c3b565b60405180910390f35b6103c660048036038101906103c1919061292e565b610de4565b6040516103d39190612cd8565b60405180910390f35b6103e4610e09565b6040516103f19190612c3b565b60405180910390f35b610414600480360381019061040f9190612905565b610e1c565b6040516104219190612cd8565b60405180910390f35b610432610ef6565b005b61043c610f7e565b005b610446611093565b6040516104539190612b52565b60405180910390f35b6104646110a2565b6040516104719190612b52565b60405180910390f35b6104826110cb565b60405161048f9190612c56565b60405180910390f35b6104b260048036038101906104ad91906129b9565b611159565b005b6104ce60048036038101906104c99190612a47565b6112f0565b005b6104ea60048036038101906104e591906129f5565b61145a565b005b610506600480360381019061050191906129f5565b6116b0565b005b610522600480360381019061051d919061292e565b6118aa565b60405161052f9190612cd8565b60405180910390f35b610540611988565b60405161054d9190612cd8565b60405180910390f35b610570600480360381019061056b9190612905565b61198e565b60405161057d9190612c3b565b60405180910390f35b6105a0600480360381019061059b9190612905565b6119ae565b005b6105aa611abc565b6040516105b79190612cd8565b60405180910390f35b6105da60048036038101906105d59190612905565b611ae0565b005b6105f660048036038101906105f19190612905565b611bd8565b005b6007805461060590613039565b80601f016020809104026020016040519081016040528092919081815260200182805461063190613039565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b61068e611d88565b73ffffffffffffffffffffffffffffffffffffffff166106ac6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612c98565b60405180910390fd5b6001600a60146101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e8160405161078d9190612b52565b60405180910390a150565b60406004816107a79190612d38565b600036905010156107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612cb8565b60405180910390fd5b600a60149054906101000a900460ff161561089857600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b815260040161086193929190612bdb565b600060405180830381600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506108a3565b6108a28383611d90565b5b505050565b600a60149054906101000a900460ff1681565b6108c3611d88565b73ffffffffffffffffffffffffffffffffffffffff166108e16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90612c98565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc816040516109be9190612b52565b60405180910390a150565b6000600a60149054906101000a900460ff1615610a8757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a1e565b9050610a8d565b60015490505b90565b600060149054906101000a900460ff1615610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790612cb8565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612cb8565b60405180910390fd5b600a60149054906101000a900460ff1615610c1a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff1660e01b8152600401610be39493929190612b96565b600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b50505050610c26565b610c25838383611f9e565b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090505481565b60095481565b60045481565b60015481565b610c83611d88565b73ffffffffffffffffffffffffffffffffffffffff16610ca16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612c98565b60405180910390fd5b600060149054906101000a900460ff16610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612cb8565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b6000600a60149054906101000a900460ff1615610ee557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610e8e9190612b52565b60206040518083038186803b158015610ea657600080fd5b505afa158015610eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ede9190612a1e565b9050610ef1565b610eee82612404565b90505b919050565b610efe611d88565b73ffffffffffffffffffffffffffffffffffffffff16610f1c6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612c98565b60405180910390fd5b610f7c600061244d565b565b610f86611d88565b73ffffffffffffffffffffffffffffffffffffffff16610fa46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612c98565b60405180910390fd5b600060149054906101000a900460ff161561104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612cb8565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600061109d6110a2565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600880546110d890613039565b80601f016020809104026020016040519081016040528092919081815260200182805461110490613039565b80156111515780601f1061112657610100808354040283529160200191611151565b820191906000526020600020905b81548152906001019060200180831161113457829003601f168201915b505050505081565b600060149054906101000a900460ff16156111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612cb8565b60405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612cb8565b60405180910390fd5b600a60149054906101000a900460ff16156112e157600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff1660e01b81526004016112aa93929190612bdb565b600060405180830381600087803b1580156112c457600080fd5b505af11580156112d8573d6000803e3d6000fd5b505050506112ec565b6112eb8282612511565b5b5050565b6112f8611d88565b73ffffffffffffffffffffffffffffffffffffffff166113166110a2565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612c98565b60405180910390fd5b601482106113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612cb8565b60405180910390fd5b603281106113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612cb8565b60405180910390fd5b81600381905550600954600a6114089190612e12565b816114139190612f30565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e60035460045460405161144e929190612cf3565b60405180910390a15050565b611462611d88565b73ffffffffffffffffffffffffffffffffffffffff166114806110a2565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612c98565b60405180910390fd5b600154816001546114e79190612d38565b11611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612cb8565b60405180910390fd5b600260006115336110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816002600061157b6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c09190612d38565b11611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612cb8565b60405180910390fd5b806002600061160d6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116569190612d38565b92505081905550806001600082825461166f9190612d38565b925050819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040516116a59190612cd8565b60405180910390a150565b6116b8611d88565b73ffffffffffffffffffffffffffffffffffffffff166116d66110a2565b73ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390612c98565b60405180910390fd5b806001541015611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612cb8565b60405180910390fd5b806002600061177e6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612cb8565b60405180910390fd5b806001600082825461180c9190612f8a565b9250508190555080600260006118206110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118699190612f8a565b925050819055507f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a448160405161189f9190612cd8565b60405180910390a150565b6000600a60149054906101000a900460ff161561197557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b815260040161191e929190612b6d565b60206040518083038186803b15801561193657600080fd5b505afa15801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e9190612a1e565b9050611982565b61197f838361283f565b90505b92915050565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6119b6611d88565b73ffffffffffffffffffffffffffffffffffffffff166119d46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612c98565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051611ab19190612b52565b60405180910390a150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b611ae8611d88565b73ffffffffffffffffffffffffffffffffffffffff16611b066110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390612c98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612c78565b60405180910390fd5b611bd58161244d565b50565b611be0611d88565b73ffffffffffffffffffffffffffffffffffffffff16611bfe6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b90612c98565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790612cb8565b60405180910390fd5b6000611ceb82610e1c565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060016000828254611d449190612f8a565b925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051611d7c929190612c12565b60405180910390a15050565b600033905090565b6040600481611d9f9190612d38565b60003690501015611de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddc90612cb8565b60405180910390fd5b60008214158015611e7357506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90612cb8565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611f919190612cd8565b60405180910390a3505050565b6060600481611fad9190612d38565b60003690501015611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90612cb8565b60405180910390fd5b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612710600354856120879190612f30565b6120919190612d8e565b90506004548111156120a35760045490505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8210156121585783826120d79190612f8a565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600081856121669190612f8a565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b39190612f8a565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122419190612d38565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561239657816002600061229a6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122df9190612d38565b600260006122eb6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123316110a2565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161238d9190612cd8565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123f39190612cd8565b60405180910390a350505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60406004816125209190612d38565b60003690501015612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90612cb8565b60405180910390fd5b6000612710600354846125799190612f30565b6125839190612d8e565b90506004548111156125955760045490505b600081846125a39190612f8a565b905083600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f09190612f8a565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267e9190612d38565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156127d35781600260006126d76110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271c9190612d38565b600260006127286110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276e6110a2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ca9190612cd8565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128309190612cd8565b60405180910390a35050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000813590506128d581613191565b92915050565b6000813590506128ea816131a8565b92915050565b6000815190506128ff816131a8565b92915050565b60006020828403121561291757600080fd5b6000612925848285016128c6565b91505092915050565b6000806040838503121561294157600080fd5b600061294f858286016128c6565b9250506020612960858286016128c6565b9150509250929050565b60008060006060848603121561297f57600080fd5b600061298d868287016128c6565b935050602061299e868287016128c6565b92505060406129af868287016128db565b9150509250925092565b600080604083850312156129cc57600080fd5b60006129da858286016128c6565b92505060206129eb858286016128db565b9150509250929050565b600060208284031215612a0757600080fd5b6000612a15848285016128db565b91505092915050565b600060208284031215612a3057600080fd5b6000612a3e848285016128f0565b91505092915050565b60008060408385031215612a5a57600080fd5b6000612a68858286016128db565b9250506020612a79858286016128db565b9150509250929050565b612a8c81612fbe565b82525050565b612a9b81612fd0565b82525050565b6000612aac82612d1c565b612ab68185612d27565b9350612ac6818560208601613006565b612acf816130f8565b840191505092915050565b6000612ae7602683612d27565b9150612af282613116565b604082019050919050565b6000612b0a602083612d27565b9150612b1582613165565b602082019050919050565b6000612b2d600083612d27565b9150612b388261318e565b600082019050919050565b612b4c81612ffc565b82525050565b6000602082019050612b676000830184612a83565b92915050565b6000604082019050612b826000830185612a83565b612b8f6020830184612a83565b9392505050565b6000608082019050612bab6000830187612a83565b612bb86020830186612a83565b612bc56040830185612a83565b612bd26060830184612b43565b95945050505050565b6000606082019050612bf06000830186612a83565b612bfd6020830185612a83565b612c0a6040830184612b43565b949350505050565b6000604082019050612c276000830185612a83565b612c346020830184612b43565b9392505050565b6000602082019050612c506000830184612a92565b92915050565b60006020820190508181036000830152612c708184612aa1565b905092915050565b60006020820190508181036000830152612c9181612ada565b9050919050565b60006020820190508181036000830152612cb181612afd565b9050919050565b60006020820190508181036000830152612cd181612b20565b9050919050565b6000602082019050612ced6000830184612b43565b92915050565b6000604082019050612d086000830185612b43565b612d156020830184612b43565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000612d4382612ffc565b9150612d4e83612ffc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d8357612d8261306b565b5b828201905092915050565b6000612d9982612ffc565b9150612da483612ffc565b925082612db457612db361309a565b5b828204905092915050565b6000808291508390505b6001851115612e0957808604811115612de557612de461306b565b5b6001851615612df45780820291505b8081029050612e0285613109565b9450612dc9565b94509492505050565b6000612e1d82612ffc565b9150612e2883612ffc565b9250612e557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e5d565b905092915050565b600082612e6d5760019050612f29565b81612e7b5760009050612f29565b8160018114612e915760028114612e9b57612eca565b6001915050612f29565b60ff841115612ead57612eac61306b565b5b8360020a915084821115612ec457612ec361306b565b5b50612f29565b5060208310610133831016604e8410600b8410161715612eff5782820a905083811115612efa57612ef961306b565b5b612f29565b612f0c8484846001612dbf565b92509050818404811115612f2357612f2261306b565b5b81810290505b9392505050565b6000612f3b82612ffc565b9150612f4683612ffc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7f57612f7e61306b565b5b828202905092915050565b6000612f9582612ffc565b9150612fa083612ffc565b925082821015612fb357612fb261306b565b5b828203905092915050565b6000612fc982612fdc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015613024578082015181840152602081019050613009565b83811115613033576000848401525b50505050565b6000600282049050600182168061305157607f821691505b60208210811415613065576130646130c9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b61319a81612fbe565b81146131a557600080fd5b50565b6131b181612ffc565b81146131bc57600080fd5b5056fea2646970667358221220f697f91132204d24dcee8d8f0b65753b5b45d5fc671585b38526d95df4fd455064736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r,n,i){return super.deploy(e,t,r,n,i||{})}getDeployTransaction(e,t,r,n,i){return super.getDeployTransaction(e,t,r,n,i||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BadERC20__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BasicToken__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BasicToken__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlackList__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"AddedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_blackListedUser",type:"address"},{indexed:!1,internalType:"uint256",name:"_balance",type:"uint256"}],name:"DestroyedBlackFunds",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_user",type:"address"}],name:"RemovedBlackList",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_evilUser",type:"address"}],name:"addBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_blackListedUser",type:"address"}],name:"destroyBlackFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_maker",type:"address"}],name:"getBlackListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isBlackListed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_clearedUser",type:"address"}],name:"removeBlackList",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BlackList__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Basic__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Basic__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Pausable__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[],name:"Pause",type:"event"},{anonymous:!1,inputs:[],name:"Unpause",type:"event"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b5061004761003c61004c60201b60201c565b61005460201b60201c565b610118565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6107ff806101276000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633f4ba83a146100675780635c975abb14610071578063715018a61461008f5780638456cb59146100995780638da5cb5b146100a3578063f2fde38b146100c1575b600080fd5b61006f6100dd565b005b6100796101f0565b604051610086919061066d565b60405180910390f35b610097610203565b005b6100a161028b565b005b6100ab6103a0565b6040516100b89190610652565b60405180910390f35b6100db60048036038101906100d691906105a2565b6103c9565b005b6100e56104c1565b73ffffffffffffffffffffffffffffffffffffffff166101036103a0565b73ffffffffffffffffffffffffffffffffffffffff1614610159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610150906106a8565b60405180910390fd5b600060149054906101000a900460ff166101a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019f906106c8565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b61020b6104c1565b73ffffffffffffffffffffffffffffffffffffffff166102296103a0565b73ffffffffffffffffffffffffffffffffffffffff161461027f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610276906106a8565b60405180910390fd5b61028960006104c9565b565b6102936104c1565b73ffffffffffffffffffffffffffffffffffffffff166102b16103a0565b73ffffffffffffffffffffffffffffffffffffffff1614610307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fe906106a8565b60405180910390fd5b600060149054906101000a900460ff1615610357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034e906106c8565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103d16104c1565b73ffffffffffffffffffffffffffffffffffffffff166103ef6103a0565b73ffffffffffffffffffffffffffffffffffffffff1614610445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043c906106a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ac90610688565b60405180910390fd5b6104be816104c9565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008135905061059c816107b2565b92915050565b6000602082840312156105b457600080fd5b60006105c28482850161058d565b91505092915050565b6105d4816106f9565b82525050565b6105e38161070b565b82525050565b60006105f66026836106e8565b915061060182610737565b604082019050919050565b60006106196020836106e8565b915061062482610786565b602082019050919050565b600061063c6000836106e8565b9150610647826107af565b600082019050919050565b600060208201905061066760008301846105cb565b92915050565b600060208201905061068260008301846105da565b92915050565b600060208201905081810360008301526106a1816105e9565b9050919050565b600060208201905081810360008301526106c18161060c565b9050919050565b600060208201905081810360008301526106e18161062f565b9050919050565b600082825260208201905092915050565b600061070482610717565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b6107bb816106f9565b81146107c657600080fd5b5056fea26469706673582212209ab31d082dec5adc301df12f5fb855d5d225e7db7de21ace5f99e9c6a3f71b3364736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Pausable__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardToken__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_UINT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.StandardToken__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UpgradedStandardToken__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_UINT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"_totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approveByLegacy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"basisPointsRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maximumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferByLegacy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFromByLegacy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.UpgradedStandardToken__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorFraction__factory=void 0;const n=r(6),i=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.AggregatorFraction__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChainlinkConversionPath__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_input",type:"address"},{indexed:!1,internalType:"address",name:"_output",type:"address"},{indexed:!1,internalType:"address",name:"_aggregator",type:"address"}],name:"AggregatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allAggregators",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_amountIn",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"}],name:"getConversion",outputs:[{internalType:"uint256",name:"result",type:"uint256"},{internalType:"uint256",name:"oldestRateTimestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"_path",type:"address[]"}],name:"getRate",outputs:[{internalType:"uint256",name:"rate",type:"uint256"},{internalType:"uint256",name:"oldestRateTimestamp",type:"uint256"},{internalType:"uint256",name:"decimals",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_input",type:"address"},{internalType:"address",name:"_output",type:"address"},{internalType:"address",name:"_aggregator",type:"address"}],name:"updateAggregator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_inputs",type:"address[]"},{internalType:"address[]",name:"_outputs",type:"address[]"},{internalType:"address[]",name:"_aggregators",type:"address[]"}],name:"updateAggregatorsList",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b6200033a565b600033905090565b6200005b816000620000a160201b62000baf1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620000b382826200015460201b60201c565b15620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed906200026d565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bf906200028f565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200022e601f83620002b1565b91506200023b82620002c2565b602082019050919050565b600062000255602283620002b1565b91506200026282620002eb565b604082019050919050565b6000602082019050818103600083015262000288816200021f565b9050919050565b60006020820190508181036000830152620002aa8162000246565b9050919050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b611e42806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806397edd4fa1161005b57806397edd4fa146100ff578063a3d7afa314610131578063bb5f747b1461014d578063fbd4122a1461017d57610088565b806308d5bc581461008d5780634b6c8879146100bd5780634c5a628c146100d95780637362d9c8146100e3575b600080fd5b6100a760048036038101906100a2919061130d565b6101ae565b6040516100b4919061164f565b60405180910390f35b6100d760048036038101906100d29190611349565b6101f0565b005b6100e161033a565b005b6100fd60048036038101906100f891906112e4565b61034c565b005b6101196004803603810190610114919061143c565b6103a7565b604051610128939291906117a5565b60405180910390f35b61014b60048036038101906101469190611398565b610746565b005b610167600480360381019061016291906112e4565b610b13565b60405161017491906116a1565b60405180910390f35b610197600480360381019061019291906114cf565b610b30565b6040516101a592919061177c565b60405180910390f35b60016020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6102006101fb610c57565b610b13565b61023f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102369061171c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf83838360405161032d9392919061166a565b60405180910390a1505050565b61034a610345610c57565b610c5f565b565b61035c610357610c57565b610b13565b61039b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103929061171c565b60405180910390fd5b6103a481610cb9565b50565b6000806000670de0b6b3a76400009250670de0b6b3a7640000905042915060005b600185516103d69190611a90565b81101561073e5760008060008061047989868151811061041f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518a600188610435919061183e565b8151811061046c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610d13565b935093509350935060008473ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c957600080fd5b505afa1580156104dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050191906114a6565b90508781101561050f578097505b60008573ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561055757600080fd5b505afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f919061147d565b905060008673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106119190611527565b60ff1690508481111561064457848161062a9190611a90565b600a6106369190611918565b8b6106419190611a36565b9a505b838110156106725780846106589190611a90565b600a6106649190611918565b8b61066f9190611a36565b9a505b85156106a2578181600a6106869190611918565b8c6106919190611a36565b61069b9190611894565b9a506106c8565b80600a6106af9190611918565b828c6106bb9190611a36565b6106c59190611894565b9a505b848110156106f65780856106dc9190611a90565b600a6106e89190611918565b8b6106f39190611894565b9a505b8381111561072457838161070a9190611a90565b600a6107169190611918565b8b6107219190611894565b9a505b50505050505050808061073690611b54565b9150506103c8565b509193909250565b610756610751610c57565b610b13565b610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061171c565b60405180910390fd5b8383905086869050146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d49061173c565b60405180910390fd5b818190508686905014610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c9061173c565b60405180910390fd5b60005b86869050811015610b0a5782828281811061086c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061088191906112e4565b600160008989858181106108be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906108d391906112e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610948577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061095d91906112e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf878783818110610a2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610a4491906112e4565b868684818110610a7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610a9291906112e4565b858585818110610acb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ae091906112e4565b604051610aef9392919061166a565b60405180910390a18080610b0290611b54565b915050610828565b50505050505050565b6000610b29826000610f2490919063ffffffff16565b9050919050565b6000806000806000610b82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506103a7565b925092509250808389610b959190611a36565b610b9f9190611894565b9450819350505050935093915050565b610bb98282610f24565b15610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf0906116bc565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b610c73816000610fec90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b610ccd816000610baf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935060009250600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e9557600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600192505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc9061175c565b60405180910390fd5b610f0e86611093565b9150610f1985611093565b905092959194509250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c906116fc565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610ff68282610f24565b611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c906116dc565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006008905073f5af88e117747e87fc5929f2ff87221b1447652e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110ea576012905061117d565b6110f382611182565b1561117c578173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561113e57600080fd5b505afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611527565b60ff1690505b5b919050565b600080823b905060008163ffffffff1611915050919050565b60006111ae6111a984611801565b6117dc565b905080838252602082019050828560208602820111156111cd57600080fd5b60005b858110156111fd57816111e38882611207565b8452602084019350602083019250506001810190506111d0565b5050509392505050565b60008135905061121681611db0565b92915050565b60008083601f84011261122e57600080fd5b8235905067ffffffffffffffff81111561124757600080fd5b60208301915083602082028301111561125f57600080fd5b9250929050565b600082601f83011261127757600080fd5b813561128784826020860161119b565b91505092915050565b60008151905061129f81611dc7565b92915050565b6000813590506112b481611dde565b92915050565b6000815190506112c981611dde565b92915050565b6000815190506112de81611df5565b92915050565b6000602082840312156112f657600080fd5b600061130484828501611207565b91505092915050565b6000806040838503121561132057600080fd5b600061132e85828601611207565b925050602061133f85828601611207565b9150509250929050565b60008060006060848603121561135e57600080fd5b600061136c86828701611207565b935050602061137d86828701611207565b925050604061138e86828701611207565b9150509250925092565b600080600080600080606087890312156113b157600080fd5b600087013567ffffffffffffffff8111156113cb57600080fd5b6113d789828a0161121c565b9650965050602087013567ffffffffffffffff8111156113f657600080fd5b61140289828a0161121c565b9450945050604087013567ffffffffffffffff81111561142157600080fd5b61142d89828a0161121c565b92509250509295509295509295565b60006020828403121561144e57600080fd5b600082013567ffffffffffffffff81111561146857600080fd5b61147484828501611266565b91505092915050565b60006020828403121561148f57600080fd5b600061149d84828501611290565b91505092915050565b6000602082840312156114b857600080fd5b60006114c6848285016112ba565b91505092915050565b6000806000604084860312156114e457600080fd5b60006114f2868287016112a5565b935050602084013567ffffffffffffffff81111561150f57600080fd5b61151b8682870161121c565b92509250509250925092565b60006020828403121561153957600080fd5b6000611547848285016112cf565b91505092915050565b61155981611ac4565b82525050565b61156881611ad6565b82525050565b600061157b601f8361182d565b915061158682611c48565b602082019050919050565b600061159e60218361182d565b91506115a982611c71565b604082019050919050565b60006115c160228361182d565b91506115cc82611cc0565b604082019050919050565b60006115e460408361182d565b91506115ef82611d0f565b604082019050919050565b600061160760208361182d565b915061161282611d5e565b602082019050919050565b600061162a60138361182d565b915061163582611d87565b602082019050919050565b61164981611b0c565b82525050565b60006020820190506116646000830184611550565b92915050565b600060608201905061167f6000830186611550565b61168c6020830185611550565b6116996040830184611550565b949350505050565b60006020820190506116b6600083018461155f565b92915050565b600060208201905081810360008301526116d58161156e565b9050919050565b600060208201905081810360008301526116f581611591565b9050919050565b60006020820190508181036000830152611715816115b4565b9050919050565b60006020820190508181036000830152611735816115d7565b9050919050565b60006020820190508181036000830152611755816115fa565b9050919050565b600060208201905081810360008301526117758161161d565b9050919050565b60006040820190506117916000830185611640565b61179e6020830184611640565b9392505050565b60006060820190506117ba6000830186611640565b6117c76020830185611640565b6117d46040830184611640565b949350505050565b60006117e66117f7565b90506117f28282611b23565b919050565b6000604051905090565b600067ffffffffffffffff82111561181c5761181b611bfb565b5b602082029050602081019050919050565b600082825260208201905092915050565b600061184982611b0c565b915061185483611b0c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561188957611888611b9d565b5b828201905092915050565b600061189f82611b0c565b91506118aa83611b0c565b9250826118ba576118b9611bcc565b5b828204905092915050565b6000808291508390505b600185111561190f578086048111156118eb576118ea611b9d565b5b60018516156118fa5780820291505b808102905061190885611c3b565b94506118cf565b94509492505050565b600061192382611b0c565b915061192e83611b0c565b925061195b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611963565b905092915050565b6000826119735760019050611a2f565b816119815760009050611a2f565b816001811461199757600281146119a1576119d0565b6001915050611a2f565b60ff8411156119b3576119b2611b9d565b5b8360020a9150848211156119ca576119c9611b9d565b5b50611a2f565b5060208310610133831016604e8410600b8410161715611a055782820a905083811115611a00576119ff611b9d565b5b611a2f565b611a1284848460016118c5565b92509050818404811115611a2957611a28611b9d565b5b81810290505b9392505050565b6000611a4182611b0c565b9150611a4c83611b0c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a8557611a84611b9d565b5b828202905092915050565b6000611a9b82611b0c565b9150611aa683611b0c565b925082821015611ab957611ab8611b9d565b5b828203905092915050565b6000611acf82611aec565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b611b2c82611c2a565b810181811067ffffffffffffffff82111715611b4b57611b4a611bfb565b5b80604052505050565b6000611b5f82611b0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b9257611b91611b9d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b7f617272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b7f4e6f2061676772656761746f7220666f756e6400000000000000000000000000600082015250565b611db981611ac4565b8114611dc457600080fd5b50565b611dd081611ae2565b8114611ddb57600080fd5b50565b611de781611b0c565b8114611df257600080fd5b50565b611dfe81611b16565b8114611e0957600080fd5b5056fea2646970667358221220c376082b3899457857c654a054709644b1d5f53f13bf46f4ea7478fa840a37b464736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ChainlinkConversionPath__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20fraction__factory=void 0;const n=r(6),i=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20fraction__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Erc20ConversionProxy__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"maxRateTimespan",type:"uint256"}],name:"TransferWithConversionAndReference",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_maxToSpend",type:"uint256"},{internalType:"uint256",name:"_maxRateTimespan",type:"uint256"}],name:"transferFromWithReferenceAndFee",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x608060405234801561001057600080fd5b5060405162000fe038038062000fe0833981810160405281019061003491906100d1565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610156565b6000815190506100cb8161013f565b92915050565b600080604083850312156100e457600080fd5b60006100f2858286016100bc565b9250506020610103858286016100bc565b9150509250929050565b60006101188261011f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6101488161010d565b811461015357600080fd5b50565b610e7a80620001666000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633af2c012146100465780633cd3efef14610062578063946647f114610080575b600080fd5b610060600480360381019061005b9190610649565b61009e565b005b61006a6103b3565b6040516100779190610951565b60405180910390f35b6100886103d7565b60405161009591906109f8565b60405180910390f35b6000806100ee8a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508c88866103fd565b915091508381836100ff9190610b29565b1115610140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013790610a53565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b8b60018e8e905061018c9190610c0a565b8181106101c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101d79190610620565b8e858c8c878c6040516024016101f3979695949392919061096c565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161027d919061093a565b600060405180830381855af49150503d80600081146102b8576040519150601f19603f3d011682016040523d82523d6000602084013e6102bd565b606091505b5050905080610301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f890610a13565b60405180910390fd5b8888604051610311929190610921565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8d8d8d6000818110610375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061038a9190610620565b8a8860405161039c9493929190610a73565b60405180910390a250505050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b815260040161046091906109d6565b60606040518083038186803b15801561047857600080fd5b505afa15801561048c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b09190610734565b92509250925060008614806104d057508582426104cd9190610c0a565b11155b61050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690610a33565b60405180910390fd5b80838961051c9190610bb0565b6105269190610b7f565b94508083886105359190610bb0565b61053f9190610b7f565b935050505094509492505050565b60008135905061055c81610e16565b92915050565b60008083601f84011261057457600080fd5b8235905067ffffffffffffffff81111561058d57600080fd5b6020830191508360208202830111156105a557600080fd5b9250929050565b60008083601f8401126105be57600080fd5b8235905067ffffffffffffffff8111156105d757600080fd5b6020830191508360018202830111156105ef57600080fd5b9250929050565b60008135905061060581610e2d565b92915050565b60008151905061061a81610e2d565b92915050565b60006020828403121561063257600080fd5b60006106408482850161054d565b91505092915050565b6000806000806000806000806000806101008b8d03121561066957600080fd5b60006106778d828e0161054d565b9a505060206106888d828e016105f6565b99505060408b013567ffffffffffffffff8111156106a557600080fd5b6106b18d828e01610562565b985098505060608b013567ffffffffffffffff8111156106d057600080fd5b6106dc8d828e016105ac565b965096505060806106ef8d828e016105f6565b94505060a06107008d828e0161054d565b93505060c06107118d828e016105f6565b92505060e06107228d828e016105f6565b9150509295989b9194979a5092959850565b60008060006060848603121561074957600080fd5b60006107578682870161060b565b93505060206107688682870161060b565b92505060406107798682870161060b565b9150509250925092565b600061078f838361079b565b60208301905092915050565b6107a481610c3e565b82525050565b6107b381610c3e565b82525050565b60006107c482610ac8565b6107ce8185610aeb565b93506107d983610ab8565b8060005b8381101561080a5781516107f18882610783565b97506107fc83610ade565b9250506001810190506107dd565b5085935050505092915050565b60006108238385610afc565b9350610830838584610c9e565b61083983610d3e565b840190509392505050565b60006108508385610b0d565b935061085d838584610c9e565b82840190509392505050565b600061087482610ad3565b61087e8185610b0d565b935061088e818560208601610cad565b80840191505092915050565b6108a381610c7a565b82525050565b60006108b6602683610b18565b91506108c182610d4f565b604082019050919050565b60006108d9601b83610b18565b91506108e482610d9e565b602082019050919050565b60006108fc602483610b18565b915061090782610dc7565b604082019050919050565b61091b81610c70565b82525050565b600061092e828486610844565b91508190509392505050565b60006109468284610869565b915081905092915050565b600060208201905061096660008301846107aa565b92915050565b600060c082019050610981600083018a6107aa565b61098e60208301896107aa565b61099b6040830188610912565b81810360608301526109ae818688610817565b90506109bd6080830185610912565b6109ca60a08301846107aa565b98975050505050505050565b600060208201905081810360008301526109f081846107b9565b905092915050565b6000602082019050610a0d600083018461089a565b92915050565b60006020820190508181036000830152610a2c816108a9565b9050919050565b60006020820190508181036000830152610a4c816108cc565b9050919050565b60006020820190508181036000830152610a6c816108ef565b9050919050565b6000608082019050610a886000830187610912565b610a9560208301866107aa565b610aa26040830185610912565b610aaf6060830184610912565b95945050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610b3482610c70565b9150610b3f83610c70565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610b7457610b73610ce0565b5b828201905092915050565b6000610b8a82610c70565b9150610b9583610c70565b925082610ba557610ba4610d0f565b5b828204905092915050565b6000610bbb82610c70565b9150610bc683610c70565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610bff57610bfe610ce0565b5b828202905092915050565b6000610c1582610c70565b9150610c2083610c70565b925082821015610c3357610c32610ce0565b5b828203905092915050565b6000610c4982610c50565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c8582610c8c565b9050919050565b6000610c9782610c50565b9050919050565b82818337600083830152505050565b60005b83811015610ccb578082015181840152602081019050610cb0565b83811115610cda576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b7f416d6f756e7420746f20706179206973206f766572207468652075736572206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b610e1f81610c3e565b8114610e2a57600080fd5b50565b610e3681610c70565b8114610e4157600080fd5b5056fea264697066735822122084b409e140e2d86d1fb71dfd4306d6bc2e12677467b83175bb479e0edc2a9d8b64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Erc20ConversionProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20EscrowToPay__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"InitiatedEmergencyClaim",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"RequestFrozen",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"RevertedEmergencyClaim",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approvePaymentProxyToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"completeEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"freezeRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"initiateEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentRef",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"payEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"payRequestFromEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"contract IERC20FeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"refundFrozenFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"",type:"bytes"}],name:"requestMapping",outputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"payee",type:"address"},{internalType:"address",name:"payer",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"unlockDate",type:"uint256"},{internalType:"uint256",name:"emergencyClaimDate",type:"uint256"},{internalType:"bool",name:"emergencyState",type:"bool"},{internalType:"bool",name:"isFrozen",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"revertEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x60806040523480156200001157600080fd5b5060405162002efd38038062002efd833981810160405281019062000037919062000095565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200010f565b6000815190506200008f81620000f5565b92915050565b600060208284031215620000a857600080fd5b6000620000b8848285016200007e565b91505092915050565b6000620000ce82620000d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200010081620000c1565b81146200010c57600080fd5b50565b612dde806200011f6000396000f3fe6080604052600436106100955760003560e01c80633cd3efef116100595780633cd3efef146101a75780636662e1e0146101d257806382865e9d146101fb578063a09b241d14610224578063a58ad6bc1461024d576100d5565b806307975608146100da5780631a77f53a146101035780632a16f4c31461012c578063325a00f0146101555780633a322d451461017e576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612669565b60405180910390fd5b600080fd5b3480156100e657600080fd5b5061010160048036038101906100fc9190612148565b610291565b005b34801561010f57600080fd5b5061012a60048036038101906101259190612148565b61052d565b005b34801561013857600080fd5b50610153600480360381019061014e9190612148565b61079d565b005b34801561016157600080fd5b5061017c6004803603810190610177919061207e565b610a23565b005b34801561018a57600080fd5b506101a560048036038101906101a09190612148565b610e1c565b005b3480156101b357600080fd5b506101bc6110c7565b6040516101c9919061264e565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190612148565b6110eb565b005b34801561020757600080fd5b50610222600480360381019061021d9190612148565b6113fc565b005b34801561023057600080fd5b5061024b60048036038101906102469190612055565b61170f565b005b34801561025957600080fd5b50610274600480360381019061026f9190612148565b61178a565b6040516102889897969594939291906124d7565b60405180910390f35b806001816040516102a29190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610338906126e9565b60405180910390fd5b8160006001826040516103549190612497565b908152602001604051809103902060030154116103a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039d906127c9565b60405180910390fd5b826001816040516103b79190612497565b908152602001604051809103902060060160019054906101000a900460ff1615610416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040d90612789565b60405180910390fd5b6001846040516104269190612497565b908152602001604051809103902060060160009054906101000a900460ff16610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047b90612849565b60405180910390fd5b60006001856040516104969190612497565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006001856040516104d09190612497565b908152602001604051809103902060050181905550836040516104f39190612497565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a250505050565b8060006001826040516105409190612497565b90815260200160405180910390206003015411610592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610589906127c9565b60405180910390fd5b816001816040516105a39190612497565b908152602001604051809103902060060160009054906101000a900460ff1615610602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f9906127a9565b60405180910390fd5b6001836040516106129190612497565b908152602001604051809103902060060160019054906101000a900460ff16610670576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610667906126c9565b60405180910390fd5b426001846040516106819190612497565b90815260200160405180910390206004015411156106d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cb90612829565b60405180910390fd5b60006001846040516106e69190612497565b908152602001604051809103902060060160016101000a81548160ff021916908315150217905550610759836001856040516107229190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611862565b610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90612729565b60405180910390fd5b505050565b806001816040516107ae9190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610844906126e9565b60405180910390fd5b8160006001826040516108609190612497565b908152602001604051809103902060030154116108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a9906127c9565b60405180910390fd5b826001816040516108c39190612497565b908152602001604051809103902060060160009054906101000a900460ff1615610922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610919906127a9565b60405180910390fd5b836001816040516109339190612497565b908152602001604051809103902060060160019054906101000a900460ff1615610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612789565b60405180910390fd5b6109dd856001876040516109a69190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611862565b610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612729565b60405180910390fd5b5050505050565b826000600182604051610a369190612497565b90815260200160405180910390206003015414610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f906127e9565b60405180910390fd5b6000851480610a975750600083145b15610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace906126a9565b60405180910390fd5b6040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001868152602001600081526020016000815260200160001515815260200160001515815250600185604051610b6b9190612497565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff02191690831515021790555090505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16883088888888604051602401610d04969594939291906125bd565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610d8e9190612497565b600060405180830381855af49150503d8060008114610dc9576040519150601f19603f3d011682016040523d82523d6000602084013e610dce565b606091505b5050905080610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990612689565b60405180910390fd5b5050505050505050565b80600181604051610e2d9190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec3906126e9565b60405180910390fd5b816000600182604051610edf9190612497565b90815260200160405180910390206003015411610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f28906127c9565b60405180910390fd5b82600181604051610f429190612497565b908152602001604051809103902060060160009054906101000a900460ff1615610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f98906127a9565b60405180910390fd5b83600181604051610fb29190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890612789565b60405180910390fd5b62dd7c004261102091906128f7565b6001866040516110309190612497565b908152602001604051809103902060050181905550600180866040516110569190612497565b908152602001604051809103902060060160006101000a81548160ff0219169083151502179055508460405161108c9190612497565b60405180910390207f37b4fae7fd90ce3674204f79d686d40c4069a66c402976717d4f30817c0c093960405160405180910390a25050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806001816040516110fc9190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611192906126e9565b60405180910390fd5b8160006001826040516111ae9190612497565b90815260200160405180910390206003015411611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127c9565b60405180910390fd5b826001816040516112119190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612789565b60405180910390fd5b6001846040516112809190612497565b908152602001604051809103902060060160009054906101000a900460ff1680156112cc5750426001856040516112b79190612497565b90815260200160405180910390206005015411155b61130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612769565b60405180910390fd5b600060018560405161131d9190612497565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006001856040516113579190612497565b9081526020016040518091039020600501819055506113b7846001866040516113809190612497565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611862565b6113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612709565b60405180910390fd5b50505050565b8060018160405161140d9190612497565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a3906126e9565b60405180910390fd5b8160006001826040516114bf9190612497565b90815260200160405180910390206003015411611511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611508906127c9565b60405180910390fd5b826001816040516115229190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612789565b60405180910390fd5b6001846040516115919190612497565b908152602001604051809103902060060160009054906101000a900460ff16156116595760006001856040516115c79190612497565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006001856040516116019190612497565b908152602001604051809103902060050181905550836040516116249190612497565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a25b6001808560405161166a9190612497565b908152602001604051809103902060060160016101000a81548160ff0219169083151502179055506301dfe200426116a291906128f7565b6001856040516116b29190612497565b908152602001604051809103902060040181905550836040516116d59190612497565b60405180910390207f5e14b9b7c3d9675ce5ecb24ee8181d371561709a08aa9c412acb36627386dba860405160405180910390a250505050565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061178460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611e659092919063ffffffff16565b50505050565b6001818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154908060050154908060060160009054906101000a900460ff16908060060160019054906101000a900460ff16905088565b60008260006001826040516118779190612497565b908152602001604051809103902060030154116118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906127c9565b60405180910390fd5b836001816040516118da9190612497565b908152602001604051809103902060060160009054906101000a900460ff1615611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906127a9565b60405180910390fd5b8460018160405161194a9190612497565b908152602001604051809103902060060160019054906101000a900460ff16156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612789565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090612809565b60405180910390fd5b6000600187604051611a2b9190612497565b90815260200160405180910390206003015411611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7490612749565b60405180910390fd5b6000600187604051611a8f9190612497565b908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600188604051611ad59190612497565b90815260200160405180910390206003015490506000600189604051611afb9190612497565b908152602001604051809103902060030181905550808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e3060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611b6c9291906124ae565b60206040518083038186803b158015611b8457600080fd5b505afa158015611b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbc9190612189565b1015611bcc57611bcb8261170f565b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8389848c6000806040518763ffffffff1660e01b8152600401611c3096959493929190612555565b600060405180830381600087803b158015611c4a57600080fd5b505af1158015611c5e573d6000803e3d6000fd5b505050506000600189604051611c749190612497565b90815260200160405180910390206003015414611cba577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600188604051611cca9190612497565b908152602001604051809103902060060160019054906101000a900460ff1615611d1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600188604051611d2d9190612497565b908152602001604051809103902060060160009054906101000a900460ff1615611d80577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600188604051611d909190612497565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160009055600482016000905560058201600090556006820160006101000a81549060ff02191690556006820160016101000a81549060ff0219169055505060019550505050505092915050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401611e94929190612625565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f1e9190612497565b6000604051808303816000865af19150503d8060008114611f5b576040519150601f19603f3d011682016040523d82523d6000602084013e611f60565b606091505b5091509150818015611f8e5750600081511480611f8d575080806020019051810190611f8c919061211f565b5b5b925050509392505050565b6000611fac611fa78461288e565b612869565b905082815260208101848484011115611fc457600080fd5b611fcf8482856129cb565b509392505050565b600081359050611fe681612d63565b92915050565b600081519050611ffb81612d7a565b92915050565b600082601f83011261201257600080fd5b8135612022848260208601611f99565b91505092915050565b60008135905061203a81612d91565b92915050565b60008151905061204f81612d91565b92915050565b60006020828403121561206757600080fd5b600061207584828501611fd7565b91505092915050565b60008060008060008060c0878903121561209757600080fd5b60006120a589828a01611fd7565b96505060206120b689828a01611fd7565b95505060406120c789828a0161202b565b945050606087013567ffffffffffffffff8111156120e457600080fd5b6120f089828a01612001565b935050608061210189828a0161202b565b92505060a061211289828a01611fd7565b9150509295509295509295565b60006020828403121561213157600080fd5b600061213f84828501611fec565b91505092915050565b60006020828403121561215a57600080fd5b600082013567ffffffffffffffff81111561217457600080fd5b61218084828501612001565b91505092915050565b60006020828403121561219b57600080fd5b60006121a984828501612040565b91505092915050565b6121bb8161294d565b82525050565b6121ca8161295f565b82525050565b60006121db826128bf565b6121e581856128ca565b93506121f58185602086016129da565b6121fe81612a9c565b840191505092915050565b6000612214826128bf565b61221e81856128db565b935061222e8185602086016129da565b80840191505092915050565b61224381612995565b82525050565b612252816129b9565b82525050565b60006122656013836128e6565b915061227082612aad565b602082019050919050565b60006122886026836128e6565b915061229382612ad6565b604082019050919050565b60006122ab600a836128e6565b91506122b682612b25565b602082019050919050565b60006122ce600b836128e6565b91506122d982612b4e565b602082019050919050565b60006122f1600f836128e6565b91506122fc82612b77565b602082019050919050565b60006123146010836128e6565b915061231f82612ba0565b602082019050919050565b60006123376010836128e6565b915061234282612bc9565b602082019050919050565b600061235a600b836128e6565b915061236582612bf2565b602082019050919050565b600061237d6008836128e6565b915061238882612c1b565b602082019050919050565b60006123a0600f836128e6565b91506123ab82612c44565b602082019050919050565b60006123c36011836128e6565b91506123ce82612c6d565b602082019050919050565b60006123e6600e836128e6565b91506123f182612c96565b602082019050919050565b60006124096012836128e6565b915061241482612cbf565b602082019050919050565b600061242c600d836128e6565b915061243782612ce8565b602082019050919050565b600061244f6008836128e6565b915061245a82612d11565b602082019050919050565b6000612472601c836128e6565b915061247d82612d3a565b602082019050919050565b6124918161298b565b82525050565b60006124a38284612209565b915081905092915050565b60006040820190506124c360008301856121b2565b6124d060208301846121b2565b9392505050565b6000610100820190506124ed600083018b6121b2565b6124fa602083018a6121b2565b61250760408301896121b2565b6125146060830188612488565b6125216080830187612488565b61252e60a0830186612488565b61253b60c08301856121c1565b61254860e08301846121c1565b9998505050505050505050565b600060c08201905061256a60008301896121b2565b61257760208301886121b2565b6125846040830187612488565b818103606083015261259681866121d0565b90506125a56080830185612249565b6125b260a08301846121b2565b979650505050505050565b600060c0820190506125d260008301896121b2565b6125df60208301886121b2565b6125ec6040830187612488565b81810360608301526125fe81866121d0565b905061260d6080830185612488565b61261a60a08301846121b2565b979650505050505050565b600060408201905061263a60008301856121b2565b6126476020830184612488565b9392505050565b6000602082019050612663600083018461223a565b92915050565b6000602082019050818103600083015261268281612258565b9050919050565b600060208201905081810360008301526126a28161227b565b9050919050565b600060208201905081810360008301526126c28161229e565b9050919050565b600060208201905081810360008301526126e2816122c1565b9050919050565b60006020820190508181036000830152612702816122e4565b9050919050565b6000602082019050818103600083015261272281612307565b9050919050565b600060208201905081810360008301526127428161232a565b9050919050565b600060208201905081810360008301526127628161234d565b9050919050565b6000602082019050818103600083015261278281612370565b9050919050565b600060208201905081810360008301526127a281612393565b9050919050565b600060208201905081810360008301526127c2816123b6565b9050919050565b600060208201905081810360008301526127e2816123d9565b9050919050565b60006020820190508181036000830152612802816123fc565b9050919050565b600060208201905081810360008301526128228161241f565b9050919050565b6000602082019050818103600083015261284281612442565b9050919050565b6000602082019050818103600083015261286281612465565b9050919050565b6000612873612884565b905061287f8282612a0d565b919050565b6000604051905090565b600067ffffffffffffffff8211156128a9576128a8612a6d565b5b6128b282612a9c565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006129028261298b565b915061290d8361298b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294257612941612a3e565b5b828201905092915050565b60006129588261296b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006129a0826129a7565b9050919050565b60006129b28261296b565b9050919050565b60006129c48261298b565b9050919050565b82818337600083830152505050565b60005b838110156129f85780820151818401526020810190506129dd565b83811115612a07576000848401525b50505050565b612a1682612a9c565b810181811067ffffffffffffffff82111715612a3557612a34612a6d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b7f5a65726f2056616c756500000000000000000000000000000000000000000000600082015250565b7f4e6f742066726f7a656e21000000000000000000000000000000000000000000600082015250565b7f4e6f7420417574686f72697a65642e0000000000000000000000000000000000600082015250565b7f5769746864726177206661696c65642100000000000000000000000000000000600082015250565b7f5769746864726177204661696c65642100000000000000000000000000000000600082015250565b7f5a45524f20416d6f756e74000000000000000000000000000000000000000000600082015250565b7f4e6f742079657421000000000000000000000000000000000000000000000000600082015250565b7f526571756573742046726f7a656e210000000000000000000000000000000000600082015250565b7f496e20656d657267656e63795374617465000000000000000000000000000000600082015250565b7f4e6f7420696e20657363726f772e000000000000000000000000000000000000600082015250565b7f416c726561647920696e20457363726f772e0000000000000000000000000000600082015250565b7f5a45524f20616464647265737300000000000000000000000000000000000000600082015250565b7f4e6f742059657421000000000000000000000000000000000000000000000000600082015250565b7f456d657267656e6379436c61696d204e4f5420696e6974696174656400000000600082015250565b612d6c8161294d565b8114612d7757600080fd5b50565b612d838161295f565b8114612d8e57600080fd5b50565b612d9a8161298b565b8114612da557600080fd5b5056fea264697066735822122024540fb3b985c8d603829fecb5087a4149772444ed9325d2209441e3fb961dca64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20EscrowToPay__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20FeeProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"transferFromWithReferenceAndFee",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b50610848806100206000396000f3fe6080604052600436106100225760003560e01c8063c219a14d1461006757610062565b36610062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100599061061b565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e600480360381019061008991906103ba565b610090565b005b61009b8787876101c7565b6100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d19061063b565b60405180910390fd5b6000821180156101175750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610167576101278782846101c7565b610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d9061067b565b60405180910390fd5b5b8383604051610177929190610561565b60405180910390207f9f16cbcc523c67a60c450e5ffe4f3b7b6dbe772e7abcadb2686ce029a9a0a2b688888886866040516101b69594939291906105c8565b60405180910390a250505050505050565b6000833b6101d457600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff1633858560405160240161020293929190610591565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161028c919061057a565b6000604051808303816000865af19150503d80600081146102c9576040519150601f19603f3d011682016040523d82523d6000602084013e6102ce565b606091505b505090503d600081146102e857602081146102f157600080fd5b600192506102fd565b60206000803e60005192505b508061033e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103359061065b565b60405180910390fd5b509392505050565b600081359050610355816107e4565b92915050565b60008083601f84011261036d57600080fd5b8235905067ffffffffffffffff81111561038657600080fd5b60208301915083600182028301111561039e57600080fd5b9250929050565b6000813590506103b4816107fb565b92915050565b600080600080600080600060c0888a0312156103d557600080fd5b60006103e38a828b01610346565b97505060206103f48a828b01610346565b96505060406104058a828b016103a5565b955050606088013567ffffffffffffffff81111561042257600080fd5b61042e8a828b0161035b565b945094505060806104418a828b016103a5565b92505060a06104528a828b01610346565b91505092959891949750929550565b61046a816106c2565b82525050565b600061047c83856106a6565b93506104898385846106fe565b82840190509392505050565b60006104a08261069b565b6104aa81856106a6565b93506104ba81856020860161070d565b80840191505092915050565b60006104d36013836106b1565b91506104de82610740565b602082019050919050565b60006104f6601d836106b1565b915061050182610769565b602082019050919050565b60006105196020836106b1565b915061052482610792565b602082019050919050565b600061053c6019836106b1565b9150610547826107bb565b602082019050919050565b61055b816106f4565b82525050565b600061056e828486610470565b91508190509392505050565b60006105868284610495565b915081905092915050565b60006060820190506105a66000830186610461565b6105b36020830185610461565b6105c06040830184610552565b949350505050565b600060a0820190506105dd6000830188610461565b6105ea6020830187610461565b6105f76040830186610552565b6106046060830185610552565b6106116080830184610461565b9695505050505050565b60006020820190508181036000830152610634816104c6565b9050919050565b60006020820190508181036000830152610654816104e9565b9050919050565b600060208201905081810360008301526106748161050c565b9050919050565b600060208201905081810360008301526106948161052f565b9050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006106cd826106d4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561072b578082015181840152602081019050610710565b8381111561073a576000848401525b50505050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f7061796d656e74207472616e7366657246726f6d2829206661696c6564000000600082015250565b7f7472616e7366657246726f6d282920686173206265656e207265766572746564600082015250565b7f666565207472616e7366657246726f6d2829206661696c656400000000000000600082015250565b6107ed816106c2565b81146107f857600080fd5b50565b610804816106f4565b811461080f57600080fd5b5056fea2646970667358221220cc6595442e7ae393fbeb38e765d8ef75474c311fde1a279246463540e019fe7e64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20FeeProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Proxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"TransferWithReference",type:"event"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"}],name:"transferFromWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b50610549806100206000396000f3fe6080604052600436106100225760003560e01c80630784bca31461006757610062565b36610062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610059906103c9565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e60048036038101906100899190610247565b610090565b005b60008590508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3387876040518463ffffffff1660e01b81526004016100d293929190610392565b602060405180830381600087803b1580156100ec57600080fd5b505af1158015610100573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012491906102c7565b610163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015a906103e9565b60405180910390fd5b8282604051610173929190610379565b60405180910390207f4d4e9dbb7207a31cc25529ccb52e52ddba30ded7734e32691d13da66df7f81da8787876040516101ae93929190610392565b60405180910390a2505050505050565b6000813590506101cd816104ce565b92915050565b6000815190506101e2816104e5565b92915050565b60008083601f8401126101fa57600080fd5b8235905067ffffffffffffffff81111561021357600080fd5b60208301915083600182028301111561022b57600080fd5b9250929050565b600081359050610241816104fc565b92915050565b60008060008060006080868803121561025f57600080fd5b600061026d888289016101be565b955050602061027e888289016101be565b945050604061028f88828901610232565b935050606086013567ffffffffffffffff8111156102ac57600080fd5b6102b8888289016101e8565b92509250509295509295909350565b6000602082840312156102d957600080fd5b60006102e7848285016101d3565b91505092915050565b6102f981610425565b82525050565b600061030b8385610409565b935061031883858461046d565b82840190509392505050565b6000610331601383610414565b915061033c8261047c565b602082019050919050565b6000610354601583610414565b915061035f826104a5565b602082019050919050565b61037381610463565b82525050565b60006103868284866102ff565b91508190509392505050565b60006060820190506103a760008301866102f0565b6103b460208301856102f0565b6103c1604083018461036a565b949350505050565b600060208201905081810360008301526103e281610324565b9050919050565b6000602082019050818103600083015261040281610347565b9050919050565b600081905092915050565b600082825260208201905092915050565b600061043082610443565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f7472616e7366657246726f6d2829206661696c65640000000000000000000000600082015250565b6104d781610425565b81146104e257600080fd5b50565b6104ee81610437565b81146104f957600080fd5b50565b61050581610463565b811461051057600080fd5b5056fea26469706673582212200629efbb35429c083a10d0880809161093490230b5619b455d4a3d49e6759ae764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Proxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToConversion__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_swapRouterAddress",type:"address"},{internalType:"address",name:"_paymentProxyAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approvePaymentProxyToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approveRouterToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"contract Erc20ConversionProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"setPaymentProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newSwapRouterAddress",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"swapRouter",outputs:[{internalType:"contract IUniswapV2Router02",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"uint256",name:"_amountInMax",type:"uint256"},{internalType:"address[]",name:"_uniswapPath",type:"address[]"},{internalType:"address[]",name:"_chainlinkPath",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_requestFeeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_uniswapDeadline",type:"uint256"},{internalType:"uint256",name:"_chainlinkMaxRateTimespan",type:"uint256"}],name:"swapTransferWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b50604051620024a2380380620024a28339818101604052810190620000379190620002bf565b620000576200004b620001c560201b60201c565b620001cd60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663946647f16040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014257600080fd5b505afa15801562000157573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017d919062000300565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003a8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620002a28162000374565b92915050565b600081519050620002b9816200038e565b92915050565b60008060408385031215620002d357600080fd5b6000620002e38582860162000291565b9250506020620002f68582860162000291565b9150509250929050565b6000602082840312156200031357600080fd5b60006200032384828501620002a8565b91505092915050565b6000620003398262000354565b9050919050565b60006200034d826200032c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200037f816200032c565b81146200038b57600080fd5b50565b620003998162000340565b8114620003a557600080fd5b50565b6120ea80620003b86000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063946647f111610071578063946647f11461012c578063a09b241d1461014a578063b2964b1114610166578063c0d7865514610182578063c31c9c071461019e578063f2fde38b146101bc576100a9565b806330e175c9146100ae5780633cd3efef146100ca578063715018a6146100e85780637262b4c5146100f25780638da5cb5b1461010e575b600080fd5b6100c860048036038101906100c391906115a4565b6101d8565b005b6100d2610255565b6040516100df9190611ae2565b60405180910390f35b6100f061027b565b005b61010c600480360381019061010791906115a4565b610303565b005b6101166104a3565b60405161012391906119be565b60405180910390f35b6101346104cc565b6040516101419190611ac7565b60405180910390f35b610164600480360381019061015f91906115a4565b6104f2565b005b610180600480360381019061017b91906115cd565b61056f565b005b61019c600480360381019061019791906115a4565b610cb7565b005b6101a6610d77565b6040516101b39190611afd565b60405180910390f35b6101d660048036038101906101d191906115a4565b610d9d565b005b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061024f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610e959092919063ffffffff16565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610283610fc9565b73ffffffffffffffffffffffffffffffffffffffff166102a16104a3565b73ffffffffffffffffffffffffffffffffffffffff16146102f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ee90611b58565b60405180910390fd5b6103016000610fd1565b565b61030b610fc9565b73ffffffffffffffffffffffffffffffffffffffff166103296104a3565b73ffffffffffffffffffffffffffffffffffffffff161461037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037690611b58565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663946647f16040518163ffffffff1660e01b815260040160206040518083038186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610460919061175f565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610569600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610e959092919063ffffffff16565b50505050565b866001885161057e9190611d66565b815181106105b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168860018a516105e29190611d66565b81518110610619577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e90611b38565b60405180910390fd5b6000610684888c87611095565b90506106f433308c8c6000815181106106c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1661115a909392919063ffffffff16565b610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a90611b78565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee828c8c30886040518663ffffffff1660e01b8152600401610796959493929190611bc8565b600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107ed91906116f5565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633af2c0128d8d8b8b8b8b8b898b6040518a63ffffffff1660e01b815260040161085999989796959493929190611a39565b600060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506000896000815181106108c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161090791906119be565b60206040518083038186803b15801561091f57600080fd5b505afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109579190611788565b1115610a9457610a92338a60008151811061099b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109db91906119be565b60206040518083038186803b1580156109f357600080fd5b505afa158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190611788565b8b600081518110610a65577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166112919092919063ffffffff16565b505b60008960018b51610aa59190611d66565b81518110610adc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b1c91906119be565b60206040518083038186803b158015610b3457600080fd5b505afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611788565b1115610ca957610ca7338a600081518110610bb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bf091906119be565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611788565b8b600081518110610c7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166112919092919063ffffffff16565b505b505050505050505050505050565b610cbf610fc9565b73ffffffffffffffffffffffffffffffffffffffff16610cdd6104a3565b73ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90611b58565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610da5610fc9565b73ffffffffffffffffffffffffffffffffffffffff16610dc36104a3565b73ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090611b58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090611b18565b60405180910390fd5b610e9281610fd1565b50565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610ec4929190611a10565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f4e91906119a7565b6000604051808303816000865af19150503d8060008114610f8b576040519150601f19603f3d011682016040523d82523d6000602084013e610f90565b606091505b5091509150818015610fbe5750600081511480610fbd575080806020019051810190610fbc9190611736565b5b5b925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbd4122a83856110e19190611d10565b866040518363ffffffff1660e01b81526004016110ff929190611b98565b604080518083038186803b15801561111657600080fd5b505afa15801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e91906117b1565b50809150509392505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff1686868660405160240161118b939291906119d9565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161121591906119a7565b6000604051808303816000865af19150503d8060008114611252576040519150601f19603f3d011682016040523d82523d6000602084013e611257565b606091505b509150915081801561128557506000815114806112845750808060200190518101906112839190611736565b5b5b92505050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1685856040516024016112c0929190611a10565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161134a91906119a7565b6000604051808303816000865af19150503d8060008114611387576040519150601f19603f3d011682016040523d82523d6000602084013e61138c565b606091505b50915091508180156113ba57506000815114806113b95750808060200190518101906113b89190611736565b5b5b925050509392505050565b60006113d86113d384611c47565b611c22565b905080838252602082019050828560208602820111156113f757600080fd5b60005b85811015611427578161140d888261149d565b8452602084019350602083019250506001810190506113fa565b5050509392505050565b600061144461143f84611c73565b611c22565b9050808382526020820190508285602086028201111561146357600080fd5b60005b858110156114935781611479888261158f565b845260208401935060208301925050600181019050611466565b5050509392505050565b6000813590506114ac81612058565b92915050565b600082601f8301126114c357600080fd5b81356114d38482602086016113c5565b91505092915050565b600082601f8301126114ed57600080fd5b81516114fd848260208601611431565b91505092915050565b6000815190506115158161206f565b92915050565b60008083601f84011261152d57600080fd5b8235905067ffffffffffffffff81111561154657600080fd5b60208301915083600182028301111561155e57600080fd5b9250929050565b60008151905061157481612086565b92915050565b6000813590506115898161209d565b92915050565b60008151905061159e8161209d565b92915050565b6000602082840312156115b657600080fd5b60006115c48482850161149d565b91505092915050565b60008060008060008060008060008060006101408c8e0312156115ef57600080fd5b60006115fd8e828f0161149d565b9b5050602061160e8e828f0161157a565b9a5050604061161f8e828f0161157a565b99505060608c013567ffffffffffffffff81111561163c57600080fd5b6116488e828f016114b2565b98505060808c013567ffffffffffffffff81111561166557600080fd5b6116718e828f016114b2565b97505060a08c013567ffffffffffffffff81111561168e57600080fd5b61169a8e828f0161151b565b965096505060c06116ad8e828f0161157a565b94505060e06116be8e828f0161149d565b9350506101006116d08e828f0161157a565b9250506101206116e28e828f0161157a565b9150509295989b509295989b9093969950565b60006020828403121561170757600080fd5b600082015167ffffffffffffffff81111561172157600080fd5b61172d848285016114dc565b91505092915050565b60006020828403121561174857600080fd5b600061175684828501611506565b91505092915050565b60006020828403121561177157600080fd5b600061177f84828501611565565b91505092915050565b60006020828403121561179a57600080fd5b60006117a88482850161158f565b91505092915050565b600080604083850312156117c457600080fd5b60006117d28582860161158f565b92505060206117e38582860161158f565b9150509250929050565b60006117f98383611805565b60208301905092915050565b61180e81611d9a565b82525050565b61181d81611d9a565b82525050565b600061182e82611caf565b6118388185611cd2565b935061184383611c9f565b8060005b8381101561187457815161185b88826117ed565b975061186683611cc5565b925050600181019050611847565b5085935050505092915050565b600061188d8385611ce3565b935061189a838584611e60565b6118a383611f31565b840190509392505050565b60006118b982611cba565b6118c38185611cf4565b93506118d3818560208601611e6f565b80840191505092915050565b6118e881611df4565b82525050565b6118f781611e18565b82525050565b61190681611e3c565b82525050565b6000611919602683611cff565b915061192482611f42565b604082019050919050565b600061193c603b83611cff565b915061194782611f91565b604082019050919050565b600061195f602083611cff565b915061196a82611fe0565b602082019050919050565b6000611982603383611cff565b915061198d82612009565b604082019050919050565b6119a181611dea565b82525050565b60006119b382846118ae565b915081905092915050565b60006020820190506119d36000830184611814565b92915050565b60006060820190506119ee6000830186611814565b6119fb6020830185611814565b611a086040830184611998565b949350505050565b6000604082019050611a256000830185611814565b611a326020830184611998565b9392505050565b600061010082019050611a4f600083018c611814565b611a5c602083018b611998565b8181036040830152611a6e818a611823565b90508181036060830152611a8381888a611881565b9050611a926080830187611998565b611a9f60a0830186611814565b611aac60c0830185611998565b611ab960e0830184611998565b9a9950505050505050505050565b6000602082019050611adc60008301846118df565b92915050565b6000602082019050611af760008301846118ee565b92915050565b6000602082019050611b1260008301846118fd565b92915050565b60006020820190508181036000830152611b318161190c565b9050919050565b60006020820190508181036000830152611b518161192f565b9050919050565b60006020820190508181036000830152611b7181611952565b9050919050565b60006020820190508181036000830152611b9181611975565b9050919050565b6000604082019050611bad6000830185611998565b8181036020830152611bbf8184611823565b90509392505050565b600060a082019050611bdd6000830188611998565b611bea6020830187611998565b8181036040830152611bfc8186611823565b9050611c0b6060830185611814565b611c186080830184611998565b9695505050505050565b6000611c2c611c3d565b9050611c388282611ea2565b919050565b6000604051905090565b600067ffffffffffffffff821115611c6257611c61611f02565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611c8e57611c8d611f02565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611d1b82611dea565b9150611d2683611dea565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5b57611d5a611ed3565b5b828201905092915050565b6000611d7182611dea565b9150611d7c83611dea565b925082821015611d8f57611d8e611ed3565b5b828203905092915050565b6000611da582611dca565b9050919050565b60008115159050919050565b6000611dc382611d9a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611dff82611e06565b9050919050565b6000611e1182611dca565b9050919050565b6000611e2382611e2a565b9050919050565b6000611e3582611dca565b9050919050565b6000611e4782611e4e565b9050919050565b6000611e5982611dca565b9050919050565b82818337600083830152505050565b60005b83811015611e8d578082015181840152602081019050611e72565b83811115611e9c576000848401525b50505050565b611eab82611f31565b810181811067ffffffffffffffff82111715611eca57611ec9611f02565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f7468652072657175657374656420746f6b656e206f6e20756e6973776170206d60008201527f75737420626520746865207061796d656e742063757272656e63790000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b61206181611d9a565b811461206c57600080fd5b50565b61207881611dac565b811461208357600080fd5b50565b61208f81611db8565b811461209a57600080fd5b50565b6120a681611dea565b81146120b157600080fd5b5056fea2646970667358221220424bf4ef698e906437ecf65729dc6235f549215082d70a1fe8e632443c39fb5f64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20SwapToConversion__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IUniswapV2Router02__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IUniswapV2Router02__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToPay__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_swapRouterAddress",type:"address"},{internalType:"address",name:"_paymentProxyAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approvePaymentProxyToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_erc20Address",type:"address"}],name:"approveRouterToSpend",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"contract IERC20FeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"setPaymentProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newSwapRouterAddress",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"swapRouter",outputs:[{internalType:"contract IUniswapV2Router02",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_amountInMax",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_deadline",type:"uint256"}],name:"swapTransferWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5060405162001fb038038062001fb08339818101604052810190620000379190620001c4565b620000576200004b620000e160201b60201c565b620000e960201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000253565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620001be8162000239565b92915050565b60008060408385031215620001d857600080fd5b6000620001e885828601620001ad565b9250506020620001fb85828601620001ad565b9150509250929050565b6000620002128262000219565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620002448162000205565b81146200025057600080fd5b50565b611d4d80620002636000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461011f578063a09b241d1461013d578063c0d7865514610159578063c31c9c0714610175578063f2fde38b146101935761009e565b806330e175c9146100a35780633cd3efef146100bf578063715018a6146100dd5780637262b4c5146100e75780638d09fe2b14610103575b600080fd5b6100bd60048036038101906100b89190611370565b6101af565b005b6100c761022c565b6040516100d491906117e6565b60405180910390f35b6100e5610252565b005b61010160048036038101906100fc9190611370565b6102da565b005b61011d60048036038101906101189190611399565b61039a565b005b610127610b03565b60405161013491906116d8565b60405180910390f35b61015760048036038101906101529190611370565b610b2c565b005b610173600480360381019061016e9190611370565b610ba9565b005b61017d610c69565b60405161018a9190611801565b60405180910390f35b6101ad60048036038101906101a89190611370565b610c8f565b005b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610226600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d879092919063ffffffff16565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61025a610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610278610b03565b73ffffffffffffffffffffffffffffffffffffffff16146102ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c59061183c565b60405180910390fd5b6102d86000610ec3565b565b6102e2610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610300610b03565b73ffffffffffffffffffffffffffffffffffffffff1614610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061183c565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000878760008181106103d6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103eb9190611370565b90506000888860018b8b90506104019190611a16565b818110610437577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061044c9190611370565b90506000858c61045c91906119c0565b90508a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161049a9291906116f3565b60206040518083038186803b1580156104b257600080fd5b505afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea91906114ee565b1161052a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105219061185c565b60405180910390fd5b61055733308d8673ffffffffffffffffffffffffffffffffffffffff16610f87909392919063ffffffff16565b610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d9061187c565b60405180910390fd5b8a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105f49291906116f3565b60206040518083038186803b15801561060c57600080fd5b505afa158015610620573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064491906114ee565b101561065457610653836101af565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee828d8d8d308a6040518763ffffffff1660e01b81526004016106b99695949392919061189c565b600060405180830381600087803b1580156106d357600080fd5b505af11580156106e7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107109190611484565b50808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040161076f9291906116f3565b60206040518083038186803b15801561078757600080fd5b505afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf91906114ee565b10156107cf576107ce82610b2c565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d838f8f8c8c8c8c6040518863ffffffff1660e01b81526004016108369796959493929190611753565b600060405180830381600087803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b5050505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108a391906116d8565b60206040518083038186803b1580156108bb57600080fd5b505afa1580156108cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f391906114ee565b11156109ae576109ac338473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161093691906116d8565b60206040518083038186803b15801561094e57600080fd5b505afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098691906114ee565b8573ffffffffffffffffffffffffffffffffffffffff166110be9092919063ffffffff16565b505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109e991906116d8565b60206040518083038186803b158015610a0157600080fd5b505afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3991906114ee565b1115610af457610af2338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a7c91906116d8565b60206040518083038186803b158015610a9457600080fd5b505afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc91906114ee565b8473ffffffffffffffffffffffffffffffffffffffff166110be9092919063ffffffff16565b505b50505050505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610ba3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d879092919063ffffffff16565b50505050565b610bb1610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610bcf610b03565b73ffffffffffffffffffffffffffffffffffffffff1614610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c9061183c565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c97610ebb565b73ffffffffffffffffffffffffffffffffffffffff16610cb5610b03565b73ffffffffffffffffffffffffffffffffffffffff1614610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d029061183c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d729061181c565b60405180910390fd5b610d8481610ec3565b50565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610db69291906117bd565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e4091906116c1565b6000604051808303816000865af19150503d8060008114610e7d576040519150601f19603f3d011682016040523d82523d6000602084013e610e82565b606091505b5091509150818015610eb05750600081511480610eaf575080806020019051810190610eae91906114c5565b5b5b925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008673ffffffffffffffffffffffffffffffffffffffff16868686604051602401610fb89392919061171c565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161104291906116c1565b6000604051808303816000865af19150503d806000811461107f576040519150601f19603f3d011682016040523d82523d6000602084013e611084565b606091505b50915091508180156110b257506000815114806110b15750808060200190518101906110b091906114c5565b5b5b92505050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1685856040516024016110ed9291906117bd565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161117791906116c1565b6000604051808303816000865af19150503d80600081146111b4576040519150601f19603f3d011682016040523d82523d6000602084013e6111b9565b606091505b50915091508180156111e757506000815114806111e65750808060200190518101906111e591906114c5565b5b5b925050509392505050565b60006112056112008461191d565b6118f8565b9050808382526020820190508285602086028201111561122457600080fd5b60005b85811015611254578161123a888261135b565b845260208401935060208301925050600181019050611227565b5050509392505050565b60008135905061126d81611cd2565b92915050565b60008083601f84011261128557600080fd5b8235905067ffffffffffffffff81111561129e57600080fd5b6020830191508360208202830111156112b657600080fd5b9250929050565b600082601f8301126112ce57600080fd5b81516112de8482602086016111f2565b91505092915050565b6000815190506112f681611ce9565b92915050565b60008083601f84011261130e57600080fd5b8235905067ffffffffffffffff81111561132757600080fd5b60208301915083600182028301111561133f57600080fd5b9250929050565b60008135905061135581611d00565b92915050565b60008151905061136a81611d00565b92915050565b60006020828403121561138257600080fd5b60006113908482850161125e565b91505092915050565b6000806000806000806000806000806101008b8d0312156113b957600080fd5b60006113c78d828e0161125e565b9a505060206113d88d828e01611346565b99505060406113e98d828e01611346565b98505060608b013567ffffffffffffffff81111561140657600080fd5b6114128d828e01611273565b975097505060808b013567ffffffffffffffff81111561143157600080fd5b61143d8d828e016112fc565b955095505060a06114508d828e01611346565b93505060c06114618d828e0161125e565b92505060e06114728d828e01611346565b9150509295989b9194979a5092959850565b60006020828403121561149657600080fd5b600082015167ffffffffffffffff8111156114b057600080fd5b6114bc848285016112bd565b91505092915050565b6000602082840312156114d757600080fd5b60006114e5848285016112e7565b91505092915050565b60006020828403121561150057600080fd5b600061150e8482850161135b565b91505092915050565b6000611523838361152f565b60208301905092915050565b61153881611a4a565b82525050565b61154781611a4a565b82525050565b6000611559838561196b565b935061156482611949565b8060005b8581101561159d5761157a82846119a9565b6115848882611517565b975061158f8361195e565b925050600181019050611568565b5085925050509392505050565b60006115b6838561197c565b93506115c3838584611ada565b6115cc83611bab565b840190509392505050565b60006115e282611953565b6115ec818561198d565b93506115fc818560208601611ae9565b80840191505092915050565b61161181611a92565b82525050565b61162081611ab6565b82525050565b6000611633602683611998565b915061163e82611bbc565b604082019050919050565b6000611656602083611998565b915061166182611c0b565b602082019050919050565b6000611679602983611998565b915061168482611c34565b604082019050919050565b600061169c603383611998565b91506116a782611c83565b604082019050919050565b6116bb81611a88565b82525050565b60006116cd82846115d7565b915081905092915050565b60006020820190506116ed600083018461153e565b92915050565b6000604082019050611708600083018561153e565b611715602083018461153e565b9392505050565b6000606082019050611731600083018661153e565b61173e602083018561153e565b61174b60408301846116b2565b949350505050565b600060c082019050611768600083018a61153e565b611775602083018961153e565b61178260408301886116b2565b81810360608301526117958186886115aa565b90506117a460808301856116b2565b6117b160a083018461153e565b98975050505050505050565b60006040820190506117d2600083018561153e565b6117df60208301846116b2565b9392505050565b60006020820190506117fb6000830184611608565b92915050565b60006020820190506118166000830184611617565b92915050565b6000602082019050818103600083015261183581611626565b9050919050565b6000602082019050818103600083015261185581611649565b9050919050565b600060208201905081810360008301526118758161166c565b9050919050565b600060208201905081810360008301526118958161168f565b9050919050565b600060a0820190506118b160008301896116b2565b6118be60208301886116b2565b81810360408301526118d181868861154d565b90506118e0606083018561153e565b6118ed60808301846116b2565b979650505050505050565b6000611902611913565b905061190e8282611b1c565b919050565b6000604051905090565b600067ffffffffffffffff82111561193857611937611b7c565b5b602082029050602081019050919050565b6000819050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006119b8602084018461125e565b905092915050565b60006119cb82611a88565b91506119d683611a88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a0b57611a0a611b4d565b5b828201905092915050565b6000611a2182611a88565b9150611a2c83611a88565b925082821015611a3f57611a3e611b4d565b5b828203905092915050565b6000611a5582611a68565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611a9d82611aa4565b9050919050565b6000611aaf82611a68565b9050919050565b6000611ac182611ac8565b9050919050565b6000611ad382611a68565b9050919050565b82818337600083830152505050565b60005b83811015611b07578082015181840152602081019050611aec565b83811115611b16576000848401525b50505050565b611b2582611bab565b810181811067ffffffffffffffff82111715611b4457611b43611b7c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f742073756666696369656e7420616c6c6f77616e636520666f722073776160008201527f7020746f207061792e0000000000000000000000000000000000000000000000602082015250565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b611cdb81611a4a565b8114611ce657600080fd5b50565b611cf281611a5c565b8114611cfd57600080fd5b50565b611d0981611a88565b8114611d1457600080fd5b5056fea264697066735822122091a12046c6d1efb2e759ff8c43025d2561860589c8fe777df5eab4d7cc9348ab64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20SwapToPay__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthConversionProxy__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"},{internalType:"address",name:"_nativeTokenHash",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"maxRateTimespan",type:"uint256"}],name:"TransferWithConversionAndReference",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeTokenHash",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"address[]",name:"_path",type:"address[]"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"},{internalType:"uint256",name:"_maxRateTimespan",type:"uint256"}],name:"transferWithReferenceAndFee",outputs:[],stateMutability:"payable",type:"function"}],f="0x60806040523480156200001157600080fd5b506040516200108238038062001082833981810160405281019062000037919062000122565b600160008190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001c6565b6000815190506200011c81620001ac565b92915050565b6000806000606084860312156200013857600080fd5b600062000148868287016200010b565b93505060206200015b868287016200010b565b92505060406200016e868287016200010b565b9150509250925092565b600062000185826200018c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001b78162000178565b8114620001c357600080fd5b50565b610eac80620001d66000396000f3fe60806040526004361061003f5760003560e01c80633cd3efef14610044578063946647f11461006f578063ac473c8a1461009a578063d515bb03146100b6575b600080fd5b34801561005057600080fd5b506100596100e1565b60405161006691906109e7565b60405180910390f35b34801561007b57600080fd5b50610084610107565b6040516100919190610a80565b60405180910390f35b6100b460048036038101906100af91906106f4565b61012d565b005b3480156100c257600080fd5b506100cb610482565b6040516100d891906109e7565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878760018a8a90506101789190610c3c565b8181106101ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101c391906106cb565b73ffffffffffffffffffffffffffffffffffffffff1614610219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021090610a9b565b60405180910390fd5b600080610269898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b87866104a8565b915091506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c848a8a868a6040516024016102c396959493929190610a02565b6040516020818303038152906040527fd7c95e98000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161034d91906109d0565b600060405180830381855af49150503d8060008114610388576040519150601f19603f3d011682016040523d82523d6000602084013e61038d565b606091505b50509050806103d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c890610adb565b60405180910390fd5b87876040516103e19291906109b7565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8c8c8c6000818110610445577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061045a91906106cb565b898860405161046c9493929190610afb565b60405180910390a2505050505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b815260040161050b9190610a5e565b60606040518083038186803b15801561052357600080fd5b505afa158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b91906107ca565b925092509250600086148061057b57508582426105789190610c3c565b11155b6105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b190610abb565b60405180910390fd5b8083896105c79190610be2565b6105d19190610bb1565b94508083886105e09190610be2565b6105ea9190610bb1565b935050505094509492505050565b60008135905061060781610e48565b92915050565b60008083601f84011261061f57600080fd5b8235905067ffffffffffffffff81111561063857600080fd5b60208301915083602082028301111561065057600080fd5b9250929050565b60008083601f84011261066957600080fd5b8235905067ffffffffffffffff81111561068257600080fd5b60208301915083600182028301111561069a57600080fd5b9250929050565b6000813590506106b081610e5f565b92915050565b6000815190506106c581610e5f565b92915050565b6000602082840312156106dd57600080fd5b60006106eb848285016105f8565b91505092915050565b600080600080600080600080600060e08a8c03121561071257600080fd5b60006107208c828d016105f8565b99505060206107318c828d016106a1565b98505060408a013567ffffffffffffffff81111561074e57600080fd5b61075a8c828d0161060d565b975097505060608a013567ffffffffffffffff81111561077957600080fd5b6107858c828d01610657565b955095505060806107988c828d016106a1565b93505060a06107a98c828d016105f8565b92505060c06107ba8c828d016106a1565b9150509295985092959850929598565b6000806000606084860312156107df57600080fd5b60006107ed868287016106b6565b93505060206107fe868287016106b6565b925050604061080f868287016106b6565b9150509250925092565b60006108258383610831565b60208301905092915050565b61083a81610c70565b82525050565b61084981610c70565b82525050565b600061085a82610b50565b6108648185610b73565b935061086f83610b40565b8060005b838110156108a05781516108878882610819565b975061089283610b66565b925050600181019050610873565b5085935050505092915050565b60006108b98385610b84565b93506108c6838584610cd0565b6108cf83610d70565b840190509392505050565b60006108e68385610b95565b93506108f3838584610cd0565b82840190509392505050565b600061090a82610b5b565b6109148185610b95565b9350610924818560208601610cdf565b80840191505092915050565b61093981610cac565b82525050565b600061094c602983610ba0565b915061095782610d81565b604082019050919050565b600061096f601b83610ba0565b915061097a82610dd0565b602082019050919050565b6000610992603783610ba0565b915061099d82610df9565b604082019050919050565b6109b181610ca2565b82525050565b60006109c48284866108da565b91508190509392505050565b60006109dc82846108ff565b915081905092915050565b60006020820190506109fc6000830184610840565b92915050565b600060a082019050610a176000830189610840565b610a2460208301886109a8565b8181036040830152610a378186886108ad565b9050610a4660608301856109a8565b610a536080830184610840565b979650505050505050565b60006020820190508181036000830152610a78818461084f565b905092915050565b6000602082019050610a956000830184610930565b92915050565b60006020820190508181036000830152610ab48161093f565b9050919050565b60006020820190508181036000830152610ad481610962565b9050919050565b60006020820190508181036000830152610af481610985565b9050919050565b6000608082019050610b1060008301876109a8565b610b1d6020830186610840565b610b2a60408301856109a8565b610b3760608301846109a8565b95945050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610bbc82610ca2565b9150610bc783610ca2565b925082610bd757610bd6610d41565b5b828204905092915050565b6000610bed82610ca2565b9150610bf883610ca2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610c3157610c30610d12565b5b828202905092915050565b6000610c4782610ca2565b9150610c5283610ca2565b925082821015610c6557610c64610d12565b5b828203905092915050565b6000610c7b82610c82565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610cb782610cbe565b9050919050565b6000610cc982610c82565b9050919050565b82818337600083830152505050565b60005b83811015610cfd578082015181840152602081019050610ce2565b83811115610d0c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f7061796d656e742063757272656e6379206d75737420626520746865206e617460008201527f69766520746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b7f7061796d656e7450726f7879207472616e73666572457861637445746857697460008201527f685265666572656e6365416e64466565206661696c6564000000000000000000602082015250565b610e5181610c70565b8114610e5c57600080fd5b50565b610e6881610ca2565b8114610e7357600080fd5b5056fea26469706673582212201c14cba0ecf010daa824fe2b3ba5e7905a2623eaf6cf56a93c22f18949f3d9b864736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r,n){return super.deploy(e,t,r,n||{})}getDeployTransaction(e,t,r,n){return super.getDeployTransaction(e,t,r,n||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.EthConversionProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumFeeProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address payable",name:"_feeAddress",type:"address"}],name:"transferExactEthWithReferenceAndFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address payable",name:"_feeAddress",type:"address"}],name:"transferWithReferenceAndFee",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b5060016000819055506106cb806100286000396000f3fe60806040526004361061002d5760003560e01c8063b868980b14610072578063d7c95e981461008e5761006d565b3661006d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610064906104d5565b60405180910390fd5b600080fd5b61008c600480360381019061008791906102dc565b6100aa565b005b6100a860048036038101906100a3919061035c565b6100ca565b005b6100c38583346100ba9190610531565b868686866100ca565b5050505050565b60026000541415610110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610107906104f5565b60405180910390fd5b60026000819055508573ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015801561015e573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101a5573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc8387346101cd9190610531565b6101d79190610531565b9081150290604051600060405180830381858888f19350505050158015610202573d6000803e3d6000fd5b508383604051610213929190610477565b60405180910390207fa1c241e337c4610a9d0f881111e977e9dc8690c85fe2108897bb1483c66e6a96878785856040516102509493929190610490565b60405180910390a26001600081905550505050505050565b60008135905061027781610667565b92915050565b60008083601f84011261028f57600080fd5b8235905067ffffffffffffffff8111156102a857600080fd5b6020830191508360018202830111156102c057600080fd5b9250929050565b6000813590506102d68161067e565b92915050565b6000806000806000608086880312156102f457600080fd5b600061030288828901610268565b955050602086013567ffffffffffffffff81111561031f57600080fd5b61032b8882890161027d565b9450945050604061033e888289016102c7565b925050606061034f88828901610268565b9150509295509295909350565b60008060008060008060a0878903121561037557600080fd5b600061038389828a01610268565b965050602061039489828a016102c7565b955050604087013567ffffffffffffffff8111156103b157600080fd5b6103bd89828a0161027d565b945094505060606103d089828a016102c7565b92505060806103e189828a01610268565b9150509295509295509295565b6103f7816105a1565b82525050565b60006104098385610515565b93506104168385846105d7565b82840190509392505050565b600061042f601383610520565b915061043a82610615565b602082019050919050565b6000610452601f83610520565b915061045d8261063e565b602082019050919050565b61047181610597565b82525050565b60006104848284866103fd565b91508190509392505050565b60006080820190506104a560008301876103ee565b6104b26020830186610468565b6104bf6040830185610468565b6104cc60608301846103ee565b95945050505050565b600060208201905081810360008301526104ee81610422565b9050919050565b6000602082019050818103600083015261050e81610445565b9050919050565b600081905092915050565b600082825260208201905092915050565b600061053c82610597565b915061054783610597565b92508282101561055a576105596105e6565b5b828203905092915050565b600061057082610577565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006105ac826105b3565b9050919050565b60006105be826105c5565b9050919050565b60006105d082610577565b9050919050565b82818337600083830152505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61067081610565565b811461067b57600080fd5b50565b61068781610597565b811461069257600080fd5b5056fea2646970667358221220733f203f1939609e5ea96371e4fe97a90bc908049eed537b7c21229b8d848ee764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.EthereumFeeProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"}],name:"TransferWithReference",type:"event"},{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"bytes",name:"_paymentReference",type:"bytes"}],name:"transferWithReference",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x608060405234801561001057600080fd5b506103b2806100206000396000f3fe6080604052600436106100225760003560e01c8063eb7d8df31461006757610062565b36610062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100599061027f565b60405180910390fd5b600080fd5b610081600480360381019061007c919061017f565b610083565b005b8273ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156100c9573d6000803e3d6000fd5b5081816040516100da92919061023d565b60405180910390207ff20789bd5e67749fbe748d26a9ffacd11036adee6a64a8dbc70cc37a98b4e5428434604051610113929190610256565b60405180910390a2505050565b60008135905061012f81610365565b92915050565b60008083601f84011261014757600080fd5b8235905067ffffffffffffffff81111561016057600080fd5b60208301915083600182028301111561017857600080fd5b9250929050565b60008060006040848603121561019457600080fd5b60006101a286828701610120565b935050602084013567ffffffffffffffff8111156101bf57600080fd5b6101cb86828701610135565b92509250509250925092565b6101e0816102f7565b82525050565b60006101f2838561029f565b93506101ff83858461032d565b82840190509392505050565b60006102186013836102aa565b91506102238261033c565b602082019050919050565b610237816102ed565b82525050565b600061024a8284866101e6565b91508190509392505050565b600060408201905061026b60008301856101d7565b610278602083018461022e565b9392505050565b600060208201905081810360008301526102988161020b565b9050919050565b600081905092915050565b600082825260208201905092915050565b60006102c6826102cd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061030282610309565b9050919050565b60006103148261031b565b9050919050565b6000610326826102cd565b9050919050565b82818337600083830152505050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b61036e816102bb565b811461037957600080fd5b5056fea2646970667358221220a24880e669bdf0243643408743f2b697f8fd9eeb996e0ab69e4bdf8044bcaf7764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.EthereumProxy__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FakeSwapRouter__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"}],f="0x608060405234801561001057600080fd5b50610d0b806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638803dbee14610030575b600080fd5b61004a60048036038101906100459190610782565b610060565b60405161005791906109e3565b60405180910390f35b606081428110156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d90610a25565b60405180910390fd5b600267ffffffffffffffff8111156100e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156101155781602001602082028036833780820191505090505b5091508782600081518110610153577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505060028861016c9190610ac5565b826001815181106101a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505086826001815181106101ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101511115610236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022d90610a45565b60405180910390fd5b600086866000818110610272577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906102879190610707565b90506000878760018181106102c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906102da9190610707565b905083600081518110610316577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103579190610968565b60206040518083038186803b15801561036f57600080fd5b505afa158015610383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a79190610759565b116103e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103de90610a05565b60405180910390fd5b610455333086600181518110610426577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518573ffffffffffffffffffffffffffffffffffffffff16610532909392919063ffffffff16565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87866000815181106104ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016104d29291906109ba565b602060405180830381600087803b1580156104ec57600080fd5b505af1158015610500573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105249190610730565b505050509695505050505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff1686868660405160240161056393929190610983565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105ed9190610951565b6000604051808303816000865af19150503d806000811461062a576040519150601f19603f3d011682016040523d82523d6000602084013e61062f565b606091505b509150915081801561065d575060008151148061065c57508080602001905181019061065b9190610730565b5b5b92505050949350505050565b60008135905061067881610c90565b92915050565b60008083601f84011261069057600080fd5b8235905067ffffffffffffffff8111156106a957600080fd5b6020830191508360208202830111156106c157600080fd5b9250929050565b6000815190506106d781610ca7565b92915050565b6000813590506106ec81610cbe565b92915050565b60008151905061070181610cbe565b92915050565b60006020828403121561071957600080fd5b600061072784828501610669565b91505092915050565b60006020828403121561074257600080fd5b6000610750848285016106c8565b91505092915050565b60006020828403121561076b57600080fd5b6000610779848285016106f2565b91505092915050565b60008060008060008060a0878903121561079b57600080fd5b60006107a989828a016106dd565b96505060206107ba89828a016106dd565b955050604087013567ffffffffffffffff8111156107d757600080fd5b6107e389828a0161067e565b945094505060606107f689828a01610669565b925050608061080789828a016106dd565b9150509295509295509295565b60006108208383610933565b60208301905092915050565b61083581610b1f565b82525050565b600061084682610a75565b6108508185610a98565b935061085b83610a65565b8060005b8381101561088c5781516108738882610814565b975061087e83610a8b565b92505060018101905061085f565b5085935050505092915050565b60006108a482610a80565b6108ae8185610aa9565b93506108be818560208601610b67565b80840191505092915050565b60006108d7603983610ab4565b91506108e282610bc9565b604082019050919050565b60006108fa601883610ab4565b915061090582610c18565b602082019050919050565b600061091d602783610ab4565b915061092882610c41565b604082019050919050565b61093c81610b5d565b82525050565b61094b81610b5d565b82525050565b600061095d8284610899565b915081905092915050565b600060208201905061097d600083018461082c565b92915050565b6000606082019050610998600083018661082c565b6109a5602083018561082c565b6109b26040830184610942565b949350505050565b60006040820190506109cf600083018561082c565b6109dc6020830184610942565b9392505050565b600060208201905081810360008301526109fd818461083b565b905092915050565b60006020820190508181036000830152610a1e816108ca565b9050919050565b60006020820190508181036000830152610a3e816108ed565b9050919050565b60006020820190508181036000830152610a5e81610910565b9050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610ad082610b5d565b9150610adb83610b5d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b1457610b13610b9a565b5b828202905092915050565b6000610b2a82610b3d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610b85578082015181840152602081019050610b6a565b83811115610b94576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f546573742063616e6e6f742070726f636565642c206c61636b206f6620746f6b60008201527f656e7320696e2066616b65207377617020636f6e747261637400000000000000602082015250565b7f556e69737761705632526f757465723a20455850495245440000000000000000600082015250565b7f556e69737761705632526f757465723a204558434553534956455f494e50555460008201527f5f414d4f554e5400000000000000000000000000000000000000000000000000602082015250565b610c9981610b1f565b8114610ca457600080fd5b50565b610cb081610b31565b8114610cbb57600080fd5b50565b610cc781610b5d565b8114610cd257600080fd5b5056fea2646970667358221220889db6f7c44ec95ed339385ba344dd4c0ee6fb30d7bbf0eff15300e5dcc8904064736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.FakeSwapRouter__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20FeeProxy__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"bytes",name:"paymentReference",type:"bytes"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"feeAddress",type:"address"}],name:"TransferWithReferenceAndFee",type:"event"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_paymentReference",type:"bytes"},{internalType:"uint256",name:"_feeAmount",type:"uint256"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"transferFromWithReferenceAndFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.IERC20FeeProxy__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistAdminRole__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.WhitelistAdminRole__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistedRole__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelisted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"}];class f{static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.WhitelistedRole__factory=f,f.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Migrations__factory=void 0;const n=r(6),i=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"lastCompletedMigration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"completed",type:"uint256"}],name:"setCompleted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAddress",type:"address"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610389806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b1461006d578063fbdbad3c1461008b578063fdacd576146100a9575b600080fd5b61006b60048036038101906100669190610243565b6100c5565b005b610075610190565b60405161008291906102b3565b60405180910390f35b6100936101b4565b6040516100a091906102ce565b60405180910390f35b6100c360048036038101906100be919061026c565b6101ba565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018d5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040161015991906102ce565b600060405180830381600087803b15801561017357600080fd5b505af1158015610187573d6000803e3d6000fd5b50505050505b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561021657806001819055505b50565b60008135905061022881610325565b92915050565b60008135905061023d8161033c565b92915050565b60006020828403121561025557600080fd5b600061026384828501610219565b91505092915050565b60006020828403121561027e57600080fd5b600061028c8482850161022e565b91505092915050565b61029e816102e9565b82525050565b6102ad8161031b565b82525050565b60006020820190506102c86000830184610295565b92915050565b60006020820190506102e360008301846102a4565b92915050565b60006102f4826102fb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61032e816102e9565b811461033957600080fd5b50565b6103458161031b565b811461035057600080fd5b5056fea264697066735822122055ac54099b548d7b022f46152a2d84bd36daa5a418bbaa2617485bfacc38c31164736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.Migrations__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestHashStorage__factory=void 0;const n=r(6),i=[{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"hash",type:"string"},{indexed:!1,internalType:"address",name:"hashSubmitter",type:"address"},{indexed:!1,internalType:"bytes",name:"feesParameters",type:"bytes"}],name:"NewHash",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistedRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_hash",type:"string"},{internalType:"bytes",name:"_feesParameters",type:"bytes"}],name:"declareNewHash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelisted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceWhitelisted",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b6200033a565b600033905090565b6200005b816000620000a160201b620003741790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620000b382826200015460201b60201c565b15620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed906200026d565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bf906200028f565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200022e601f83620002b1565b91506200023b82620002c2565b602082019050919050565b600062000255602283620002b1565b91506200026282620002eb565b604082019050919050565b6000602082019050818103600083015262000288816200021f565b9050919050565b60006020820190508181036000830152620002aa8162000246565b9050919050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b610c9f806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637362d9c81161005b5780637362d9c8146100ff578063bb5f747b1461011b578063d6cd94731461014b578063fe8cc9621461015557610088565b806310154bad1461008d578063291d9549146100a95780633af32abf146100c55780634c5a628c146100f5575b600080fd5b6100a760048036038101906100a291906107a4565b610171565b005b6100c360048036038101906100be91906107a4565b6101cc565b005b6100df60048036038101906100da91906107a4565b610227565b6040516100ec9190610969565b60405180910390f35b6100fd610244565b005b610119600480360381019061011491906107a4565b610256565b005b610135600480360381019061013091906107a4565b6102b1565b6040516101429190610969565b60405180910390f35b6101536102ce565b005b61016f600480360381019061016a91906107cd565b6102e0565b005b61018161017c61041c565b6102b1565b6101c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b790610a2d565b60405180910390fd5b6101c981610424565b50565b6101dc6101d761041c565b6102b1565b61021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021290610a2d565b60405180910390fd5b6102248161047e565b50565b600061023d8260016104d890919063ffffffff16565b9050919050565b61025461024f61041c565b6105a0565b565b61026661026161041c565b6102b1565b6102a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029c90610a2d565b60405180910390fd5b6102ae816105fa565b50565b60006102c78260006104d890919063ffffffff16565b9050919050565b6102de6102d961041c565b61047e565b565b6102f06102eb61041c565b610227565b61032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032690610a4d565b60405180910390fd5b7f18d417de4779c6e73fd772de6d0f29ed8ff746805f1c997ef63a124ffb3f38e08484338585604051610366959493929190610984565b60405180910390a150505050565b61037e82826104d8565b156103be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b5906109cd565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b61043881600161037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f60405160405180910390a250565b61049281600161065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054090610a0d565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6105b481600061065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61060e81600061037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b61065e82826104d8565b61069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906109ed565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008135905061070a81610c52565b92915050565b60008083601f84011261072257600080fd5b8235905067ffffffffffffffff81111561073b57600080fd5b60208301915083600182028301111561075357600080fd5b9250929050565b60008083601f84011261076c57600080fd5b8235905067ffffffffffffffff81111561078557600080fd5b60208301915083600182028301111561079d57600080fd5b9250929050565b6000602082840312156107b657600080fd5b60006107c4848285016106fb565b91505092915050565b600080600080604085870312156107e357600080fd5b600085013567ffffffffffffffff8111156107fd57600080fd5b6108098782880161075a565b9450945050602085013567ffffffffffffffff81111561082857600080fd5b61083487828801610710565b925092505092959194509250565b61084b81610a8f565b82525050565b61085a81610aa1565b82525050565b600061086c8385610a6d565b9350610879838584610acd565b61088283610adc565b840190509392505050565b60006108998385610a7e565b93506108a6838584610acd565b6108af83610adc565b840190509392505050565b60006108c7601f83610a7e565b91506108d282610aed565b602082019050919050565b60006108ea602183610a7e565b91506108f582610b16565b604082019050919050565b600061090d602283610a7e565b915061091882610b65565b604082019050919050565b6000610930604083610a7e565b915061093b82610bb4565b604082019050919050565b6000610953603a83610a7e565b915061095e82610c03565b604082019050919050565b600060208201905061097e6000830184610851565b92915050565b6000606082019050818103600083015261099f81878961088d565b90506109ae6020830186610842565b81810360408301526109c1818486610860565b90509695505050505050565b600060208201905081810360008301526109e6816108ba565b9050919050565b60006020820190508181036000830152610a06816108dd565b9050919050565b60006020820190508181036000830152610a2681610900565b9050919050565b60006020820190508181036000830152610a4681610923565b9050919050565b60006020820190508181036000830152610a6681610946565b9050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610a9a82610aad565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b7f57686974656c6973746564526f6c653a2063616c6c657220646f6573206e6f7460008201527f2068617665207468652057686974656c697374656420726f6c65000000000000602082015250565b610c5b81610a8f565b8114610c6657600080fd5b5056fea2646970667358221220ffe461bd275a919bf65fdebe40add769506e81430a17aff4c966ea5a01380cc164736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.RequestHashStorage__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestOpenHashSubmitter__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_addressRequestHashStorage",type:"address"},{internalType:"address payable",name:"_addressBurner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"burnerAddress",type:"address"}],name:"UpdatedBurnerContract",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"minimumFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesNumerator",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesDenominator",type:"uint256"}],name:"UpdatedFeeParameters",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"threshold",type:"uint256"}],name:"UpdatedMinimumFeeThreshold",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_contentSize",type:"uint256"}],name:"getFeesAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"minimumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesDenominator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesNumerator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestBurnerContract",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"requestHashStorage",outputs:[{internalType:"contract RequestHashStorage",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_minimumFee",type:"uint256"},{internalType:"uint256",name:"_rateFeesNumerator",type:"uint256"},{internalType:"uint256",name:"_rateFeesDenominator",type:"uint256"}],name:"setFeeParameters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_requestBurnerContract",type:"address"}],name:"setRequestBurnerContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_hash",type:"string"},{internalType:"bytes",name:"_feesParameters",type:"bytes"}],name:"submitHash",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],f="0x60806040523480156200001157600080fd5b506040516200199a3803806200199a8339818101604052810190620000379190620002f8565b80620000586200004c620000e360201b60201c565b620000eb60201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620004d0565b600033905090565b620001068160006200014c60201b620006fc1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200015e8282620001ff60201b60201c565b15620001a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001989062000387565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000273576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026a90620003a9565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600081519050620002db816200049c565b92915050565b600081519050620002f281620004b6565b92915050565b600080604083850312156200030c57600080fd5b60006200031c85828601620002ca565b92505060206200032f85828601620002e1565b9150509250929050565b600062000348601f83620003cb565b9150620003558262000424565b602082019050919050565b60006200036f602283620003cb565b91506200037c826200044d565b604082019050919050565b60006020820190508181036000830152620003a28162000339565b9050919050565b60006020820190508181036000830152620003c48162000360565b9050919050565b600082825260208201905092915050565b6000620003e98262000404565b9050919050565b6000620003fd8262000404565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b620004a781620003dc565b8114620004b357600080fd5b50565b620004c181620003f0565b8114620004cd57600080fd5b50565b6114ba80620004e06000396000f3fe6080604052600436106100ab5760003560e01c806375c268f31161006457806375c268f3146101cb5780638f5b87e1146101f6578063bb5f747b14610233578063cb2537cb14610270578063e40e845714610299578063f76f2256146102c4576100eb565b80631a7626e7146100f0578063263f6a421461011b5780634c5a628c1461014657806351a58abb1461015d578063524eb29c146101795780637362d9c8146101a2576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290610f1b565b60405180910390fd5b600080fd5b3480156100fc57600080fd5b506101056102ef565b6040516101129190610fdb565b60405180910390f35b34801561012757600080fd5b506101306102f5565b60405161013d9190610fdb565b60405180910390f35b34801561015257600080fd5b5061015b6102fb565b005b61017760048036038101906101729190610bcd565b61030d565b005b34801561018557600080fd5b506101a0600480360381019061019b9190610ba4565b610450565b005b3480156101ae57600080fd5b506101c960048036038101906101c49190610b7b565b61053c565b005b3480156101d757600080fd5b506101e0610597565b6040516101ed9190610fdb565b60405180910390f35b34801561020257600080fd5b5061021d60048036038101906102189190610c42565b61059d565b60405161022a9190610fdb565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190610b7b565b6105e9565b6040516102679190610e8a565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190610c6b565b610606565b005b3480156102a557600080fd5b506102ae6106b0565b6040516102bb9190610e6f565b60405180910390f35b3480156102d057600080fd5b506102d96106d6565b6040516102e69190610ea5565b60405180910390f35b60015481565b60025481565b61030b6103066107a4565b6107ac565b565b600061035e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506000610806565b60001c90503461036d8261059d565b146103ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a490610f3b565b60405180910390fd5b6103b634610873565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe8cc962868686866040518563ffffffff1660e01b81526004016104179493929190610ec0565b600060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050505050505050565b61046061045b6107a4565b6105e9565b61049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690610fbb565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516105319190610e54565b60405180910390a150565b61054c6105476107a4565b6105e9565b61058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290610fbb565b60405180910390fd5b610594816108df565b50565b60035481565b600080600254836105ae91906110d6565b90506000600354146105cb57600354816105c891906110a5565b90505b60015481116105df576001549150506105e4565b809150505b919050565b60006105ff82600061093990919063ffffffff16565b9050919050565b6106166106116107a4565b6105e9565b610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c90610fbb565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d166001546002546003546040516106a393929190610ff6565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107068282610939565b15610746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073d90610efb565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6107c0816000610a0190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b600080821015801561082557508251602083610822919061104f565b11155b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90610f5b565b60405180910390fd5b81602001830151905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b6108f38160006106fc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190610f9b565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610a0b8282610939565b610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190610f7b565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600081359050610ab78161143f565b92915050565b600081359050610acc81611456565b92915050565b60008083601f840112610ae457600080fd5b8235905067ffffffffffffffff811115610afd57600080fd5b602083019150836001820283011115610b1557600080fd5b9250929050565b60008083601f840112610b2e57600080fd5b8235905067ffffffffffffffff811115610b4757600080fd5b602083019150836001820283011115610b5f57600080fd5b9250929050565b600081359050610b758161146d565b92915050565b600060208284031215610b8d57600080fd5b6000610b9b84828501610aa8565b91505092915050565b600060208284031215610bb657600080fd5b6000610bc484828501610abd565b91505092915050565b60008060008060408587031215610be357600080fd5b600085013567ffffffffffffffff811115610bfd57600080fd5b610c0987828801610b1c565b9450945050602085013567ffffffffffffffff811115610c2857600080fd5b610c3487828801610ad2565b925092505092959194509250565b600060208284031215610c5457600080fd5b6000610c6284828501610b66565b91505092915050565b600080600060608486031215610c8057600080fd5b6000610c8e86828701610b66565b9350506020610c9f86828701610b66565b9250506040610cb086828701610b66565b9150509250925092565b610cc38161118a565b82525050565b610cd281611142565b82525050565b610ce181611154565b82525050565b6000610cf3838561102d565b9350610d008385846111e4565b610d0983611251565b840190509392505050565b610d1d8161119c565b82525050565b6000610d2f838561103e565b9350610d3c8385846111e4565b610d4583611251565b840190509392505050565b6000610d5d601f8361103e565b9150610d6882611262565b602082019050919050565b6000610d8060138361103e565b9150610d8b8261128b565b602082019050919050565b6000610da360218361103e565b9150610dae826112b4565b604082019050919050565b6000610dc6602b8361103e565b9150610dd182611303565b604082019050919050565b6000610de960218361103e565b9150610df482611352565b604082019050919050565b6000610e0c60228361103e565b9150610e17826113a1565b604082019050919050565b6000610e2f60408361103e565b9150610e3a826113f0565b604082019050919050565b610e4e81611180565b82525050565b6000602082019050610e696000830184610cba565b92915050565b6000602082019050610e846000830184610cc9565b92915050565b6000602082019050610e9f6000830184610cd8565b92915050565b6000602082019050610eba6000830184610d14565b92915050565b60006040820190508181036000830152610edb818688610d23565b90508181036020830152610ef0818486610ce7565b905095945050505050565b60006020820190508181036000830152610f1481610d50565b9050919050565b60006020820190508181036000830152610f3481610d73565b9050919050565b60006020820190508181036000830152610f5481610d96565b9050919050565b60006020820190508181036000830152610f7481610db9565b9050919050565b60006020820190508181036000830152610f9481610ddc565b9050919050565b60006020820190508181036000830152610fb481610dff565b9050919050565b60006020820190508181036000830152610fd481610e22565b9050919050565b6000602082019050610ff06000830184610e45565b92915050565b600060608201905061100b6000830186610e45565b6110186020830185610e45565b6110256040830184610e45565b949350505050565b600082825260208201905092915050565b600082825260208201905092915050565b600061105a82611180565b915061106583611180565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561109a576110996111f3565b5b828201905092915050565b60006110b082611180565b91506110bb83611180565b9250826110cb576110ca611222565b5b828204905092915050565b60006110e182611180565b91506110ec83611180565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611125576111246111f3565b5b828202905092915050565b600061113b82611160565b9050919050565b600061114d82611160565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611195826111c0565b9050919050565b60006111a7826111ae565b9050919050565b60006111b982611160565b9050919050565b60006111cb826111d2565b9050919050565b60006111dd82611160565b9050919050565b82818337600083830152505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b7f6d73672e76616c756520646f6573206e6f74206d61746368207468652066656560008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b61144881611130565b811461145357600080fd5b50565b61145f81611142565b811461146a57600080fd5b50565b61147681611180565b811461148157600080fd5b5056fea26469706673582212201a2f057a55813108013a5a2b269030fd94c189ce61e3904ea50909eae7f00a6464736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r){return super.deploy(e,t,r||{})}getDeployTransaction(e,t,r){return super.getDeployTransaction(e,t,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.RequestOpenHashSubmitter__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StorageFeeCollector__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address payable",name:"_requestBurnerContract",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"burnerAddress",type:"address"}],name:"UpdatedBurnerContract",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"minimumFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesNumerator",type:"uint256"},{indexed:!1,internalType:"uint256",name:"rateFeesDenominator",type:"uint256"}],name:"UpdatedFeeParameters",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"threshold",type:"uint256"}],name:"UpdatedMinimumFeeThreshold",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"WhitelistAdminRemoved",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_contentSize",type:"uint256"}],name:"getFeesAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isWhitelistAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"minimumFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesDenominator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateFeesNumerator",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestBurnerContract",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_minimumFee",type:"uint256"},{internalType:"uint256",name:"_rateFeesNumerator",type:"uint256"},{internalType:"uint256",name:"_rateFeesDenominator",type:"uint256"}],name:"setFeeParameters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_requestBurnerContract",type:"address"}],name:"setRequestBurnerContract",outputs:[],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b50604051620011a1380380620011a183398181016040528101906200003791906200029d565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000432565b600033905090565b620000c28160006200010860201b6200047d1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200011a8282620001bb60201b60201c565b156200015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001549062000317565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002269062000339565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600081519050620002978162000418565b92915050565b600060208284031215620002b057600080fd5b6000620002c08482850162000286565b91505092915050565b6000620002d8601f836200035b565b9150620002e582620003a0565b602082019050919050565b6000620002ff6022836200035b565b91506200030c82620003c9565b604082019050919050565b600060208201905081810360008301526200033281620002c9565b9050919050565b600060208201905081810360008301526200035481620002f0565b9050919050565b600082825260208201905092915050565b6000620003798262000380565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b62000423816200036c565b81146200042f57600080fd5b50565b610d5f80620004426000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806375c268f31161006657806375c268f3146101215780638f5b87e11461013f578063bb5f747b1461016f578063cb2537cb1461019f578063e40e8457146101bb5761009e565b80631a7626e7146100a3578063263f6a42146100c15780634c5a628c146100df578063524eb29c146100e95780637362d9c814610105575b600080fd5b6100ab6101d9565b6040516100b891906109f2565b60405180910390f35b6100c96101df565b6040516100d691906109f2565b60405180910390f35b6100e76101e5565b005b61010360048036038101906100fe91906107b8565b6101f7565b005b61011f600480360381019061011a919061078f565b6102e3565b005b61012961033e565b60405161013691906109f2565b60405180910390f35b610159600480360381019061015491906107e1565b610344565b60405161016691906109f2565b60405180910390f35b6101896004803603810190610184919061078f565b610390565b6040516101969190610957565b60405180910390f35b6101b960048036038101906101b4919061080a565b6103ad565b005b6101c3610457565b6040516101d0919061093c565b60405180910390f35b60015481565b60025481565b6101f56101f0610525565b61052d565b565b610207610202610525565b610390565b610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906109d2565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516102d89190610921565b60405180910390a150565b6102f36102ee610525565b610390565b610332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610329906109d2565b60405180910390fd5b61033b81610587565b50565b60035481565b600080600254836103559190610a86565b9050600060035414610372576003548161036f9190610a55565b90505b60015481116103865760015491505061038b565b809150505b919050565b60006103a68260006105e190919063ffffffff16565b9050919050565b6103bd6103b8610525565b610390565b6103fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f3906109d2565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d1660015460025460035460405161044a93929190610a0d565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61048782826105e1565b156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be90610972565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6105418160006106a990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61059b81600061047d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610652576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610649906109b2565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6106b382826105e1565b6106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990610992565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008135905061075f81610ce4565b92915050565b60008135905061077481610cfb565b92915050565b60008135905061078981610d12565b92915050565b6000602082840312156107a157600080fd5b60006107af84828501610750565b91505092915050565b6000602082840312156107ca57600080fd5b60006107d884828501610765565b91505092915050565b6000602082840312156107f357600080fd5b60006108018482850161077a565b91505092915050565b60008060006060848603121561081f57600080fd5b600061082d8682870161077a565b935050602061083e8682870161077a565b925050604061084f8682870161077a565b9150509250925092565b61086281610b3a565b82525050565b61087181610af2565b82525050565b61088081610b04565b82525050565b6000610893601f83610a44565b915061089e82610bce565b602082019050919050565b60006108b6602183610a44565b91506108c182610bf7565b604082019050919050565b60006108d9602283610a44565b91506108e482610c46565b604082019050919050565b60006108fc604083610a44565b915061090782610c95565b604082019050919050565b61091b81610b30565b82525050565b60006020820190506109366000830184610859565b92915050565b60006020820190506109516000830184610868565b92915050565b600060208201905061096c6000830184610877565b92915050565b6000602082019050818103600083015261098b81610886565b9050919050565b600060208201905081810360008301526109ab816108a9565b9050919050565b600060208201905081810360008301526109cb816108cc565b9050919050565b600060208201905081810360008301526109eb816108ef565b9050919050565b6000602082019050610a076000830184610912565b92915050565b6000606082019050610a226000830186610912565b610a2f6020830185610912565b610a3c6040830184610912565b949350505050565b600082825260208201905092915050565b6000610a6082610b30565b9150610a6b83610b30565b925082610a7b57610a7a610b9f565b5b828204905092915050565b6000610a9182610b30565b9150610a9c83610b30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610ad557610ad4610b70565b5b828202905092915050565b6000610aeb82610b10565b9050919050565b6000610afd82610b10565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610b4582610b4c565b9050919050565b6000610b5782610b5e565b9050919050565b6000610b6982610b10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b610ced81610ae0565b8114610cf857600080fd5b50565b610d0481610af2565b8114610d0f57600080fd5b50565b610d1b81610b30565b8114610d2657600080fd5b5056fea2646970667358221220b29fb1650df72186cf6da1b791d5df30fd43cc6ad8dd57f7894820c67ca6588564736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.StorageFeeCollector__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorMock__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"int256",name:"_r",type:"int256"},{internalType:"uint8",name:"_d",type:"uint8"},{internalType:"uint8",name:"_ra",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],f="0x608060405234801561001057600080fd5b50604051610360380380610360833981810160405281019061003291906100a0565b82600181905550816000806101000a81548160ff021916908360ff16021790555080600260006101000a81548160ff021916908360ff160217905550505050610134565b60008151905061008581610106565b92915050565b60008151905061009a8161011d565b92915050565b6000806000606084860312156100b557600080fd5b60006100c386828701610076565b93505060206100d48682870161008b565b92505060406100e58682870161008b565b9150509250925092565b6000819050919050565b600060ff82169050919050565b61010f816100ef565b811461011a57600080fd5b50565b610126816100f9565b811461013157600080fd5b50565b61021d806101436000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063313ce5671461004657806350d25bcd146100645780638205bf6a14610082575b600080fd5b61004e6100a0565b60405161005b9190610148565b60405180910390f35b61006c6100b6565b6040516100799190610112565b60405180910390f35b61008a6100c0565b604051610097919061012d565b60405180910390f35b60008060009054906101000a900460ff16905090565b6000600154905090565b6000600260009054906101000a900460ff1660ff16426100e09190610163565b905090565b6100ee81610197565b82525050565b6100fd816101a1565b82525050565b61010c816101ab565b82525050565b600060208201905061012760008301846100e5565b92915050565b600060208201905061014260008301846100f4565b92915050565b600060208201905061015d6000830184610103565b92915050565b600061016e826101a1565b9150610179836101a1565b92508282101561018c5761018b6101b8565b5b828203905092915050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220170ff96393a03c5b05a40420fc5d5d91798e6295b6660e223007e5a2f64bba9864736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t,r,n){return super.deploy(e,t,r,n||{})}getDeployTransaction(e,t,r,n){return super.getDeployTransaction(e,t,r,n||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.AggregatorMock__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BytesUtilsMock__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"bytes",name:"data",type:"bytes"},{internalType:"uint256",name:"offset",type:"uint256"}],name:"extractBytes32",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"extractBytes32Result",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"}],f="0x608060405234801561001057600080fd5b50610456806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063349f06931461003b578063b1e05e8a14610059575b600080fd5b610043610075565b60405161005091906101ff565b60405180910390f35b610073600480360381019061006e9190610179565b61007b565b005b60005481565b610085828261008f565b6000819055505050565b60008082101580156100ae575082516020836100ab91906102a1565b11155b6100ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e49061021a565b60405180910390fd5b81602001830151905092915050565b600061010f61010a8461025f565b61023a565b90508281526020810184848401111561012757600080fd5b61013284828561030b565b509392505050565b600082601f83011261014b57600080fd5b813561015b8482602086016100fc565b91505092915050565b60008135905061017381610409565b92915050565b6000806040838503121561018c57600080fd5b600083013567ffffffffffffffff8111156101a657600080fd5b6101b28582860161013a565b92505060206101c385828601610164565b9150509250929050565b6101d6816102f7565b82525050565b60006101e9602b83610290565b91506101f4826103ba565b604082019050919050565b600060208201905061021460008301846101cd565b92915050565b60006020820190508181036000830152610233816101dc565b9050919050565b6000610244610255565b9050610250828261031a565b919050565b6000604051905090565b600067ffffffffffffffff82111561027a5761027961037a565b5b610283826103a9565b9050602081019050919050565b600082825260208201905092915050565b60006102ac82610301565b91506102b783610301565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102ec576102eb61034b565b5b828201905092915050565b6000819050919050565b6000819050919050565b82818337600083830152505050565b610323826103a9565b810181811067ffffffffffffffff821117156103425761034161037a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b61041281610301565b811461041d57600080fd5b5056fea264697066735822122009aeb89a08b38eedf2372c654e82d812dd4a329cd3f2955b47009ca92f0f3caa64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.BytesUtilsMock__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UsdtFake__factory=void 0;const n=r(6),i=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b5060b98061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063313ce56714602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006006905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600060ff8216905091905056fea264697066735822122018aaf7022b1bba53ad83be810b473bba6134b4631437f170a5f7961d3ed84e2d64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.UsdtFake__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Alpha__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"initialSupply",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b50604051620018d1380380620018d183398181016040528101906200003791906200033a565b6040518060400160405280600c81526020017f416c7068612045524320323000000000000000000000000000000000000000008152506040518060400160405280600581526020017f414c5048410000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000273565b508060049080519060200190620000d492919062000273565b505050620000e93382620000f060201b60201c565b506200052c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015a906200039e565b60405180910390fd5b62000177600083836200026960201b60201c565b80600260008282546200018b9190620003ee565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001e29190620003ee565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002499190620003c0565b60405180910390a362000265600083836200026e60201b60201c565b5050565b505050565b505050565b828054620002819062000455565b90600052602060002090601f016020900481019282620002a55760008555620002f1565b82601f10620002c057805160ff1916838001178555620002f1565b82800160010185558215620002f1579182015b82811115620002f0578251825591602001919060010190620002d3565b5b50905062000300919062000304565b5090565b5b808211156200031f57600081600090555060010162000305565b5090565b600081519050620003348162000512565b92915050565b6000602082840312156200034d57600080fd5b60006200035d8482850162000323565b91505092915050565b600062000375601f83620003dd565b91506200038282620004e9565b602082019050919050565b62000398816200044b565b82525050565b60006020820190508181036000830152620003b98162000366565b9050919050565b6000602082019050620003d760008301846200038d565b92915050565b600082825260208201905092915050565b6000620003fb826200044b565b915062000408836200044b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000440576200043f6200048b565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200046e57607f821691505b60208210811415620004855762000484620004ba565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6200051d816200044b565b81146200052957600080fd5b50565b611395806200053c6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610e35565b60405180910390f35b6100e660048036038101906100e19190610c83565b610308565b6040516100f39190610e1a565b60405180910390f35b610104610326565b6040516101119190610f37565b60405180910390f35b610134600480360381019061012f9190610c34565b610330565b6040516101419190610e1a565b60405180910390f35b610152610428565b60405161015f9190610f52565b60405180910390f35b610182600480360381019061017d9190610c83565b610431565b60405161018f9190610e1a565b60405180910390f35b6101b260048036038101906101ad9190610bcf565b6104dd565b6040516101bf9190610f37565b60405180910390f35b6101d0610525565b6040516101dd9190610e35565b60405180910390f35b61020060048036038101906101fb9190610c83565b6105b7565b60405161020d9190610e1a565b60405180910390f35b610230600480360381019061022b9190610c83565b6106a2565b60405161023d9190610e1a565b60405180910390f35b610260600480360381019061025b9190610bf8565b6106c0565b60405161026d9190610f37565b60405180910390f35b60606003805461028590611067565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190611067565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610eb7565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610f89565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490611067565b80601f016020809104026020016040519081016040528092919081815260200182805461056090611067565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a90610f17565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690610ef7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690610e77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610f37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190610ed7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190610e57565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290610e97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610f89565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610f37565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081359050610bb481611331565b92915050565b600081359050610bc981611348565b92915050565b600060208284031215610be157600080fd5b6000610bef84828501610ba5565b91505092915050565b60008060408385031215610c0b57600080fd5b6000610c1985828601610ba5565b9250506020610c2a85828601610ba5565b9150509250929050565b600080600060608486031215610c4957600080fd5b6000610c5786828701610ba5565b9350506020610c6886828701610ba5565b9250506040610c7986828701610bba565b9150509250925092565b60008060408385031215610c9657600080fd5b6000610ca485828601610ba5565b9250506020610cb585828601610bba565b9150509250929050565b610cc881610ff1565b82525050565b6000610cd982610f6d565b610ce38185610f78565b9350610cf3818560208601611034565b610cfc816110f7565b840191505092915050565b6000610d14602383610f78565b9150610d1f82611108565b604082019050919050565b6000610d37602283610f78565b9150610d4282611157565b604082019050919050565b6000610d5a602683610f78565b9150610d65826111a6565b604082019050919050565b6000610d7d602883610f78565b9150610d88826111f5565b604082019050919050565b6000610da0602583610f78565b9150610dab82611244565b604082019050919050565b6000610dc3602483610f78565b9150610dce82611293565b604082019050919050565b6000610de6602583610f78565b9150610df1826112e2565b604082019050919050565b610e058161101d565b82525050565b610e1481611027565b82525050565b6000602082019050610e2f6000830184610cbf565b92915050565b60006020820190508181036000830152610e4f8184610cce565b905092915050565b60006020820190508181036000830152610e7081610d07565b9050919050565b60006020820190508181036000830152610e9081610d2a565b9050919050565b60006020820190508181036000830152610eb081610d4d565b9050919050565b60006020820190508181036000830152610ed081610d70565b9050919050565b60006020820190508181036000830152610ef081610d93565b9050919050565b60006020820190508181036000830152610f1081610db6565b9050919050565b60006020820190508181036000830152610f3081610dd9565b9050919050565b6000602082019050610f4c6000830184610dfc565b92915050565b6000602082019050610f676000830184610e0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610f948261101d565b9150610f9f8361101d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610fd457610fd3611099565b5b828201905092915050565b6000610fea82610ffd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611052578082015181840152602081019050611037565b83811115611061576000848401525b50505050565b6000600282049050600182168061107f57607f821691505b60208210811415611093576110926110c8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61133a81610fdf565b811461134557600080fd5b50565b6113518161101d565b811461135c57600080fd5b5056fea2646970667358221220b69de2110057f2bacb3a0e4b4b3d30ffafee8ba9361a1e2709f879f88c5db67464736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Alpha__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20False__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b506101b8806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610093565b610060565b60405161005791906100f1565b60405180910390f35b60009392505050565b60008135905061007881610154565b92915050565b60008135905061008d8161016b565b92915050565b6000806000606084860312156100a857600080fd5b60006100b686828701610069565b93505060206100c786828701610069565b92505060406100d88682870161007e565b9150509250925092565b6100eb8161011e565b82525050565b600060208201905061010660008301846100e2565b92915050565b60006101178261012a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61015d8161010c565b811461016857600080fd5b50565b6101748161014a565b811461017f57600080fd5b5056fea2646970667358221220e3c10c12affa07d2e0fe8dbd1e08d671ef042df587a2ddf519f679a9d8434c6064736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20False__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20NoReturn__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b5061016a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a6004803603810190610045919061007b565b61004c565b005b505050565b60008135905061006081610106565b92915050565b6000813590506100758161011d565b92915050565b60008060006060848603121561009057600080fd5b600061009e86828701610051565b93505060206100af86828701610051565b92505060406100c086828701610066565b9150509250925092565b60006100d5826100dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61010f816100ca565b811461011a57600080fd5b50565b610126816100fc565b811461013157600080fd5b5056fea264697066735822122008b4588f4b00838a454d8d027ac35342a8401023b6dcb85d2c1a55030b4fed9764736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20NoReturn__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Revert__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b5061021d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a600480360381019061004591906100b1565b61004c565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007e90610123565b60405180910390fd5b600081359050610096816101b9565b92915050565b6000813590506100ab816101d0565b92915050565b6000806000606084860312156100c657600080fd5b60006100d486828701610087565b93505060206100e586828701610087565b92505060406100f68682870161009c565b9150509250925092565b600061010d601283610143565b915061011882610190565b602082019050919050565b6000602082019050818103600083015261013c81610100565b9050919050565b600082825260208201905092915050565b600061015f82610166565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f626164207468696e672068617070656e65640000000000000000000000000000600082015250565b6101c281610154565b81146101cd57600080fd5b50565b6101d981610186565b81146101e457600080fd5b5056fea2646970667358221220ed44aff37f3912b9cc7bf6cca8e1640bd66be0174ec7d165cb7c4d99dc5f020964736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20Revert__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20True__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}],f="0x608060405234801561001057600080fd5b506101bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610097565b610060565b60405161005791906100f5565b60405180910390f35b6000600190509392505050565b60008135905061007c81610158565b92915050565b6000813590506100918161016f565b92915050565b6000806000606084860312156100ac57600080fd5b60006100ba8682870161006d565b93505060206100cb8682870161006d565b92505060406100dc86828701610082565b9150509250925092565b6100ef81610122565b82525050565b600060208201905061010a60008301846100e6565b92915050565b600061011b8261012e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61016181610110565b811461016c57600080fd5b50565b6101788161014e565b811461018357600080fd5b5056fea2646970667358221220a361898766bfc0ab2a00c4ec900076974ad621c75c315750472623f1547dc0bb64736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.ERC20True__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestERC20__factory=void 0;const n=r(6),i=[{inputs:[{internalType:"uint256",name:"initialSupply",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],f="0x60806040523480156200001157600080fd5b5060405162001d9538038062001d95833981810160405281019062000037919062000636565b6040518060400160405280600681526020017f45524320323000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f45524332300000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb9291906200056f565b508060049080519060200190620000d49291906200056f565b505050620000e933826200011860201b60201c565b6200011073f17f52151ebef6c7334fad080c5704d77216b732600a6200029160201b60201c565b5050620009f0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200018b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001829062000775565b60405180910390fd5b6200019f60008383620002bf60201b60201c565b8060026000828254620001b39190620007c5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200020a9190620007c5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000271919062000797565b60405180910390a36200028d60008383620002c460201b60201c565b5050565b6000620002b5620002a7620002c960201b60201c565b8484620002d160201b60201c565b6001905092915050565b505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033b9062000753565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ae906200070f565b60405180910390fd5b620003ca838383620002bf60201b60201c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044a9062000731565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004e89190620007c5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200054e919062000797565b60405180910390a362000569848484620002c460201b60201c565b50505050565b8280546200057d906200082c565b90600052602060002090601f016020900481019282620005a15760008555620005ed565b82601f10620005bc57805160ff1916838001178555620005ed565b82800160010185558215620005ed579182015b82811115620005ec578251825591602001919060010190620005cf565b5b509050620005fc919062000600565b5090565b5b808211156200061b57600081600090555060010162000601565b5090565b6000815190506200063081620009d6565b92915050565b6000602082840312156200064957600080fd5b600062000659848285016200061f565b91505092915050565b600062000671602383620007b4565b91506200067e82620008c0565b604082019050919050565b600062000698602683620007b4565b9150620006a5826200090f565b604082019050919050565b6000620006bf602583620007b4565b9150620006cc826200095e565b604082019050919050565b6000620006e6601f83620007b4565b9150620006f382620009ad565b602082019050919050565b620007098162000822565b82525050565b600060208201905081810360008301526200072a8162000662565b9050919050565b600060208201905081810360008301526200074c8162000689565b9050919050565b600060208201905081810360008301526200076e81620006b0565b9050919050565b600060208201905081810360008301526200079081620006d7565b9050919050565b6000602082019050620007ae6000830184620006fe565b92915050565b600082825260208201905092915050565b6000620007d28262000822565b9150620007df8362000822565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000817576200081662000862565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200084557607f821691505b602082108114156200085c576200085b62000891565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620009e18162000822565b8114620009ed57600080fd5b50565b6113958062000a006000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610e35565b60405180910390f35b6100e660048036038101906100e19190610c83565b610308565b6040516100f39190610e1a565b60405180910390f35b610104610326565b6040516101119190610f37565b60405180910390f35b610134600480360381019061012f9190610c34565b610330565b6040516101419190610e1a565b60405180910390f35b610152610428565b60405161015f9190610f52565b60405180910390f35b610182600480360381019061017d9190610c83565b610431565b60405161018f9190610e1a565b60405180910390f35b6101b260048036038101906101ad9190610bcf565b6104dd565b6040516101bf9190610f37565b60405180910390f35b6101d0610525565b6040516101dd9190610e35565b60405180910390f35b61020060048036038101906101fb9190610c83565b6105b7565b60405161020d9190610e1a565b60405180910390f35b610230600480360381019061022b9190610c83565b6106a2565b60405161023d9190610e1a565b60405180910390f35b610260600480360381019061025b9190610bf8565b6106c0565b60405161026d9190610f37565b60405180910390f35b60606003805461028590611067565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190611067565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610eb7565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610f89565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490611067565b80601f016020809104026020016040519081016040528092919081815260200182805461056090611067565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a90610f17565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690610ef7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690610e77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610f37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190610ed7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190610e57565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290610e97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610f89565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610f37565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081359050610bb481611331565b92915050565b600081359050610bc981611348565b92915050565b600060208284031215610be157600080fd5b6000610bef84828501610ba5565b91505092915050565b60008060408385031215610c0b57600080fd5b6000610c1985828601610ba5565b9250506020610c2a85828601610ba5565b9150509250929050565b600080600060608486031215610c4957600080fd5b6000610c5786828701610ba5565b9350506020610c6886828701610ba5565b9250506040610c7986828701610bba565b9150509250925092565b60008060408385031215610c9657600080fd5b6000610ca485828601610ba5565b9250506020610cb585828601610bba565b9150509250929050565b610cc881610ff1565b82525050565b6000610cd982610f6d565b610ce38185610f78565b9350610cf3818560208601611034565b610cfc816110f7565b840191505092915050565b6000610d14602383610f78565b9150610d1f82611108565b604082019050919050565b6000610d37602283610f78565b9150610d4282611157565b604082019050919050565b6000610d5a602683610f78565b9150610d65826111a6565b604082019050919050565b6000610d7d602883610f78565b9150610d88826111f5565b604082019050919050565b6000610da0602583610f78565b9150610dab82611244565b604082019050919050565b6000610dc3602483610f78565b9150610dce82611293565b604082019050919050565b6000610de6602583610f78565b9150610df1826112e2565b604082019050919050565b610e058161101d565b82525050565b610e1481611027565b82525050565b6000602082019050610e2f6000830184610cbf565b92915050565b60006020820190508181036000830152610e4f8184610cce565b905092915050565b60006020820190508181036000830152610e7081610d07565b9050919050565b60006020820190508181036000830152610e9081610d2a565b9050919050565b60006020820190508181036000830152610eb081610d4d565b9050919050565b60006020820190508181036000830152610ed081610d70565b9050919050565b60006020820190508181036000830152610ef081610d93565b9050919050565b60006020820190508181036000830152610f1081610db6565b9050919050565b60006020820190508181036000830152610f3081610dd9565b9050919050565b6000602082019050610f4c6000830184610dfc565b92915050565b6000602082019050610f676000830184610e0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610f948261101d565b9150610f9f8361101d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610fd457610fd3611099565b5b828201905092915050565b6000610fea82610ffd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611052578082015181840152602081019050611037565b83811115611061576000848401525b50505050565b6000600282049050600182168061107f57607f821691505b60208210811415611093576110926110c8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61133a81610fdf565b811461134557600080fd5b50565b6113518161101d565b811461135c57600080fd5b5056fea26469706673582212209174d977515c6e02f3382f9e58ca0873dbf0b8048957e4606ef73443f672de3864736f6c63430008040033";class o extends n.ContractFactory{constructor(e){super(i,f,e)}deploy(e,t){return super.deploy(e,t||{})}getDeployTransaction(e,t){return super.getDeployTransaction(e,t||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(i)}static connect(e,t){return new n.Contract(e,i,t)}}t.TestERC20__factory=o,o.bytecode=f,o.abi=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthInputDataInfoRetriever=void 0;const n=r(15),i=r(587);t.EthInputDataInfoRetriever=class{constructor(e,t,r,n,i){this.toAddress=e,this.eventName=t,this.network=r,this.paymentReference=n,this.explorerApiKey=i}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if("private"===this.network)throw new Error("ETH input data info-retriever works with etherscan and cannot work on a local network");const e=new i.MultichainExplorerApiProvider(this.network,this.explorerApiKey),t=yield e.getHistory(this.toAddress);return t.filter(((e,r)=>t.findIndex((t=>t.hash===e.hash))===r)).filter((e=>e.to&&e.to.toLowerCase()===this.toAddress.toLowerCase())).filter((e=>e.data.toLowerCase()==="0x"+this.paymentReference.toLowerCase())).map((e=>({amount:e.value.toString(),name:this.eventName,parameters:{block:e.blockNumber,confirmations:e.confirmations,txHash:e.hash},timestamp:e.timestamp})))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MultichainExplorerApiProvider=void 0;const n=r(6),i={sokol:{chainId:77,name:"sokol"},fuse:{chainId:122,name:"fuse"},celo:{chainId:42220,name:"celo"},fantom:{chainId:250,name:"fantom"}};class f extends n.ethers.providers.EtherscanProvider{constructor(e,t){"string"==typeof e&&i[e]&&(e=i[e]),t||"mainnet"!==e&&"rinkeby"!==e||(t="TCVQQU5V39TAS1V6HF61P9K7IJZVEHH1D9"),super(e,t)}getBaseUrl(){switch(this.network.name){case"sokol":case"xdai":return`https://blockscout.com/poa/${this.network.name}`;case"fuse":return"https://explorer.fuse.io";case"celo":return"https://explorer.celo.org";case"matic":return"https://api.polygonscan.com";case"fantom":return"https://api.ftmscan.com";case"bsctest":return"https://api-testnet.bscscan.com/";case"bsc":return"https://api.bscscan.com/";case"aurora":return"https://explorer.mainnet.near.org";case"aurora-testnet":return"https://explorer.testnet.near.org";default:return super.getBaseUrl()}}}t.MultichainExplorerApiProvider=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToErc20InfoRetriever=void 0;const n=r(227);class i extends n.ConversionInfoRetriever{getFeeFilter(){const e=this.contractConversionProxy.filters.TransferWithReferenceAndFee(null,null,null,"0x"+this.paymentReference);return e.fromBlock=this.conversionProxyCreationBlockNumber,e.toBlock="latest",e}}t.AnyToErc20InfoRetriever=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TheGraphAnyToErc20Retriever=void 0;const n=r(15),i=r(6),f=r(37);t.TheGraphAnyToErc20Retriever=class{constructor(e,t,r,n,i,o,a,s=0){this.requestCurrency=e,this.paymentReference=t,this.conversionProxyContractAddress=r,this.toAddress=n,this.eventName=i,this.network=o,this.acceptedTokens=a,this.maxRateTimespan=s,this.client=(0,f.getTheGraphClient)(this.network),this.acceptedTokens=null==a?void 0:a.map((e=>e.toLowerCase()))}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const e={contractAddress:this.conversionProxyContractAddress,reference:i.utils.keccak256(`0x${this.paymentReference}`),to:this.toAddress,acceptedTokens:this.acceptedTokens,maxRateTimespan:this.maxRateTimespan};return(yield this.client.GetConversionPayments(e)).payments.map((e=>{var t;const r=8-this.requestCurrency.decimals,n=i.BigNumber.from(e.amount).div(Math.pow(10,r)).toString(),f=e.feeAmount?i.BigNumber.from(e.feeAmount).div(Math.pow(10,r)).toString():void 0;return{amount:n,name:this.eventName,parameters:{block:e.block,feeAddress:e.feeAddress?i.utils.getAddress(e.feeAddress):void 0,feeAmount:f,feeAmountInCrypto:e.feeAmountInCrypto||void 0,amountInCrypto:e.amountInCrypto,tokenAddress:i.utils.getAddress(e.tokenAddress),to:this.toAddress,txHash:e.txHash,maxRateTimespan:null===(t=e.maxRateTimespan)||void 0===t?void 0:t.toString()},timestamp:e.timestamp}}))}))}}},function(e,t,r){e.exports=r(230)},function(e,t,r){r(592),r(593),r(594),r(595),r(596),r(597),r(598)},function(e,t){Object.create||(Object.create=function(){function e(){}return function(t){if(1!=arguments.length)throw new Error("Object.create implementation only accepts one parameter.");return e.prototype=t,new e}}()),Object.keys||(Object.keys=function(){"use strict";var e=Object.prototype.hasOwnProperty,t=!{toString:null}.propertyIsEnumerable("toString"),r=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],n=r.length;return function(i){if("object"!=typeof i&&("function"!=typeof i||null===i))throw new TypeError("Object.keys called on non-object");var f,o,a=[];for(f in i)e.call(i,f)&&a.push(f);if(t)for(o=0;o<n;o++)e.call(i,r[o])&&a.push(r[o]);return a}}())},function(e,t){"function"!=typeof Array.prototype.reduce&&(Array.prototype.reduce=function(e){"use strict";var t,r,n,i;if(null==this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");if(t=(r=Object(this)).length>>>0,i=0,arguments.length>=2)n=arguments[1];else{for(;i<t&&!i in r;)i++;if(i>=t)throw new TypeError("Reduce of empty array with no initial value");n=r[i++]}for(;i<t;i++)i in r&&(n=e(n,r[i],i,r));return n}),"indexOf"in Array.prototype||(Array.prototype.indexOf=function(e,t){void 0===t&&(t=0),t<0&&(t+=this.length),t<0&&(t=0);for(var r=this.length;t<r;t++)if(t in this&&this[t]===e)return t;return-1}),"lastIndexOf"in Array.prototype||(Array.prototype.lastIndexOf=function(e,t){for(void 0===t&&(t=this.length-1),t<0&&(t+=this.length),t>this.length-1&&(t=this.length-1),t++;t-- >0;)if(t in this&&this[t]===e)return t;return-1}),"forEach"in Array.prototype||(Array.prototype.forEach=function(e,t){for(var r=0,n=this.length;r<n;r++)r in this&&e.call(t,this[r],r,this)}),"map"in Array.prototype||(Array.prototype.map=function(e,t){for(var r=new Array(this.length),n=0,i=this.length;n<i;n++)n in this&&(r[n]=e.call(t,this[n],n,this));return r}),"filter"in Array.prototype||(Array.prototype.filter=function(e,t){for(var r,n=[],i=0,f=this.length;i<f;i++)i in this&&e.call(t,r=this[i],i,this)&&n.push(r);return n}),"every"in Array.prototype||(Array.prototype.every=function(e,t){for(var r=0,n=this.length;r<n;r++)if(r in this&&!e.call(t,this[r],r,this))return!1;return!0}),"some"in Array.prototype||(Array.prototype.some=function(e,t){for(var r=0,n=this.length;r<n;r++)if(r in this&&e.call(t,this[r],r,this))return!0;return!1}),"function"!=typeof Array.prototype.reduceRight&&(Array.prototype.reduceRight=function(e){"use strict";if(null==this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,r=Object(this),n=r.length>>>0,i=n-1;if(arguments.length>=2)t=arguments[1];else{for(;i>=0&&!i in r;)i--;if(i<0)throw new TypeError("Reduce of empty array with no initial value");t=r[i--]}for(;i>=0;i--)i in r&&(t=e(t,r[i],i,r));return t})},function(e,t){"trim"in String.prototype||(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")})},function(e,t){Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,r=Array.prototype.slice.call(arguments,1);return function(){return t.apply(e,Array.prototype.concat.apply(r,arguments))}})},function(e,t){!function(e){var t;e||(e=window.console={log:function(e,t,r,n,i){},info:function(e,t,r,n,i){},warn:function(e,t,r,n,i){},error:function(e,t,r,n,i){},assert:function(e,t){}}),"object"==typeof e.log&&(e.log=Function.prototype.call.bind(e.log,e),e.info=Function.prototype.call.bind(e.info,e),e.warn=Function.prototype.call.bind(e.warn,e),e.error=Function.prototype.call.bind(e.error,e),e.debug=Function.prototype.call.bind(e.info,e)),"group"in e||(e.group=function(t){e.info("\n--- "+t+" ---\n")}),"groupEnd"in e||(e.groupEnd=function(){e.log("\n")}),"assert"in e||(e.assert=function(e,t){if(!e)try{throw new Error("assertion failed: "+t)}catch(e){setTimeout((function(){throw e}),0)}}),"time"in e||(t={},e.time=function(e){t[e]=(new Date).getTime()},e.timeEnd=function(r){var n=(new Date).getTime(),i=r in t?n-t[r]:0;e.info(r+": "+i+"ms")})}("undefined"!=typeof console?console:void 0)},function(e,t){"undefined"==typeof Uint8Array&&function(e,t){"use strict";var r=void 0;function n(e){switch(typeof e){case"undefined":return"undefined";case"boolean":return"boolean";case"number":return"number";case"string":return"string";default:return null===e?"null":"object"}}function i(e){return Object.prototype.toString.call(e).replace(/^\[object *|\]$/g,"")}function f(e){return"function"==typeof e}function o(e){if(null===e||e===r)throw TypeError();return Object(e)}function a(e){return e>>0}function s(e){return e>>>0}var c,u,l=Math.LN2,d=Math.abs,h=Math.floor,p=Math.log,b=Math.max,y=Math.min,m=Math.pow,g=Math.round;function v(e){if(e.length>1e5)throw RangeError("Array too large for polyfill");function t(t){Object.defineProperty(e,t,{get:function(){return e._getter(t)},set:function(r){e._setter(t,r)},enumerable:!0,configurable:!1})}var r;for(r=0;r<e.length;r+=1)t(r)}function _(e,t){var r=32-t;return e<<r>>r}function w(e,t){var r=32-t;return e<<r>>>r}function E(e){return[255&e]}function A(e){return _(e[0],8)}function S(e){return[255&e]}function T(e){return w(e[0],8)}function x(e){return[(e=g(Number(e)))<0?0:e>255?255:255&e]}function P(e){return[e>>8&255,255&e]}function R(e){return _(e[0]<<8|e[1],16)}function k(e){return[e>>8&255,255&e]}function C(e){return w(e[0]<<8|e[1],16)}function O(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}function M(e){return _(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function N(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}function I(e){return w(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function D(e,t,r){var n,i,f,o,a,s,c,u=(1<<t-1)-1;function b(e){var t=h(e),r=e-t;return r<.5?t:r>.5||t%2?t+1:t}for(e!=e?(i=(1<<t)-1,f=m(2,r-1),n=0):e===1/0||e===-1/0?(i=(1<<t)-1,f=0,n=e<0?1:0):0===e?(i=0,f=0,n=1/e==-1/0?1:0):(n=e<0,(e=d(e))>=m(2,1-u)?(i=y(h(p(e)/l),1023),(f=b(e/m(2,i)*m(2,r)))/m(2,r)>=2&&(i+=1,f=1),i>u?(i=(1<<t)-1,f=0):(i+=u,f-=m(2,r))):(i=0,f=b(e/m(2,1-u-r)))),a=[],o=r;o;o-=1)a.push(f%2?1:0),f=h(f/2);for(o=t;o;o-=1)a.push(i%2?1:0),i=h(i/2);for(a.push(n?1:0),a.reverse(),s=a.join(""),c=[];s.length;)c.push(parseInt(s.substring(0,8),2)),s=s.substring(8);return c}function B(e,t,r){var n,i,f,o,a,s,c,u,l=[];for(n=e.length;n;n-=1)for(f=e[n-1],i=8;i;i-=1)l.push(f%2?1:0),f>>=1;return l.reverse(),o=l.join(""),a=(1<<t-1)-1,s=parseInt(o.substring(0,1),2)?-1:1,c=parseInt(o.substring(1,1+t),2),u=parseInt(o.substring(1+t),2),c===(1<<t)-1?0!==u?NaN:s*(1/0):c>0?s*m(2,c-a)*(1+u/m(2,r)):0!==u?s*m(2,-(a-1))*(u/m(2,r)):s<0?-0:0}function F(e){return B(e,11,52)}function j(e){return D(e,11,52)}function L(e){return B(e,8,23)}function U(e){return D(e,8,23)}c=Object.defineProperty,u=!function(){try{return Object.defineProperty({},"x",{})}catch(e){return!1}}(),c&&!u||(Object.defineProperty=function(e,t,r){if(c)try{return c(e,t,r)}catch(e){}if(e!==Object(e))throw TypeError("Object.defineProperty called on non-object");return Object.prototype.__defineGetter__&&"get"in r&&Object.prototype.__defineGetter__.call(e,t,r.get),Object.prototype.__defineSetter__&&"set"in r&&Object.prototype.__defineSetter__.call(e,t,r.set),"value"in r&&(e[t]=r.value),e}),function(){function c(e){if((e=a(e))<0)throw RangeError("ArrayBuffer size is not a small enough positive integer.");Object.defineProperty(this,"byteLength",{value:e}),Object.defineProperty(this,"_bytes",{value:Array(e)});for(var t=0;t<e;t+=1)this._bytes[t]=0}function u(){if(!arguments.length||"object"!=typeof arguments[0])return function(e){if((e=a(e))<0)throw RangeError("length is not a small enough positive integer.");Object.defineProperty(this,"length",{value:e}),Object.defineProperty(this,"byteLength",{value:e*this.BYTES_PER_ELEMENT}),Object.defineProperty(this,"buffer",{value:new c(this.byteLength)}),Object.defineProperty(this,"byteOffset",{value:0})}.apply(this,arguments);if(arguments.length>=1&&"object"===n(arguments[0])&&arguments[0]instanceof u)return function(e){if(this.constructor!==e.constructor)throw TypeError();var t=e.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new c(t)}),Object.defineProperty(this,"byteLength",{value:t}),Object.defineProperty(this,"byteOffset",{value:0}),Object.defineProperty(this,"length",{value:e.length});for(var r=0;r<this.length;r+=1)this._setter(r,e._getter(r))}.apply(this,arguments);if(arguments.length>=1&&"object"===n(arguments[0])&&!(arguments[0]instanceof u)&&!(arguments[0]instanceof c||"ArrayBuffer"===i(arguments[0])))return function(e){var t=e.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new c(t)}),Object.defineProperty(this,"byteLength",{value:t}),Object.defineProperty(this,"byteOffset",{value:0}),Object.defineProperty(this,"length",{value:e.length});for(var r=0;r<this.length;r+=1){var n=e[r];this._setter(r,Number(n))}}.apply(this,arguments);if(arguments.length>=1&&"object"===n(arguments[0])&&(arguments[0]instanceof c||"ArrayBuffer"===i(arguments[0])))return function(e,t,n){if((t=s(t))>e.byteLength)throw RangeError("byteOffset out of range");if(t%this.BYTES_PER_ELEMENT)throw RangeError("buffer length minus the byteOffset is not a multiple of the element size.");if(n===r){var i=e.byteLength-t;if(i%this.BYTES_PER_ELEMENT)throw RangeError("length of buffer minus byteOffset not a multiple of the element size");n=i/this.BYTES_PER_ELEMENT}else i=(n=s(n))*this.BYTES_PER_ELEMENT;if(t+i>e.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:e}),Object.defineProperty(this,"byteLength",{value:i}),Object.defineProperty(this,"byteOffset",{value:t}),Object.defineProperty(this,"length",{value:n})}.apply(this,arguments);throw TypeError()}e.ArrayBuffer=e.ArrayBuffer||c,Object.defineProperty(u,"from",{value:function(e){return new this(e)}}),Object.defineProperty(u,"of",{value:function(){return new this(arguments)}});var l={};function p(e,t,r){var n=function(){Object.defineProperty(this,"constructor",{value:n}),u.apply(this,arguments),v(this)};"__proto__"in n?n.__proto__=u:(n.from=u.from,n.of=u.of),n.BYTES_PER_ELEMENT=e;var i=function(){};return i.prototype=l,n.prototype=new i,Object.defineProperty(n.prototype,"BYTES_PER_ELEMENT",{value:e}),Object.defineProperty(n.prototype,"_pack",{value:t}),Object.defineProperty(n.prototype,"_unpack",{value:r}),n}u.prototype=l,Object.defineProperty(u.prototype,"_getter",{value:function(e){if(arguments.length<1)throw SyntaxError("Not enough arguments");if((e=s(e))>=this.length)return r;var t,n,i=[];for(t=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;t<this.BYTES_PER_ELEMENT;t+=1,n+=1)i.push(this.buffer._bytes[n]);return this._unpack(i)}}),Object.defineProperty(u.prototype,"get",{value:u.prototype._getter}),Object.defineProperty(u.prototype,"_setter",{value:function(e,t){if(arguments.length<2)throw SyntaxError("Not enough arguments");if(!((e=s(e))>=this.length)){var r,n,i=this._pack(t);for(r=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;r<this.BYTES_PER_ELEMENT;r+=1,n+=1)this.buffer._bytes[n]=i[r]}}}),Object.defineProperty(u.prototype,"constructor",{value:u}),Object.defineProperty(u.prototype,"copyWithin",{value:function(e,t){var n=arguments[2],i=o(this),f=i.length,c=s(f);c=b(c,0);var u,l=a(e);u=l<0?b(c+l,0):y(l,c);var d,h,p,m=a(t);d=m<0?b(c+m,0):y(m,c),p=(h=n===r?c:a(n))<0?b(c+h,0):y(h,c);var g,v=y(p-d,c-u);for(from<u&&u<d+v?(g=-1,d=d+v-1,u=u+v-1):g=1;count>0;)i._setter(u,i._getter(d)),d+=g,u+=g,v-=1;return i}}),Object.defineProperty(u.prototype,"every",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=arguments[1],o=0;o<n;o++)if(!e.call(i,t._getter(o),o,t))return!1;return!0}}),Object.defineProperty(u.prototype,"fill",{value:function(e){var t=arguments[1],n=arguments[2],i=o(this),f=i.length,c=s(f);c=b(c,0);var u,l,d,h=a(t);for(u=h<0?b(c+h,0):y(h,c),d=(l=n===r?c:a(n))<0?b(c+l,0):y(l,c);u<d;)i._setter(u,e),u+=1;return i}}),Object.defineProperty(u.prototype,"filter",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=[],o=arguments[1],a=0;a<n;a++){var c=t._getter(a);e.call(o,c,a,t)&&i.push(c)}return new this.constructor(i)}}),Object.defineProperty(u.prototype,"find",{value:function(e){var t=o(this),n=t.length,i=s(n);if(!f(e))throw TypeError();for(var a=arguments.length>1?arguments[1]:r,c=0;c<i;){var u=t._getter(c),l=e.call(a,u,c,t);if(Boolean(l))return u;++c}return r}}),Object.defineProperty(u.prototype,"findIndex",{value:function(e){var t=o(this),n=t.length,i=s(n);if(!f(e))throw TypeError();for(var a=arguments.length>1?arguments[1]:r,c=0;c<i;){var u=t._getter(c),l=e.call(a,u,c,t);if(Boolean(l))return c;++c}return-1}}),Object.defineProperty(u.prototype,"forEach",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=arguments[1],o=0;o<n;o++)e.call(i,t._getter(o),o,t)}}),Object.defineProperty(u.prototype,"indexOf",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(0===n)return-1;var i,f=0;if(arguments.length>0&&((i=Number(arguments[1]))!==f?f=0:0!==i&&i!==1/0&&i!==-1/0&&(f=(i>0||-1)*h(d(i)))),f>=n)return-1;for(var o=f>=0?f:b(n-d(f),0);o<n;o++)if(t._getter(o)===e)return o;return-1}}),Object.defineProperty(u.prototype,"join",{value:function(e){if(this===r||null===this)throw TypeError();for(var t=Object(this),n=s(t.length),i=Array(n),f=0;f<n;++f)i[f]=t._getter(f);return i.join(e===r?",":e)}}),Object.defineProperty(u.prototype,"lastIndexOf",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(0===n)return-1;var i=n;arguments.length>1&&((i=Number(arguments[1]))!=i?i=0:0!==i&&i!==1/0&&i!==-1/0&&(i=(i>0||-1)*h(d(i))));for(var f=i>=0?y(i,n-1):n-d(i);f>=0;f--)if(t._getter(f)===e)return f;return-1}}),Object.defineProperty(u.prototype,"map",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();var i=[];i.length=n;for(var o=arguments[1],a=0;a<n;a++)i[a]=e.call(o,t._getter(a),a,t);return new this.constructor(i)}}),Object.defineProperty(u.prototype,"reduce",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();if(0===n&&1===arguments.length)throw TypeError();var i,o=0;for(i=arguments.length>=2?arguments[1]:t._getter(o++);o<n;)i=e.call(r,i,t._getter(o),o,t),o++;return i}}),Object.defineProperty(u.prototype,"reduceRight",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();if(0===n&&1===arguments.length)throw TypeError();var i,o=n-1;for(i=arguments.length>=2?arguments[1]:t._getter(o--);o>=0;)i=e.call(r,i,t._getter(o),o,t),o--;return i}}),Object.defineProperty(u.prototype,"reverse",{value:function(){if(this===r||null===this)throw TypeError();for(var e=Object(this),t=s(e.length),n=h(t/2),i=0,f=t-1;i<n;++i,--f){var o=e._getter(i);e._setter(i,e._getter(f)),e._setter(f,o)}return e}}),Object.defineProperty(u.prototype,"set",{value:function(e,t){if(arguments.length<1)throw SyntaxError("Not enough arguments");var r,n,i,f,o,a,c,u,l,d;if("object"==typeof arguments[0]&&arguments[0].constructor===this.constructor){if(r=arguments[0],(i=s(arguments[1]))+r.length>this.length)throw RangeError("Offset plus length of array is out of range");if(u=this.byteOffset+i*this.BYTES_PER_ELEMENT,l=r.length*this.BYTES_PER_ELEMENT,r.buffer===this.buffer){for(d=[],o=0,a=r.byteOffset;o<l;o+=1,a+=1)d[o]=r.buffer._bytes[a];for(o=0,c=u;o<l;o+=1,c+=1)this.buffer._bytes[c]=d[o]}else for(o=0,a=r.byteOffset,c=u;o<l;o+=1,a+=1,c+=1)this.buffer._bytes[c]=r.buffer._bytes[a]}else{if("object"!=typeof arguments[0]||void 0===arguments[0].length)throw TypeError("Unexpected argument type(s)");if(f=s((n=arguments[0]).length),(i=s(arguments[1]))+f>this.length)throw RangeError("Offset plus length of array is out of range");for(o=0;o<f;o+=1)a=n[o],this._setter(i+o,Number(a))}}}),Object.defineProperty(u.prototype,"slice",{value:function(e,t){for(var n=o(this),i=s(n.length),f=a(e),c=f<0?b(i+f,0):y(f,i),u=t===r?i:a(t),l=u<0?b(i+u,0):y(u,i),d=l-c,h=new(0,n.constructor)(d),p=0;c<l;){var m=n._getter(c);h._setter(p,m),++c,++p}return h}}),Object.defineProperty(u.prototype,"some",{value:function(e){if(this===r||null===this)throw TypeError();var t=Object(this),n=s(t.length);if(!f(e))throw TypeError();for(var i=arguments[1],o=0;o<n;o++)if(e.call(i,t._getter(o),o,t))return!0;return!1}}),Object.defineProperty(u.prototype,"sort",{value:function(e){if(this===r||null===this)throw TypeError();for(var t=Object(this),n=s(t.length),i=Array(n),f=0;f<n;++f)i[f]=t._getter(f);for(e?i.sort(e):i.sort(),f=0;f<n;++f)t._setter(f,i[f]);return t}}),Object.defineProperty(u.prototype,"subarray",{value:function(e,t){function r(e,t,r){return e<t?t:e>r?r:e}e=a(e),t=a(t),arguments.length<1&&(e=0),arguments.length<2&&(t=this.length),e<0&&(e=this.length+e),t<0&&(t=this.length+t),e=r(e,0,this.length);var n=(t=r(t,0,this.length))-e;return n<0&&(n=0),new this.constructor(this.buffer,this.byteOffset+e*this.BYTES_PER_ELEMENT,n)}});var m=p(1,E,A),g=p(1,S,T),_=p(1,x,T),w=p(2,P,R),D=p(2,k,C),B=p(4,O,M),q=p(4,N,I),z=p(4,U,L),H=p(8,j,F);e.Int8Array=t.Int8Array=e.Int8Array||m,e.Uint8Array=t.Uint8Array=e.Uint8Array||g,e.Uint8ClampedArray=t.Uint8ClampedArray=e.Uint8ClampedArray||_,e.Int16Array=t.Int16Array=e.Int16Array||w,e.Uint16Array=t.Uint16Array=e.Uint16Array||D,e.Int32Array=t.Int32Array=e.Int32Array||B,e.Uint32Array=t.Uint32Array=e.Uint32Array||q,e.Float32Array=t.Float32Array=e.Float32Array||z,e.Float64Array=t.Float64Array=e.Float64Array||H}(),function(){function t(e,t){return f(e.get)?e.get(t):e[t]}var n,o=(n=new e.Uint16Array([4660]),18===t(new e.Uint8Array(n.buffer),0));function a(e,t,n){if(!(e instanceof ArrayBuffer||"ArrayBuffer"===i(e)))throw TypeError();if((t=s(t))>e.byteLength)throw RangeError("byteOffset out of range");if(t+(n=n===r?e.byteLength-t:s(n))>e.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:e}),Object.defineProperty(this,"byteLength",{value:n}),Object.defineProperty(this,"byteOffset",{value:t})}function c(r){return function(n,i){if((n=s(n))+r.BYTES_PER_ELEMENT>this.byteLength)throw RangeError("Array index out of range");n+=this.byteOffset;for(var f=new e.Uint8Array(this.buffer,n,r.BYTES_PER_ELEMENT),a=[],c=0;c<r.BYTES_PER_ELEMENT;c+=1)a.push(t(f,c));return Boolean(i)===Boolean(o)&&a.reverse(),t(new r(new e.Uint8Array(a).buffer),0)}}function u(r){return function(n,i,f){if((n=s(n))+r.BYTES_PER_ELEMENT>this.byteLength)throw RangeError("Array index out of range");var a,c=new r([i]),u=new e.Uint8Array(c.buffer),l=[];for(a=0;a<r.BYTES_PER_ELEMENT;a+=1)l.push(t(u,a));Boolean(f)===Boolean(o)&&l.reverse(),new Uint8Array(this.buffer,n,r.BYTES_PER_ELEMENT).set(l)}}Object.defineProperty(a.prototype,"getUint8",{value:c(e.Uint8Array)}),Object.defineProperty(a.prototype,"getInt8",{value:c(e.Int8Array)}),Object.defineProperty(a.prototype,"getUint16",{value:c(e.Uint16Array)}),Object.defineProperty(a.prototype,"getInt16",{value:c(e.Int16Array)}),Object.defineProperty(a.prototype,"getUint32",{value:c(e.Uint32Array)}),Object.defineProperty(a.prototype,"getInt32",{value:c(e.Int32Array)}),Object.defineProperty(a.prototype,"getFloat32",{value:c(e.Float32Array)}),Object.defineProperty(a.prototype,"getFloat64",{value:c(e.Float64Array)}),Object.defineProperty(a.prototype,"setUint8",{value:u(e.Uint8Array)}),Object.defineProperty(a.prototype,"setInt8",{value:u(e.Int8Array)}),Object.defineProperty(a.prototype,"setUint16",{value:u(e.Uint16Array)}),Object.defineProperty(a.prototype,"setInt16",{value:u(e.Int16Array)}),Object.defineProperty(a.prototype,"setUint32",{value:u(e.Uint32Array)}),Object.defineProperty(a.prototype,"setInt32",{value:u(e.Int32Array)}),Object.defineProperty(a.prototype,"setFloat32",{value:u(e.Float32Array)}),Object.defineProperty(a.prototype,"setFloat64",{value:u(e.Float64Array)}),e.DataView=e.DataView||a}()}(t,window),"undefined"!=typeof window&&("Uint8ClampedArray"in window||(window.Uint8ClampedArray=window.Uint8Array))},function(module,exports){"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(e){return e<10?"0"+e:e}var cx,escapable,gap,indent,meta,rep;function quote(e){return escapable.lastIndex=0,escapable.test(e)?'"'+e.replace(escapable,(function(e){var t=meta[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))+'"':'"'+e+'"'}function str(e,t){var r,n,i,f,o,a=gap,s=t[e];switch(s&&"object"==typeof s&&"function"==typeof s.toJSON&&(s=s.toJSON(e)),"function"==typeof rep&&(s=rep.call(t,e,s)),typeof s){case"string":return quote(s);case"number":return isFinite(s)?String(s):"null";case"boolean":case"null":return String(s);case"object":if(!s)return"null";if(gap+=indent,o=[],"[object Array]"===Object.prototype.toString.apply(s)){for(f=s.length,r=0;r<f;r+=1)o[r]=str(r,s)||"null";return i=0===o.length?"[]":gap?"[\n"+gap+o.join(",\n"+gap)+"\n"+a+"]":"["+o.join(",")+"]",gap=a,i}if(rep&&"object"==typeof rep)for(f=rep.length,r=0;r<f;r+=1)"string"==typeof rep[r]&&(i=str(n=rep[r],s))&&o.push(quote(n)+(gap?": ":":")+i);else for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(i=str(n,s))&&o.push(quote(n)+(gap?": ":":")+i);return i=0===o.length?"{}":gap?"{\n"+gap+o.join(",\n"+gap)+"\n"+a+"}":"{"+o.join(",")+"}",gap=a,i}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}),"function"!=typeof JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(e,t,r){var n;if(gap="",indent="","number"==typeof r)for(n=0;n<r;n+=1)indent+=" ";else"string"==typeof r&&(indent=r);if(rep=t,t&&"function"!=typeof t&&("object"!=typeof t||"number"!=typeof t.length))throw new Error("JSON.stringify");return str("",{"":e})}),"function"!=typeof JSON.parse&&(cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(text,reviver){var j;function walk(e,t){var r,n,i=e[t];if(i&&"object"==typeof i)for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(void 0!==(n=walk(i,r))?i[r]=n:delete i[r]);return reviver.call(e,t,i)}if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,(function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),exports.JSON=JSON},function(e){e.exports=JSON.parse('{"name":"autobahn","version":"20.9.2","description":"An implementation of The Web Application Messaging Protocol (WAMP).","main":"index.js","files":["index.js","/lib"],"scripts":{"test":"nodeunit test/test.js"},"engines":{"node":">= 7.10.1"},"dependencies":{"cbor":">= 3.0.0","crypto-js":">=3.1.8","msgpack5":">= 3.6.0","tweetnacl":">= 0.14.3","ws":">= 1.1.4"},"optionalDependencies":{"bufferutil":">= 1.2.1","utf-8-validate":">= 1.2.1","when":">= 3.7.7"},"devDependencies":{"browserify":">= 13.1.1","deep-equal":">= 1.0.1","google-closure-compiler":">= 20170218.0.0","nodeunit":">= 0.11.3","random-bytes-seed":">=1.0.3"},"browser":{"cbor":false,"ws":false,"./lib/transport/rawsocket.js":false},"repository":{"type":"git","url":"git://github.com/crossbario/autobahn-js.git"},"keywords":["WAMP","WebSocket","RPC","PubSub","ethereum","solidity","xbr","crossbar","autobahn","wamp","data-service","data-monetization"],"author":"Crossbar.io Technologies GmbH","license":"MIT"}')},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(88),n=r(232);function i(e,r,n,i){return t.setTimer((function(){e(n,i,r)}),r)}return function(e){function r(e,t,r){i(f,e,t,r)}function f(e,t){t.resolve(e)}function o(e,t,r){var i=void 0===e?new n("timed out after "+r+"ms"):e;t.reject(i)}return e.prototype.delay=function(e){var t=this._beget();return this._handler.fold(r,e,void 0,t._handler),t},e.prototype.timeout=function(e,r){var n=this._beget(),f=n._handler,a=i(o,e,r,n._handler);return this._handler.visit(f,(function(e){t.clearTimer(a),this.resolve(e)}),(function(e){t.clearTimer(a),this.reject(e)}),f.notify),n},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t){},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(233),n=r(234);return function(e){var r=n(e),i=e.resolve,f=e.all,o=Array.prototype.reduce,a=Array.prototype.reduceRight,s=Array.prototype.slice;return e.any=function(t){for(var r,n,i=e._defer(),f=i._handler,o=t.length>>>0,a=o,s=[],c=0;c<o;++c)if(void 0!==(n=t[c])||c in t){if((r=e._handler(n)).state()>0){f.become(r),e._visitRemaining(t,c,r);break}r.visit(f,u,l)}else--a;0===a&&f.reject(new RangeError("any(): array must not be empty"));return i;function u(e){s=null,this.resolve(e)}function l(e){this.resolved||(s.push(e),0==--a&&this.reject(s))}},e.some=function(t,r){var n,i,f,o=e._defer(),a=o._handler,s=[],c=[],u=t.length>>>0,l=0;for(f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&++l;r=Math.max(r,0),n=l-r+1,l=Math.min(r,l),r>l?a.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+l)):0===l&&a.resolve(s);for(f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&e._handler(i).visit(a,d,h,a.notify);return o;function d(e){this.resolved||(s.push(e),0==--l&&(c=null,this.resolve(s)))}function h(e){this.resolved||(c.push(e),0==--n&&(s=null,this.reject(c)))}},e.settle=function(e){return f(e.map(c))},e.map=function(t,r){return e._traverse(r,t)},e.filter=function(t,r){var n=s.call(t);return e._traverse(r,n).then((function(t){return function(t,r){for(var n=r.length,i=new Array(n),f=0,o=0;f<n;++f)r[f]&&(i[o++]=e._handler(t[f]).value);return i.length=o,i}(n,t)}))},e.reduce=function(e,t){return arguments.length>2?o.call(e,u(t),arguments[2]):o.call(e,u(t))},e.reduceRight=function(e,t){return arguments.length>2?a.call(e,u(t),arguments[2]):a.call(e,u(t))},e.prototype.spread=function(e){return this.then(f).then((function(t){return e.apply(this,t)}))},e;function c(r){var n;return r instanceof e&&(n=r._handler.join()),n&&0===n.state()||!n?i(r).then(t.fulfilled,t.rejected):(n._unreport(),t.inspect(n))}function u(e){return function(t,n,i){return r(e,void 0,[t,n,i])}}}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(r){var n=r.resolve,i=r.reject,f=r.prototype.catch;function o(e,t){return function(r){return function(e,t){return function(e){return e===Error||null!=e&&e.prototype instanceof Error}(t)?e instanceof t:t(e)}(r,t)?e.call(this,r):i(r)}}function a(e,t,r,i){var f,o=e.call(t);return"object"!=typeof(f=o)&&"function"!=typeof f||null===f?r(i):function(e,t,r){return n(e).then((function(){return t(r)}))}(o,r,i)}return r.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},r.prototype.catch=r.prototype.otherwise=function(t){return arguments.length<2?f.call(this,t):"function"!=typeof t?this.ensure(e):f.call(this,o(arguments[1],t))},r.prototype.finally=r.prototype.ensure=function(e){return"function"!=typeof e?this:this.then((function(r){return a(e,this,t,r)}),(function(t){return a(e,this,i,t)}))},r.prototype.else=r.prototype.orElse=function(e){return this.then(void 0,(function(){return e}))},r.prototype.yield=function(e){return this.then((function(){return e}))},r.prototype.tap=function(e){return this.then(e).yield(this)},r};function e(){throw new TypeError("catch predicate must be a function")}function t(e){return e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){return e.prototype.fold=function(t,r){var n=this._beget();return this._handler.fold((function(r,n,i){e._handler(r).fold((function(e,r,n){n.resolve(t.call(this,r,e))}),n,this,i)}),r,n._handler.receiver,n._handler),n},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(233).inspect;return function(e){return e.prototype.inspect=function(){return t(e._handler(this))},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){var t=e.resolve;return e.iterate=function(e,t,n,i){return r((function(t){return[t,e(t)]}),t,n,i)},e.unfold=r,e;function r(e,n,i,f){return t(f).then((function(r){return t(n(r)).then((function(n){return n?r:t(e(r)).spread(o)}))}));function o(f,o){return t(i(f)).then((function(){return r(e,n,i,o)}))}}}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){return e.prototype.progress=function(e){return this.then(void 0,void 0,e)},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return function(e){return e.prototype.with=e.prototype.withThis=function(e){var t=this._beget(),r=t._handler;return r.receiver=e,this._handler.chain(r,e),t},e}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(88).setTimer,n=r(610);return function(e){var r,o=f,a=f;"undefined"!=typeof console&&(r=console,o=void 0!==r.error?function(e){r.error(e)}:function(e){r.log(e)},a=void 0!==r.info?function(e){r.info(e)}:function(e){r.log(e)}),e.onPotentiallyUnhandledRejection=function(e){h(l,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){h(d,e)},e.onFatalRejection=function(e){h(i,e.value)};var s=[],c=[],u=null;function l(e){e.handled||(c.push(e),o("Potentially unhandled rejection ["+e.id+"] "+n.formatError(e.value)))}function d(e){var t=c.indexOf(e);t>=0&&(c.splice(t,1),a("Handled previous rejection ["+e.id+"] "+n.formatObject(e.value)))}function h(e,r){s.push(e,r),null===u&&(u=t(p,0))}function p(){for(u=null;s.length>0;)s.shift()(s.shift())}return e};function i(e){throw e}function f(){}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){return{formatError:function(t){var r="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?r:r+" (WARNING: non-Error used)"},formatObject:e,tryStringify:t};function e(e){var r=String(e);return"[object Object]"===r&&"undefined"!=typeof JSON&&(r=t(e,r)),r}function t(e,t){try{return JSON.stringify(e)}catch(e){return t}}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){return r(612)({scheduler:new(r(613))(r(88).asap)})}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){(function(n){var i;!function(f){"use strict";void 0===(i=function(){return function(e){var t=e.scheduler,r=function(){if(null!=n&&"function"==typeof n.emit)return function(e,t){return"unhandledRejection"===e?n.emit(e,t.value,t):n.emit(e,t)};if("undefined"!=typeof self&&function(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(e){}return!1}())return function(e,t){return function(r,n){var i=new t(r,{detail:{reason:n.value,key:n},bubbles:!1,cancelable:!0});return!e.dispatchEvent(i)}}(self,CustomEvent);if("undefined"!=typeof self&&function(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}())return function(e,t){return function(r,n){var i=t.createEvent("CustomEvent");return i.initCustomEvent(r,!1,!0,{reason:n.value,key:n}),!e.dispatchEvent(i)}}(self,document);return L}(),i=Object.create||function(e){function t(){}return t.prototype=e,new t};function f(e,t){this._handler=e===b?t:function(e){var t=new g;try{e(r,n,i)}catch(e){n(e)}return t;function r(e){t.resolve(e)}function n(e){t.reject(e)}function i(e){t.notify(e)}}(e)}function o(e){return M(e)?e:new f(b,new v(h(e)))}function a(e){return new f(b,new v(new A(e)))}function s(){return P}function c(e,t,r){for(var n,i="function"==typeof t?function(n,i,f){f.resolved||u(r,l,n,e(t,i,n),f)}:l,o=new g,a=r.length>>>0,s=new Array(a),c=0;c<r.length&&!o.resolved;++c)void 0!==(n=r[c])||c in r?u(r,i,c,n,o):--a;return 0===a&&o.become(new w(s)),new f(b,o);function l(e,t,r){s[e]=t,0==--a&&r.become(new w(s))}}function u(e,t,r,n,i){if(N(n)){var f=function(e){return M(e)?e._handler.join():p(e)}(n),o=f.state();0===o?f.fold(t,r,void 0,i):o>0?t(r,f.value,i):(i.become(f),l(e,r+1,f))}else t(r,n,i)}function l(e,t,r){for(var n=t;n<e.length;++n)d(h(e[n]),r)}function d(e,t){if(e!==t){var r=e.state();0===r?e.visit(e,void 0,e._unreport):r<0&&e._unreport()}}function h(e){return M(e)?e._handler.join():N(e)?p(e):new w(e)}function p(e){try{var t=e.then;return"function"==typeof t?new _(t,e):new w(e)}catch(e){return new A(e)}}function b(){}function y(){}f.resolve=o,f.reject=a,f.never=s,f._defer=function(){return new f(b,new g)},f._handler=h,f.prototype.then=function(e,t,r){var n=this._handler,i=n.join().state();if("function"!=typeof e&&i>0||"function"!=typeof t&&i<0)return new this.constructor(b,n);var f=this._beget(),o=f._handler;return n.chain(o,n.receiver,e,t,r),f},f.prototype.catch=function(e){return this.then(void 0,e)},f.prototype._beget=function(){return function(e,t){var r=new g(e.receiver,e.join().context);return new t(b,r)}(this._handler,this.constructor)},f.all=function(e){return c(j,null,e)},f.race=function(e){if("object"!=typeof e||null===e)return a(new TypeError("non-iterable passed to race()"));return 0===e.length?s():1===e.length?o(e[0]):function(e){var t,r,n,i=new g;for(t=0;t<e.length;++t)if(void 0!==(r=e[t])||t in e){if(0!==(n=h(r)).state()){i.become(n),l(e,t+1,n);break}n.visit(i,i.resolve,i.reject)}return new f(b,i)}(e)},f._traverse=function(e,t){return c(B,e,t)},f._visitRemaining=l,b.prototype.when=b.prototype.become=b.prototype.notify=b.prototype.fail=b.prototype._unreport=b.prototype._report=L,b.prototype._state=0,b.prototype.state=function(){return this._state},b.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},b.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},b.prototype.visit=function(e,t,r,n){this.chain(m,e,t,r,n)},b.prototype.fold=function(e,t,r,n){this.when(new O(e,t,r,n))},F(b,y),y.prototype.become=function(e){e.fail()};var m=new y;function g(e,t){f.createContext(this,t),this.consumers=void 0,this.receiver=e,this.handler=void 0,this.resolved=!1}function v(e){this.handler=e}function _(e,r){g.call(this),t.enqueue(new C(e,r,this))}function w(e){f.createContext(this),this.value=e}F(b,g),g.prototype._state=0,g.prototype.resolve=function(e){this.become(h(e))},g.prototype.reject=function(e){this.resolved||this.become(new A(e))},g.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=new A(new TypeError("Promise cycle"));return e},g.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r<e.length;++r)t.when(e[r])},g.prototype.become=function(e){this.resolved||(this.resolved=!0,this.handler=e,void 0!==this.consumers&&t.enqueue(this),void 0!==this.context&&e._report(this.context))},g.prototype.when=function(e){this.resolved?t.enqueue(new R(e,this.handler)):void 0===this.consumers?this.consumers=[e]:this.consumers.push(e)},g.prototype.notify=function(e){this.resolved||t.enqueue(new k(e,this))},g.prototype.fail=function(e){var t=void 0===e?this.context:e;this.resolved&&this.handler.join().fail(t)},g.prototype._report=function(e){this.resolved&&this.handler.join()._report(e)},g.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},F(b,v),v.prototype.when=function(e){t.enqueue(new R(e,this))},v.prototype._report=function(e){this.join()._report(e)},v.prototype._unreport=function(){this.join()._unreport()},F(g,_),F(b,w),w.prototype._state=1,w.prototype.fold=function(e,t,r,n){!function(e,t,r,n,i){if("function"!=typeof e)return i.become(r);f.enterContext(r),function(e,t,r,n,i){try{e.call(n,t,r,i)}catch(e){i.become(new A(e))}}(e,t,r.value,n,i),f.exitContext()}(e,t,this,r,n)},w.prototype.when=function(e){I(e.fulfilled,this,e.receiver,e.resolver)};var E=0;function A(e){f.createContext(this),this.id=++E,this.value=e,this.handled=!1,this.reported=!1,this._report()}function S(e,t){this.rejection=e,this.context=t}function T(e){this.rejection=e}F(b,A),A.prototype._state=-1,A.prototype.fold=function(e,t,r,n){n.become(this)},A.prototype.when=function(e){"function"==typeof e.rejected&&this._unreport(),I(e.rejected,this,e.receiver,e.resolver)},A.prototype._report=function(e){t.afterQueue(new S(this,e))},A.prototype._unreport=function(){this.handled||(this.handled=!0,t.afterQueue(new T(this)))},A.prototype.fail=function(e){this.reported=!0,r("unhandledRejection",this),f.onFatalRejection(this,void 0===e?this.context:e)},S.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,r("unhandledRejection",this.rejection)||f.onPotentiallyUnhandledRejection(this.rejection,this.context))},T.prototype.run=function(){this.rejection.reported&&(r("rejectionHandled",this.rejection)||f.onPotentiallyUnhandledRejectionHandled(this.rejection))},f.createContext=f.enterContext=f.exitContext=f.onPotentiallyUnhandledRejection=f.onPotentiallyUnhandledRejectionHandled=f.onFatalRejection=L;var x=new b,P=new f(b,x);function R(e,t){this.continuation=e,this.handler=t}function k(e,t){this.handler=t,this.value=e}function C(e,t,r){this._then=e,this.thenable=t,this.resolver=r}function O(e,t,r,n){this.f=e,this.z=t,this.c=r,this.to=n,this.resolver=m,this.receiver=this}function M(e){return e instanceof f}function N(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function I(e,t,r,n){if("function"!=typeof e)return n.become(t);f.enterContext(t),function(e,t,r,n){try{n.become(h(e.call(r,t)))}catch(e){n.become(new A(e))}}(e,t.value,r,n),f.exitContext()}function D(e,t,r,n,i){if("function"!=typeof e)return i.notify(t);f.enterContext(r),function(e,t,r,n){try{n.notify(e.call(r,t))}catch(e){n.notify(e)}}(e,t,n,i),f.exitContext()}function B(e,t,r){try{return e(t,r)}catch(e){return a(e)}}function F(e,t){t.prototype=i(e.prototype),t.prototype.constructor=t}function j(e,t){return t}function L(){}return R.prototype.run=function(){this.handler.join().when(this.continuation)},k.prototype.run=function(){var e=this.handler.consumers;if(void 0!==e)for(var t,r=0;r<e.length;++r)D((t=e[r]).progress,this.value,this.handler,t.receiver,t.resolver)},C.prototype.run=function(){var e=this.resolver;!function(e,t,r,n,i){try{e.call(t,r,n,i)}catch(e){n(e)}}(this._then,this.thenable,(function(t){e.resolve(t)}),(function(t){e.reject(t)}),(function(t){e.notify(t)}))},O.prototype.fulfilled=function(e){this.f.call(this.c,this.z,e,this.to)},O.prototype.rejected=function(e){this.to.reject(e)},O.prototype.progress=function(e){this.to.notify(e)},f}}.call(t,r,t,e))||(e.exports=i)}(r(16))}).call(this,r(10))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(){function e(e){this._async=e,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var t=this;this.drain=function(){t._drain()}}return e.prototype.enqueue=function(e){this._queue[this._queueLen++]=e,this.run()},e.prototype.afterQueue=function(e){this._afterQueue[this._afterQueueLen++]=e,this.run()},e.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},e.prototype._drain=function(){for(var e=0;e<this._queueLen;++e)this._queue[e].run(),this._queue[e]=void 0;for(this._queueLen=0,this._running=!1,e=0;e<this._afterQueueLen;++e)this._afterQueue[e].run(),this._afterQueue[e]=void 0;this._afterQueueLen=0},e}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){"use strict";(function(t){var n=r(615);function i(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,f=Math.min(r,n);i<f;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function f(e){return t.Buffer&&"function"==typeof t.Buffer.isBuffer?t.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}var o=r(236),a=Object.prototype.hasOwnProperty,s=Array.prototype.slice,c="foo"===function(){}.name;function u(e){return Object.prototype.toString.call(e)}function l(e){return!f(e)&&("function"==typeof t.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}var d=e.exports=g,h=/\s*function\s+([^\(\s]*)\s*/;function p(e){if(o.isFunction(e)){if(c)return e.name;var t=e.toString().match(h);return t&&t[1]}}function b(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function y(e){if(c||!o.isFunction(e))return o.inspect(e);var t=p(e);return"[Function"+(t?": "+t:"")+"]"}function m(e,t,r,n,i){throw new d.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function g(e,t){e||m(e,!0,t,"==",d.ok)}function v(e,t,r,n){if(e===t)return!0;if(f(e)&&f(t))return 0===i(e,t);if(o.isDate(e)&&o.isDate(t))return e.getTime()===t.getTime();if(o.isRegExp(e)&&o.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(l(e)&&l(t)&&u(e)===u(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===i(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(f(e)!==f(t))return!1;var a=(n=n||{actual:[],expected:[]}).actual.indexOf(e);return-1!==a&&a===n.expected.indexOf(t)||(n.actual.push(e),n.expected.push(t),function(e,t,r,n){if(null==e||null==t)return!1;if(o.isPrimitive(e)||o.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=_(e),f=_(t);if(i&&!f||!i&&f)return!1;if(i)return v(e=s.call(e),t=s.call(t),r);var a,c,u=A(e),l=A(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),c=u.length-1;c>=0;c--)if(u[c]!==l[c])return!1;for(c=u.length-1;c>=0;c--)if(!v(e[a=u[c]],t[a],r,n))return!1;return!0}(e,t,r,n))}return r?e===t:e==t}function _(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function w(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function E(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&m(i,r,"Missing expected exception"+n);var f="string"==typeof n,a=!e&&i&&!r;if((!e&&o.isError(i)&&f&&w(i,r)||a)&&m(i,r,"Got unwanted exception"+n),e&&i&&r&&!w(i,r)||!e&&i)throw i}d.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return b(y(e.actual),128)+" "+e.operator+" "+b(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||m;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=p(t),f=n.indexOf("\n"+i);if(f>=0){var o=n.indexOf("\n",f+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(d.AssertionError,Error),d.fail=m,d.ok=g,d.equal=function(e,t,r){e!=t&&m(e,t,r,"==",d.equal)},d.notEqual=function(e,t,r){e==t&&m(e,t,r,"!=",d.notEqual)},d.deepEqual=function(e,t,r){v(e,t,!1)||m(e,t,r,"deepEqual",d.deepEqual)},d.deepStrictEqual=function(e,t,r){v(e,t,!0)||m(e,t,r,"deepStrictEqual",d.deepStrictEqual)},d.notDeepEqual=function(e,t,r){v(e,t,!1)&&m(e,t,r,"notDeepEqual",d.notDeepEqual)},d.notDeepStrictEqual=function e(t,r,n){v(t,r,!0)&&m(t,r,n,"notDeepStrictEqual",e)},d.strictEqual=function(e,t,r){e!==t&&m(e,t,r,"===",d.strictEqual)},d.notStrictEqual=function(e,t,r){e===t&&m(e,t,r,"!==",d.notStrictEqual)},d.throws=function(e,t,r){E(!0,e,t,r)},d.doesNotThrow=function(e,t,r){E(!1,e,t,r)},d.ifError=function(e){if(e)throw e},d.strict=n((function e(t,r){t||m(t,!0,r,"==",e)}),d,{equal:d.strictEqual,deepEqual:d.deepStrictEqual,notEqual:d.notStrictEqual,notDeepEqual:d.notDeepStrictEqual}),d.strict.strict=d.strict;var A=Object.keys||function(e){var t=[];for(var r in e)a.call(e,r)&&t.push(r);return t}}).call(this,r(12))},function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,a,s=o(e),c=1;c<arguments.length;c++){for(var u in r=Object(arguments[c]))i.call(r,u)&&(s[u]=r[u]);if(n){a=n(r);for(var l=0;l<a.length;l++)f.call(r,a[l])&&(s[a[l]]=r[a[l]])}}return s}},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t,r){(t=e.exports=r(237)).Stream=t,t.Readable=t,t.Writable=r(241),t.Duplex=r(53),t.Transform=r(242),t.PassThrough=r(624),t.finished=r(123),t.pipeline=r(625)},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=r(7).Buffer,a=r(621).inspect,s=a&&a.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,c;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,n,i=o.allocUnsafe(e>>>0),f=this.head,a=0;f;)t=f.data,r=i,n=a,o.prototype.copy.call(t,r,n),a+=f.data.length,f=f.next;return i}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,f=e>i.length?i.length:e;if(f===i.length?n+=i:n+=i.slice(0,e),0==(e-=f)){f===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(f));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,f=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,f),0==(e-=f)){f===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(f));break}++n}return this.length-=n,t}},{key:s,value:function(e,t){return a(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}])&&f(t.prototype,r),c&&f(t,c),e}()},function(e,t){},function(e,t,r){"use strict";(function(t){var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=r(123),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[d].read();null!==r&&(e[u]=null,e[o]=null,e[a]=null,t(h(r,!1)))}}function b(e){t.nextTick(p,e)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((i(n={get stream(){return this[d]},next:function(){var e=this,r=this[s];if(null!==r)return Promise.reject(r);if(this[c])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise((function(r,n){t.nextTick((function(){e[s]?n(e[s]):r(h(void 0,!0))}))}));var n,i=this[u];if(i)n=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(h(void 0,!0)):t[l](r,n)}),n)}}(i,this));else{var f=this[d].read();if(null!==f)return Promise.resolve(h(f,!1));n=new Promise(this[l])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[d].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),n),y);e.exports=function(e){var t,r=Object.create(m,(i(t={},d,{value:e,writable:!0}),i(t,o,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,l,{value:function(e,t){var n=r[d].read();n?(r[u]=null,r[o]=null,r[a]=null,e(h(n,!1))):(r[o]=e,r[a]=t)},writable:!0}),t));return r[u]=null,f(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[a];return null!==t&&(r[u]=null,r[o]=null,r[a]=null,t(e)),void(r[s]=e)}var n=r[o];null!==n&&(r[u]=null,r[o]=null,r[a]=null,n(h(void 0,!0))),r[c]=!0})),e.on("readable",b.bind(null,r)),r}}).call(this,r(10))},function(e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(e,t,r){"use strict";e.exports=i;var n=r(242);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(9)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var n;var i=r(52).codes,f=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function s(e,t,i,f){f=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(f);var a=!1;e.on("close",(function(){a=!0})),void 0===n&&(n=r(123)),n(e,{readable:t,writable:i},(function(e){if(e)return f(e);a=!0,f()}));var s=!1;return function(t){if(!a&&!s)return s=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void f(t||new o("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?a:e.pop():a}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new f("streams");var o=t.map((function(e,r){var f=r<t.length-1;return s(e,f,r>0,(function(e){n||(n=e),e&&o.forEach(c),f||(o.forEach(c),i(n))}))}));return t.reduce(u)}},function(e,t,r){"use strict";const{Buffer:n}=r(7),i=Symbol.for("BufferList");function f(e){if(!(this instanceof f))return new f(e);f._init.call(this,e)}f._init=function(e){Object.defineProperty(this,i,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},f.prototype._new=function(e){return new f(e)},f.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;r<this._bufs.length;r++){const n=t+this._bufs[r].length;if(e<n||r===this._bufs.length-1)return[r,e-t];t=n}},f.prototype._reverseOffset=function(e){const t=e[0];let r=e[1];for(let e=0;e<t;e++)r+=this._bufs[e].length;return r},f.prototype.get=function(e){if(e>this.length||e<0)return;const t=this._offset(e);return this._bufs[t[0]][t[1]]},f.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},f.prototype.copy=function(e,t,r,i){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof i||i>this.length)&&(i=this.length),r>=this.length)return e||n.alloc(0);if(i<=0)return e||n.alloc(0);const f=!!e,o=this._offset(r),a=i-r;let s=a,c=f&&t||0,u=o[1];if(0===r&&i===this.length){if(!f)return 1===this._bufs.length?this._bufs[0]:n.concat(this._bufs,this.length);for(let t=0;t<this._bufs.length;t++)this._bufs[t].copy(e,c),c+=this._bufs[t].length;return e}if(s<=this._bufs[o[0]].length-u)return f?this._bufs[o[0]].copy(e,t,u,u+s):this._bufs[o[0]].slice(u,u+s);f||(e=n.allocUnsafe(a));for(let t=o[0];t<this._bufs.length;t++){const r=this._bufs[t].length-u;if(!(s>r)){this._bufs[t].copy(e,c,u,u+s),c+=r;break}this._bufs[t].copy(e,c,u),c+=r,s-=r,u&&(u=0)}return e.length>c?e.slice(0,c):e},f.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),i=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?i.pop():i[i.length-1]=i[i.length-1].slice(0,n[1]),0!==r[1]&&(i[0]=i[0].slice(r[1])),this._new(i)},f.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},f.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},f.prototype.duplicate=function(){const e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e},f.prototype.append=function(e){if(null==e)return this;if(e.buffer)this._appendBuffer(n.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else"number"==typeof e&&(e=e.toString()),this._appendBuffer(n.from(e));return this},f.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},f.prototype.indexOf=function(e,t,r){if(void 0===r&&"string"==typeof t&&(r=t,t=void 0),"function"==typeof e||Array.isArray(e))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if("number"==typeof e?e=n.from([e]):"string"==typeof e?e=n.from(e,r):this._isBufferList(e)?e=e.slice():Array.isArray(e.buffer)?e=n.from(e.buffer,e.byteOffset,e.byteLength):n.isBuffer(e)||(e=n.from(e)),t=Number(t||0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),0===e.length)return t>this.length?this.length:t;const i=this._offset(t);let f=i[0],o=i[1];for(;f<this._bufs.length;f++){const t=this._bufs[f];for(;o<t.length;){if(t.length-o>=e.length){const r=t.indexOf(e,o);if(-1!==r)return this._reverseOffset([f,r]);o=t.length-e.length+1}else{const t=this._reverseOffset([f,o]);if(this._match(t,e))return t;o++}}o=0}return-1},f.prototype._match=function(e,t){if(this.length-e<t.length)return!1;for(let r=0;r<t.length;r++)if(this.get(e+r)!==t[r])return!1;return!0},function(){const e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(const t in e)!function(t){f.prototype[t]=null===e[t]?function(e,r){return this.slice(e,e+r)[t](0,r)}:function(r=0){return this.slice(r,r+e[t])[t](0)}}(t)}(),f.prototype._isBufferList=function(e){return e instanceof f||f.isBufferList(e)},f.isBufferList=function(e){return null!=e&&e[i]},e.exports=f},function(e,t,r){"use strict";const n=r(628).Transform,i=r(9),f=r(89);function o(e){(e=e||{}).objectMode=!0,e.highWaterMark=16,n.call(this,e),this._msgpack=e.msgpack}function a(e){if(!(this instanceof a))return(e=e||{}).msgpack=this,new a(e);o.call(this,e),this._wrap="wrap"in e&&e.wrap}function s(e){if(!(this instanceof s))return(e=e||{}).msgpack=this,new s(e);o.call(this,e),this._chunks=f(),this._wrap="wrap"in e&&e.wrap}i(o,n),i(a,o),a.prototype._transform=function(e,t,r){let n=null;try{n=this._msgpack.encode(this._wrap?e.value:e).slice(0)}catch(e){return this.emit("error",e),r()}this.push(n),r()},i(s,o),s.prototype._transform=function(e,t,r){e&&this._chunks.append(e);try{let e=this._msgpack.decode(this._chunks);this._wrap&&(e={value:e}),this.push(e)}catch(e){return void(e instanceof this._msgpack.IncompleteBufferError?r():this.emit("error",e))}this._chunks.length>0?this._transform(null,t,r):r()},e.exports.decoder=s,e.exports.encoder=a},function(e,t,r){(t=e.exports=r(243)).Stream=t,t.Readable=t,t.Writable=r(247),t.Duplex=r(55),t.Transform=r(248),t.PassThrough=r(634),t.finished=r(124),t.pipeline=r(635)},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=r(7).Buffer,a=r(631).inspect,s=a&&a.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,c;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,n,i=o.allocUnsafe(e>>>0),f=this.head,a=0;f;)t=f.data,r=i,n=a,o.prototype.copy.call(t,r,n),a+=f.data.length,f=f.next;return i}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,f=e>i.length?i.length:e;if(f===i.length?n+=i:n+=i.slice(0,e),0==(e-=f)){f===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(f));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,f=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,f),0==(e-=f)){f===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(f));break}++n}return this.length-=n,t}},{key:s,value:function(e,t){return a(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}])&&f(t.prototype,r),c&&f(t,c),e}()},function(e,t){},function(e,t,r){"use strict";(function(t){var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=r(124),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[d].read();null!==r&&(e[u]=null,e[o]=null,e[a]=null,t(h(r,!1)))}}function b(e){t.nextTick(p,e)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((i(n={get stream(){return this[d]},next:function(){var e=this,r=this[s];if(null!==r)return Promise.reject(r);if(this[c])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise((function(r,n){t.nextTick((function(){e[s]?n(e[s]):r(h(void 0,!0))}))}));var n,i=this[u];if(i)n=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(h(void 0,!0)):t[l](r,n)}),n)}}(i,this));else{var f=this[d].read();if(null!==f)return Promise.resolve(h(f,!1));n=new Promise(this[l])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[d].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),n),y);e.exports=function(e){var t,r=Object.create(m,(i(t={},d,{value:e,writable:!0}),i(t,o,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,l,{value:function(e,t){var n=r[d].read();n?(r[u]=null,r[o]=null,r[a]=null,e(h(n,!1))):(r[o]=e,r[a]=t)},writable:!0}),t));return r[u]=null,f(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[a];return null!==t&&(r[u]=null,r[o]=null,r[a]=null,t(e)),void(r[s]=e)}var n=r[o];null!==n&&(r[u]=null,r[o]=null,r[a]=null,n(h(void 0,!0))),r[c]=!0})),e.on("readable",b.bind(null,r)),r}}).call(this,r(10))},function(e,t){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(e,t,r){"use strict";e.exports=i;var n=r(248);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(9)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var n;var i=r(54).codes,f=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function s(e,t,i,f){f=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(f);var a=!1;e.on("close",(function(){a=!0})),void 0===n&&(n=r(124)),n(e,{readable:t,writable:i},(function(e){if(e)return f(e);a=!0,f()}));var s=!1;return function(t){if(!a&&!s)return s=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void f(t||new o("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?a:e.pop():a}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new f("streams");var o=t.map((function(e,r){var f=r<t.length-1;return s(e,f,r>0,(function(e){n||(n=e),e&&o.forEach(c),f||(o.forEach(c),i(n))}))}));return t.reduce(u)}},function(e,t,r){"use strict";const n=r(89),i=r(125).IncompleteBufferError,f={196:2,197:3,198:5,199:3,200:4,201:6,202:5,203:9,204:2,205:3,206:5,207:9,208:2,209:3,210:5,211:9,212:3,213:4,214:6,215:10,216:18,217:2,218:3,219:5,222:3,220:3,221:5};function o(e,t,r){return t>=r+e}function a(e,t,r,n,i){let f=t;const o=[];let a=0;for(;a++<r;){const t=c(e,f,i);if(!t)return null;o.push(t[0]),f+=t[1]}return[o,n+f-t]}function s(e,t,r,n,i){const f=a(e,t,2*r,n,i);if(!f)return null;const[o,s]=f;let c=!i.options.preferMap;if(c)for(let e=0;e<2*r;e+=2)if("string"!=typeof o[e]){c=!1;break}if(c){const e={};for(let t=0;t<2*r;t+=2){const r=o[t],n=o[t+1];if("__proto__"===r){if("error"===i.options.protoAction)throw new SyntaxError("Object contains forbidden prototype property");if("remove"===i.options.protoAction)continue}e[r]=n}return[e,s]}{const e=new Map;for(let t=0;t<2*r;t+=2){const r=o[t],n=o[t+1];e.set(r,n)}return[e,s]}}function c(e,t,r){if(e.length<=t)return null;const n=e.length-t;let i=t;const c=e.readUInt8(i);i+=1;const l=f[c]||-1;if(n<l)return null;if(c<128)return[c,1];if(128==(240&c)){return s(e,i,15&c,i-t,r)}if(144==(240&c)){return a(e,i,15&c,i-t,r)}if(160==(224&c)){const t=31&c;if(!o(t,n,1))return null;return[e.toString("utf8",i,i+t),t+1]}if(c>=192&&c<=195)return function(e){if(192===e)return[null,1];if(194===e)return[!1,1];if(195===e)return[!0,1]}(c);if(c>=196&&c<=198){const t=e.readUIntBE(i,l-1);if(i+=l-1,!o(t,n,l))return null;return[e.slice(i,i+t),l+t]}if(c>=199&&c<=201){const t=e.readUIntBE(i,l-2);i+=l-2;const f=e.readInt8(i);return i+=1,o(t,n,l)?u(e,i,f,t,l,r):null}if(c>=202&&c<=203)return function(e,t,r){let n;4===r&&(n=e.readFloatBE(t));8===r&&(n=e.readDoubleBE(t));return[n,r+1]}(e,i,l-1);if(c>=204&&c<=207)return function(e,t,r){const n=t+r;let i=0;for(;t<n;)i+=e.readUInt8(t++)*Math.pow(256,n-t);return[i,r+1]}(e,i,l-1);if(c>=208&&c<=211)return function(e,t,r){let n;1===r&&(n=e.readInt8(t));2===r&&(n=e.readInt16BE(t));4===r&&(n=e.readInt32BE(t));8===r&&(n=function(e,t){var r=128==(128&e[t]);if(r){let r=1;for(let n=t+7;n>=t;n--){const t=(255^e[n])+r;e[n]=255&t,r=t>>8}}const n=e.readUInt32BE(t+0),i=e.readUInt32BE(t+4);return(4294967296*n+i)*(r?-1:1)}(e.slice(t,t+8),0));return[n,r+1]}(e,i,l-1);if(c>=212&&c<=216){const t=e.readInt8(i);return i+=1,u(e,i,t,l-2,2,r)}if(c>=217&&c<=219){const t=e.readUIntBE(i,l-1);if(i+=l-1,!o(t,n,l))return null;return[e.toString("utf8",i,i+t),l+t]}if(c>=220&&c<=221){const t=e.readUIntBE(i,l-1);return i+=l-1,a(e,i,t,l,r)}if(c>=222&&c<=223){let t;switch(c){case 222:return t=e.readUInt16BE(i),i+=2,s(e,i,t,3,r);case 223:return t=e.readUInt32BE(i),i+=4,s(e,i,t,5,r)}}if(c>=224)return[c-256,1];throw new Error("not implemented yet")}function u(e,t,r,n,i,f){const o=e.slice(t,t+n),a=f.decodingTypes.get(r);if(!a)throw new Error("unable to find ext type "+r);return[a(o),i+n]}e.exports=function(e,t){const r={decodingTypes:e,options:t,decode:f};return f;function f(e){e instanceof n||(e=n().append(e));const t=c(e,0,r);if(!t)throw new i;return e.consume(t[1]),t[0]}}},function(e,t,r){"use strict";const n=r(11).Buffer,i=r(89),f=r(125).isFloat;function o(e,t,r){const n=r%4294967296,i=Math.floor(r/4294967296);e.writeUInt32BE(i,t+0),e.writeUInt32BE(n,t+4)}e.exports=function(e,t){function r(a){if(void 0===a)throw new Error("undefined is not encodable in msgpack!");if(null===a)return n.from([192]);if(!0===a)return n.from([195]);if(!1===a)return n.from([194]);if(a instanceof Map)return function(e,t,r){const n=[u(e.size,128,222)],f=[...e.keys()];t.preferMap||f.every((e=>"string"==typeof e))&&console.warn("Map with string only keys will be deserialized as an object!");return f.forEach((t=>{n.push(r(t),r(e.get(t)))})),i(n)}(a,t,r);if("string"==typeof a)return function(e,t){const r=n.byteLength(e);let i;r<32?(i=n.allocUnsafe(1+r),i[0]=160|r,r>0&&i.write(e,1)):r<=255&&!t.compatibilityMode?(i=n.allocUnsafe(2+r),i[0]=217,i[1]=r,i.write(e,2)):r<=65535?(i=n.allocUnsafe(3+r),i[0]=218,i.writeUInt16BE(r,1),i.write(e,3)):(i=n.allocUnsafe(5+r),i[0]=219,i.writeUInt32BE(r,1),i.write(e,5));return i}(a,t);if(a&&(a.readUInt32LE||a instanceof Uint8Array))return a instanceof Uint8Array&&(a=n.from(a)),i([l(a.length),a]);if(Array.isArray(a))return function(e,t){const r=[u(e.length,144,220)];if(e.forEach((e=>{r.push(t(e))})),r.length!==e.length+1)throw new Error("Sparse arrays are not encodable in msgpack");return i(r)}(a,r);if("object"==typeof a)return function(e,t){const r=t.find((t=>t.check(e)));if(!r)return null;const n=r.encode(e);return n?i([c(n.length-1),n]):null}(a,e)||function(e,t,r){const n=[];for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&void 0!==e[t]&&"function"!=typeof e[t]&&n.push(t);const f=[u(n.length,128,222)];t.sortKeys&&n.sort();return n.forEach((t=>{f.push(r(t),r(e[t]))})),i(f)}(a,t,r);if("number"==typeof a)return function(e,t){let r;if(f(e))return s(e,t.forceFloat64);if(Math.abs(e)>9007199254740991)return s(e,!0);if(e>=0){if(e<128)return n.from([e]);if(e<256)return n.from([204,e]);if(e<65536)return n.from([205,255&e>>8,255&e]);if(e<=4294967295)return n.from([206,255&e>>24,255&e>>16,255&e>>8,255&e]);e<=9007199254740991&&(r=n.allocUnsafe(9),r[0]=207,o(r,1,e))}else e>=-32?(r=n.allocUnsafe(1),r[0]=256+e):e>=-128?(r=n.allocUnsafe(2),r[0]=208,r.writeInt8(e,1)):e>=-32768?(r=n.allocUnsafe(3),r[0]=209,r.writeInt16BE(e,1)):e>-214748365?(r=n.allocUnsafe(5),r[0]=210,r.writeInt32BE(e,1)):e>=-9007199254740991&&(r=n.allocUnsafe(9),r[0]=211,function(e,t,r){const n=r<0;r=Math.abs(r),o(e,t,r),n&&function(e,t){let r=t+8;for(;r-- >t;)if(0!==e[r]){e[r]=1+(255^e[r]);break}for(;r-- >t;)e[r]=255^e[r]}(e,t)}(r,1,e));return r}(a,t);throw new Error("not implemented yet")}return function(e){return r(e).slice()}};const a=Math.fround;function s(e,t){let r;return!t&&a&&Object.is(a(e),e)?(r=n.allocUnsafe(5),r[0]=202,r.writeFloatBE(e,1)):(r=n.allocUnsafe(9),r[0]=203,r.writeDoubleBE(e,1)),r}function c(e){return 1===e?n.from([212]):2===e?n.from([213]):4===e?n.from([214]):8===e?n.from([215]):16===e?n.from([216]):e<256?n.from([199,e]):e<65536?n.from([200,e>>8,255&e]):n.from([201,e>>24,e>>16&255,e>>8&255,255&e])}function u(e,t,r){if(e<16)return n.from([t|e]);const i=e<65536?2:4,f=n.allocUnsafe(1+i);return f[0]=e<65536?r:r+1,f.writeUIntBE(e,1,i),f}function l(e){let t;return e<=255?(t=n.allocUnsafe(2),t[0]=196,t[1]=e):e<=65535?(t=n.allocUnsafe(3),t[0]=197,t.writeUInt16BE(e,1)):(t=n.allocUnsafe(5),t[0]=198,t.writeUInt32BE(e,1)),t}},function(e,t,r){(function(t){e.exports={check:function(e){return"function"==typeof e.getDate},type:-1,encode:function(e){if(null===e)return;const r=1*e,n=Math.floor(r/1e3),i=1e6*(r-1e3*n);if(n<0||n>17179869184){const e=t.allocUnsafe(13);e[0]=-1,e.writeUInt32BE(i,1);let r="";if(n>=0){const e="0000000000000000";r=n.toString(16),r=e.slice(0,-1*r.length)+r}else{let e=(-1*n).toString(2),t=e.length-1;for(;"0"===e[t];)t--;e=e.slice(0,t).split("").map((function(e){return"1"===e?0:1})).join("")+e.slice(t,e.length);e="1111111111111111111111111111111111111111111111111111111111111111".slice(0,-1*e.length)+e,e.match(/.{1,8}/g).forEach((function(e){1===(e=parseInt(e,2).toString(16)).length&&(e="0"+e),r+=e}))}return e.write(r,5,"hex"),e}if(i||n>4294967295){const e=t.allocUnsafe(9);e[0]=-1;const r=4*i+n/Math.pow(2,32)&4294967295,f=4294967295&n;return e.writeInt32BE(r,1),e.writeInt32BE(f,5),e}{const e=t.allocUnsafe(5);return e[0]=-1,e.writeUInt32BE(Math.floor(r/1e3),1),e}},decode:function(e){let t,r,n,i,f=0;switch(e.length){case 4:t=e.readUInt32BE(0);break;case 8:r=e.readUInt32BE(0),n=e.readUInt32BE(4),f=r/4,t=(3&r)*Math.pow(2,32)+n;break;case 12:if(i=e.toString("hex",4,12),128&parseInt(e.toString("hex",4,6),16)){let e="";const r="00000000";i.match(/.{1,2}/g).forEach((function(t){t=parseInt(t,16).toString(2),t=r.slice(0,-1*t.length)+t,e+=t})),t=-1*parseInt(e.split("").map((function(e){return"1"===e?0:1})).join(""),2)-1}else t=parseInt(i,16);f=e.readUInt32BE(0)}const o=1e3*t+Math.round(f/1e6);return new Date(o)}}}).call(this,r(7).Buffer)},function(e,t){},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){return r(641)(r(644).Promise)}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=new(r(642))(new(r(643)));return function(e){return t.monitor(e)}}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=/[\s\(\/\\](node|module|timers)\.js:|when([\/\\]{1,2}(lib|monitor|es6-shim)[\/\\]{1,2}|\.js)|(new\sPromise)\b|(\b(PromiseMonitor|ConsoleReporter|Scheduler|RunHandlerTask|ProgressTask|Promise|.*Handler)\.[\w_]\w\w+\b)|\b(tryCatch\w+|getHandler\w*)\b/i,n=r(88).setTimer,i=r(250),f=[];function o(e){this.logDelay=0,this.stackFilter=t,this.stackJumpSeparator="from execution context:",this.filterDuplicateFrames=!0,this._reporter=e,"function"==typeof e.configurePromiseMonitor&&e.configurePromiseMonitor(this),this._traces=[],this._traceTask=0;var r=this;this._doLogTraces=function(){r._logTraces()}}function a(e,t,r){t.length>1&&(t[0]=r,e.push.apply(e,t))}function s(e,t){return t.filter((function(t){return!e.test(t)}))}function c(e){return!e.handler.handled}return o.prototype.monitor=function(e){var t=this;return e.createContext=function(e,r){e.context=t.createContext(e,r)},e.enterContext=function(e){f.push(e.context)},e.exitContext=function(){f.pop()},e.onPotentiallyUnhandledRejection=function(e,r){return t.addTrace(e,r)},e.onPotentiallyUnhandledRejectionHandled=function(e){return t.removeTrace(e)},e.onFatalRejection=function(e,r){return t.fatal(e,r)},this},o.prototype.createContext=function(e,t){var r={parent:t||f[f.length-1],stack:void 0};return i.captureStack(r,e.constructor),r},o.prototype.addTrace=function(e,t){var r,n;for(n=this._traces.length-1;n>=0&&(r=this._traces[n]).handler!==e;--n);n>=0?r.extraContext=t:this._traces.push({handler:e,extraContext:t}),this.logTraces()},o.prototype.removeTrace=function(){this.logTraces()},o.prototype.fatal=function(e,t){var r=new Error;r.stack=this._createLongTrace(e.value,e.context,t).join("\n"),n((function(){throw r}),0)},o.prototype.logTraces=function(){this._traceTask||(this._traceTask=n(this._doLogTraces,this.logDelay))},o.prototype._logTraces=function(){this._traceTask=void 0,this._traces=this._traces.filter(c),this._reporter.log(this.formatTraces(this._traces))},o.prototype.formatTraces=function(e){return e.map((function(e){return this._createLongTrace(e.handler.value,e.handler.context,e.extraContext)}),this)},o.prototype._createLongTrace=function(e,t,r){var n=i.parse(e)||[String(e)+" (WARNING: non-Error used)"];return n=s(this.stackFilter,n),this._appendContext(n,t),this._appendContext(n,r),this.filterDuplicateFrames?this._removeDuplicates(n):n},o.prototype._removeDuplicates=function(e){var t={},r=this.stackJumpSeparator,n=0;return e.reduceRight((function(e,i,f){return 0===f?e.unshift(i):i===r?n>0&&(e.unshift(i),n=0):t[i]||(t[i]=!0,e.unshift(i),++n),e}),[])},o.prototype._appendContext=function(e,t){e.push.apply(e,this._createTrace(t))},o.prototype._createTrace=function(e){for(var t,r=[];e;)(t=i.parse(e))&&a(r,t=s(this.stackFilter,t),this.stackJumpSeparator),e=e.parent;return r},o}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){var n;!function(i){"use strict";void 0===(n=function(e){var t=r(250);function n(){this._previouslyReported=!1}function i(){}return n.prototype=function(){var e,t,r,n;if("undefined"==typeof console)e=t=i;else{var f=console;"function"==typeof f.error&&"function"==typeof f.dir?(t=function(e){f.error(e)},e=function(e){f.log(e)},"function"==typeof f.groupCollapsed&&(r=function(e){f.groupCollapsed(e)},n=function(){f.groupEnd()})):e=t=void 0!==f.log&&"undefined"!=typeof JSON?function(e){if("string"!=typeof e)try{e=JSON.stringify(e)}catch(e){}f.log(e)}:i}return{msg:e,warn:t,groupStart:r||t,groupEnd:n||i}}(),n.prototype.log=function(e){if(0!==e.length){this._previouslyReported=!0,this.groupStart("[promises] Unhandled rejections: "+e.length);try{this._log(e)}finally{this.groupEnd()}}else this._previouslyReported&&(this._previouslyReported=!1,this.msg("[promises] All previously unhandled rejections have now been handled"))},n.prototype._log=function(e){for(var r=0;r<e.length;++r)this.warn(t.format(e[r]))},n}.call(t,r,t,e))||(e.exports=n)}(r(16))},function(e,t,r){(function(t){e.exports=function(){var e;return function e(t,r,n){function i(o,a){if(!r[o]){if(!t[o]){if(f)return f(o,!0);throw new Error("Cannot find module '"+o+"'")}var s=r[o]={exports:{}};t[o][0].call(s.exports,(function(e){var r=t[o][1][e];return i(r||e)}),s,s.exports,e,t,r,n)}return r[o].exports}for(var f=!1,o=0;o<n.length;o++)i(n[o]);return i}({1:[function(e,t,r){var n=t.exports=e("../when");n.callbacks=e("../callbacks"),n.cancelable=e("../cancelable"),n.delay=e("../delay"),n.fn=e("../function"),n.guard=e("../guard"),n.keys=e("../keys"),n.nodefn=n.node=e("../node"),n.parallel=e("../parallel"),n.pipeline=e("../pipeline"),n.poll=e("../poll"),n.sequence=e("../sequence"),n.timeout=e("../timeout")},{"../callbacks":2,"../cancelable":3,"../delay":4,"../function":5,"../guard":6,"../keys":7,"../node":26,"../parallel":27,"../pipeline":28,"../poll":29,"../sequence":30,"../timeout":31,"../when":32}],2:[function(t,r,n){!function(e){e((function(e){var t=e("./when").Promise,r=e("./lib/liftAll"),n=Array.prototype.slice,i=e("./lib/apply")(t,o);return{lift:c,liftAll:u,apply:f,call:s,promisify:l};function f(e,t){return i(e,this,t||[])}function o(e,t,r,n){r.push(p(n.resolve,n),p(n.reject,n)),a(e,t,r,n)}function a(e,t,r,n){try{e.apply(t,r)}catch(e){n.reject(e)}}function s(e){return i(e,this,n.call(arguments,1))}function c(e){var t=arguments.length>1?n.call(arguments,1):[];return function(){return i(e,this,t.concat(n.call(arguments)))}}function u(e,t,n){return r(c,t,n,e)}function l(e,r){return function(){var n=this;return t.all(arguments).then((function(i){var f,o,a=t._defer();return"number"==typeof r.callback&&(f=d(i,r.callback)),"number"==typeof r.errback&&(o=d(i,r.errback)),o<f?(h(i,o,a._handler.reject,a._handler),h(i,f,a._handler.resolve,a._handler)):(h(i,f,a._handler.resolve,a._handler),h(i,o,a._handler.reject,a._handler)),e.apply(n,i),a}))}}function d(e,t){return t<0?e.length+t+2:t}function h(e,t,r,n){"number"==typeof t&&e.splice(t,0,p(r,n))}function p(e,t){return function(){arguments.length>1?e.call(t,n.call(arguments)):e.apply(t,arguments)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],3:[function(t,r,n){!function(e){e((function(){return function(e,t){return e.cancel=function(){try{e.reject(t(e))}catch(t){e.reject(t)}return e.promise},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],4:[function(t,r,n){!function(e){e((function(e){var t=e("./when");return function(e,r){return t(r).delay(e)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],5:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.try,n=e("./lib/liftAll"),i=e("./lib/apply")(t.Promise),f=Array.prototype.slice;return{lift:a,liftAll:s,call:r,apply:o,compose:c};function o(e,t){return i(e,this,null==t?[]:f.call(t))}function a(e){var t=arguments.length>1?f.call(arguments,1):[];return function(){return i(e,this,t.concat(f.call(arguments)))}}function s(e,t,r){return n(a,t,r,e)}function c(e){var n=f.call(arguments,1);return function(){var i=this,o=f.call(arguments),a=r.apply(i,[e].concat(o));return t.reduce(n,(function(e,t){return t.call(i,e)}),a)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],6:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=Array.prototype.slice;return n.n=i,n;function n(e,n){return function(){var i=r.call(arguments);return t(e()).withThis(this).then((function(e){return t(n.apply(this,i)).finally(e)}))}}function i(e){var r=0,n=[];return function(){return t.promise((function(t){r<e?t(i):n.push(t),r+=1}))};function i(){r=Math.max(r-1,0),n.length>0&&n.shift()(i)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],7:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("./when"),r=t.Promise,n=t.resolve;return{all:t.lift(i),map:f,settle:o};function i(e){for(var t,n=r._defer(),i=r._handler(n),f={},o=Object.keys(e),a=o.length,s=0;s<o.length;++s)t=o[s],r._handler(e[t]).fold(c,t,f,i);return 0===a&&i.resolve(f),n;function c(e,t,r){this[e]=t,0==--a&&r.resolve(f)}}function f(e,t){return n(e).then((function(e){return i(Object.keys(e).reduce((function(t,i){return t[i]=n(e[i]).fold(r,i),t}),{}))}));function r(e,r){return t(r,e)}}function o(e){var i=Object.keys(e),f={};if(0===i.length)return n(f);var o=r._defer(),s=r._handler(o),c=i.map((function(t){return e[t]}));return t.settle(c).then((function(e){a(i,e,f,s)})),o}function a(e,t,r,n){for(var i=0;i<e.length;i++)r[e[i]]=t[i];n.resolve(r)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],8:[function(t,r,n){!function(e){"use strict";e((function(e){return e("./makePromise")({scheduler:new(e("./Scheduler"))(e("./env").asap)})}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./Scheduler":9,"./env":21,"./makePromise":24}],9:[function(t,r,n){!function(e){"use strict";e((function(){function e(e){this._async=e,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var t=this;this.drain=function(){t._drain()}}return e.prototype.enqueue=function(e){this._queue[this._queueLen++]=e,this.run()},e.prototype.afterQueue=function(e){this._afterQueue[this._afterQueueLen++]=e,this.run()},e.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},e.prototype._drain=function(){for(var e=0;e<this._queueLen;++e)this._queue[e].run(),this._queue[e]=void 0;for(this._queueLen=0,this._running=!1,e=0;e<this._afterQueueLen;++e)this._afterQueue[e].run(),this._afterQueue[e]=void 0;this._afterQueueLen=0},e}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],10:[function(t,r,n){!function(e){"use strict";e((function(){function e(t){Error.call(this),this.message=t,this.name=e.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],11:[function(t,r,n){!function(e){"use strict";e((function(){return e.tryCatchResolve=t,e;function e(e,r){return arguments.length<2&&(r=t),n;function n(t,n,f){var o=e._defer(),a=f.length;return i({f:t,thisArg:n,args:f,params:new Array(a),i:a-1,call:r},o._handler),o}function i(t,n){if(t.i<0)return r(t.f,t.thisArg,t.params,n);e._handler(t.args[t.i]).fold(f,t,void 0,n)}function f(e,t,r){e.params[e.i]=t,e.i-=1,i(e,r)}}function t(e,t,r,n){try{n.resolve(e.apply(t,r))}catch(e){n.reject(e)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],12:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../state"),r=e("../apply");return function(e){var n=r(e),i=e.resolve,f=e.all,o=Array.prototype.reduce,a=Array.prototype.reduceRight,s=Array.prototype.slice;return e.any=c,e.some=u,e.settle=p,e.map=l,e.filter=d,e.reduce=y,e.reduceRight=m,e.prototype.spread=function(e){return this.then(f).then((function(t){return e.apply(this,t)}))},e;function c(t){for(var r,n,i=e._defer(),f=i._handler,o=t.length>>>0,a=o,s=[],c=0;c<o;++c)if(void 0!==(n=t[c])||c in t){if((r=e._handler(n)).state()>0){f.become(r),e._visitRemaining(t,c,r);break}r.visit(f,u,l)}else--a;return 0===a&&f.reject(new RangeError("any(): array must not be empty")),i;function u(e){s=null,this.resolve(e)}function l(e){this.resolved||(s.push(e),0==--a&&this.reject(s))}}function u(t,r){var n,i,f,o=e._defer(),a=o._handler,s=[],c=[],u=t.length>>>0,l=0;for(f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&++l;for(r=Math.max(r,0),n=l-r+1,r>(l=Math.min(r,l))?a.reject(new RangeError("some(): array must contain at least "+r+" item(s), but had "+l)):0===l&&a.resolve(s),f=0;f<u;++f)(void 0!==(i=t[f])||f in t)&&e._handler(i).visit(a,d,h,a.notify);return o;function d(e){this.resolved||(s.push(e),0==--l&&(c=null,this.resolve(s)))}function h(e){this.resolved||(c.push(e),0==--n&&(s=null,this.reject(c)))}}function l(t,r){return e._traverse(r,t)}function d(t,r){var n=s.call(t);return e._traverse(r,n).then((function(e){return h(n,e)}))}function h(t,r){for(var n=r.length,i=new Array(n),f=0,o=0;f<n;++f)r[f]&&(i[o++]=e._handler(t[f]).value);return i.length=o,i}function p(e){return f(e.map(b))}function b(r){var n;return r instanceof e&&(n=r._handler.join()),n&&0===n.state()||!n?i(r).then(t.fulfilled,t.rejected):(n._unreport(),t.inspect(n))}function y(e,t){return arguments.length>2?o.call(e,g(t),arguments[2]):o.call(e,g(t))}function m(e,t){return arguments.length>2?a.call(e,g(t),arguments[2]):a.call(e,g(t))}function g(e){return function(t,r,i){return n(e,void 0,[t,r,i])}}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../apply":11,"../state":25}],13:[function(t,r,n){!function(e){"use strict";e((function(){return function(r){var f=r.resolve,o=r.reject,a=r.prototype.catch;function s(e,r){return function(n){return t(n,r)?e.call(this,n):o(n)}}function c(e,t,r,i){var f=e.call(t);return n(f)?u(f,r,i):r(i)}function u(e,t,r){return f(e).then((function(){return t(r)}))}return r.prototype.done=function(e,t){this._handler.visit(this._handler.receiver,e,t)},r.prototype.catch=r.prototype.otherwise=function(t){return arguments.length<2?a.call(this,t):"function"!=typeof t?this.ensure(e):a.call(this,s(arguments[1],t))},r.prototype.finally=r.prototype.ensure=function(e){return"function"!=typeof e?this:this.then((function(t){return c(e,this,i,t)}),(function(t){return c(e,this,o,t)}))},r.prototype.else=r.prototype.orElse=function(e){return this.then(void 0,(function(){return e}))},r.prototype.yield=function(e){return this.then((function(){return e}))},r.prototype.tap=function(e){return this.then(e).yield(this)},r};function e(){throw new TypeError("catch predicate must be a function")}function t(e,t){return r(t)?e instanceof t:t(e)}function r(e){return e===Error||null!=e&&e.prototype instanceof Error}function n(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function i(e){return e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],14:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){return e.prototype.fold=function(t,r){var n=this._beget();return this._handler.fold((function(r,n,i){e._handler(r).fold((function(e,r,n){n.resolve(t.call(this,r,e))}),n,this,i)}),r,n._handler.receiver,n._handler),n},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],15:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../state").inspect;return function(e){return e.prototype.inspect=function(){return t(e._handler(this))},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../state":25}],16:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){var t=e.resolve;return e.iterate=r,e.unfold=n,e;function r(e,t,r,i){return n((function(t){return[t,e(t)]}),t,r,i)}function n(e,r,i,f){return t(f).then((function(n){return t(r(n)).then((function(r){return r?n:t(e(n)).spread(o)}))}));function o(f,o){return t(i(f)).then((function(){return n(e,r,i,o)}))}}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],17:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){return e.prototype.progress=function(e){return this.then(void 0,void 0,e)},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],18:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../env"),r=e("../TimeoutError");function n(e,r,n,i){return t.setTimer((function(){e(n,i,r)}),r)}return function(e){function i(e,t,r){n(f,e,t,r)}function f(e,t){t.resolve(e)}function o(e,t,n){var i=void 0===e?new r("timed out after "+n+"ms"):e;t.reject(i)}return e.prototype.delay=function(e){var t=this._beget();return this._handler.fold(i,e,void 0,t._handler),t},e.prototype.timeout=function(e,r){var i=this._beget(),f=i._handler,a=n(o,e,r,i._handler);return this._handler.visit(f,(function(e){t.clearTimer(a),this.resolve(e)}),(function(e){t.clearTimer(a),this.reject(e)}),f.notify),i},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../TimeoutError":10,"../env":21}],19:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("../env").setTimer,r=e("../format");return function(e){var f,o=i,a=i;"undefined"!=typeof console&&(f=console,o=void 0!==f.error?function(e){f.error(e)}:function(e){f.log(e)},a=void 0!==f.info?function(e){f.info(e)}:function(e){f.log(e)}),e.onPotentiallyUnhandledRejection=function(e){h(l,e)},e.onPotentiallyUnhandledRejectionHandled=function(e){h(d,e)},e.onFatalRejection=function(e){h(n,e.value)};var s=[],c=[],u=null;function l(e){e.handled||(c.push(e),o("Potentially unhandled rejection ["+e.id+"] "+r.formatError(e.value)))}function d(e){var t=c.indexOf(e);t>=0&&(c.splice(t,1),a("Handled previous rejection ["+e.id+"] "+r.formatObject(e.value)))}function h(e,r){s.push(e,r),null===u&&(u=t(p,0))}function p(){for(u=null;s.length>0;)s.shift()(s.shift())}return e};function n(e){throw e}function i(){}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"../env":21,"../format":22}],20:[function(t,r,n){!function(e){"use strict";e((function(){return function(e){return e.prototype.with=e.prototype.withThis=function(e){var t=this._beget(),r=t._handler;return r.receiver=e,this._handler.chain(r,e),t},e}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],21:[function(r,n,i){!function(e){"use strict";e((function(e){var r,n="undefined"!=typeof setTimeout&&setTimeout,i=function(e,t){return setTimeout(e,t)},f=function(e){return clearTimeout(e)},o=function(e){return n(e,0)};if(s())o=function(e){return t.nextTick(e)};else if(r=c())o=u(r);else if(!n){var a=e("vertx");i=function(e,t){return a.setTimer(t,e)},f=a.cancelTimer,o=a.runOnLoop||a.runOnContext}return{setTimer:i,clearTimer:f,asap:o};function s(){return void 0!==t&&"[object process]"===Object.prototype.toString.call(t)}function c(){return"undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver}function u(e){var t,r=document.createTextNode("");function n(){var e=t;t=void 0,e()}new e(n).observe(r,{characterData:!0});var i=0;return function(e){t=e,r.data=i^=1}}}))}("function"==typeof e&&e.amd?e:function(e){n.exports=e(r)})},{}],22:[function(t,r,n){!function(e){"use strict";e((function(){return{formatError:e,formatObject:t,tryStringify:r};function e(e){var r="object"==typeof e&&null!==e&&(e.stack||e.message)?e.stack||e.message:t(e);return e instanceof Error?r:r+" (WARNING: non-Error used)"}function t(e){var t=String(e);return"[object Object]"===t&&"undefined"!=typeof JSON&&(t=r(e,t)),t}function r(e,t){try{return JSON.stringify(e)}catch(e){return t}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],23:[function(t,r,n){!function(e){"use strict";e((function(){return function(r,n,i,f){return void 0===n&&(n=e),Object.keys(f).reduce((function(e,t){var i=f[t];return"function"==typeof i?n(e,r(i),t):e}),void 0===i?t(f):i)};function e(e,t,r){return e[r]=t,e}function t(e){return"function"==typeof e?e.bind():Object.create(e)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],24:[function(r,n,i){!function(e){"use strict";e((function(){return function(e){var r=e.scheduler,n=re(),i=Object.create||function(e){function t(){}return t.prototype=e,new t};function f(e,t){this._handler=e===A?t:o(e)}function o(e){var t=new x;try{e(r,n,i)}catch(e){n(e)}return t;function r(e){t.resolve(e)}function n(e){t.reject(e)}function i(e){t.notify(e)}}function a(e){return z(e)?e:new f(A,new P(_(e)))}function s(e){return new f(A,new P(new O(e)))}function c(){return D}function u(){return new f(A,new x)}function l(e,t){return new t(A,new x(e.receiver,e.join().context))}function d(e){return p(Z,null,e)}function h(e,t){return p(W,e,t)}function p(e,t,r){for(var n,i="function"==typeof t?u:l,o=new x,a=r.length>>>0,s=new Array(a),c=0;c<r.length&&!o.resolved;++c)void 0!==(n=r[c])||c in r?b(r,i,c,n,o):--a;return 0===a&&o.become(new k(s)),new f(A,o);function u(n,i,f){f.resolved||b(r,l,n,e(t,i,n),f)}function l(e,t,r){s[e]=t,0==--a&&r.become(new k(s))}}function b(e,t,r,n,i){if(H(n)){var f=w(n),o=f.state();0===o?f.fold(t,r,void 0,i):o>0?t(r,f.value,i):(i.become(f),y(e,r+1,f))}else t(r,n,i)}function y(e,t,r){for(var n=t;n<e.length;++n)m(_(e[n]),r)}function m(e,t){if(e!==t){var r=e.state();0===r?e.visit(e,void 0,e._unreport):r<0&&e._unreport()}}function g(e){return"object"!=typeof e||null===e?s(new TypeError("non-iterable passed to race()")):0===e.length?c():1===e.length?a(e[0]):v(e)}function v(e){var t,r,n,i=new x;for(t=0;t<e.length;++t)if(void 0!==(r=e[t])||t in e){if(0!==(n=_(r)).state()){i.become(n),y(e,t+1,n);break}n.visit(i,i.resolve,i.reject)}return new f(A,i)}function _(e){return z(e)?e._handler.join():H(e)?E(e):new k(e)}function w(e){return z(e)?e._handler.join():E(e)}function E(e){try{var t=e.then;return"function"==typeof t?new R(t,e):new k(e)}catch(e){return new O(e)}}function A(){}function S(){}f.resolve=a,f.reject=s,f.never=c,f._defer=u,f._handler=_,f.prototype.then=function(e,t,r){var n=this._handler,i=n.join().state();if("function"!=typeof e&&i>0||"function"!=typeof t&&i<0)return new this.constructor(A,n);var f=this._beget(),o=f._handler;return n.chain(o,n.receiver,e,t,r),f},f.prototype.catch=function(e){return this.then(void 0,e)},f.prototype._beget=function(){return l(this._handler,this.constructor)},f.all=d,f.race=g,f._traverse=h,f._visitRemaining=y,A.prototype.when=A.prototype.become=A.prototype.notify=A.prototype.fail=A.prototype._unreport=A.prototype._report=Q,A.prototype._state=0,A.prototype.state=function(){return this._state},A.prototype.join=function(){for(var e=this;void 0!==e.handler;)e=e.handler;return e},A.prototype.chain=function(e,t,r,n,i){this.when({resolver:e,receiver:t,fulfilled:r,rejected:n,progress:i})},A.prototype.visit=function(e,t,r,n){this.chain(T,e,t,r,n)},A.prototype.fold=function(e,t,r,n){this.when(new q(e,t,r,n))},X(A,S),S.prototype.become=function(e){e.fail()};var T=new S;function x(e,t){f.createContext(this,t),this.consumers=void 0,this.receiver=e,this.handler=void 0,this.resolved=!1}function P(e){this.handler=e}function R(e,t){x.call(this),r.enqueue(new L(e,t,this))}function k(e){f.createContext(this),this.value=e}X(A,x),x.prototype._state=0,x.prototype.resolve=function(e){this.become(_(e))},x.prototype.reject=function(e){this.resolved||this.become(new O(e))},x.prototype.join=function(){if(!this.resolved)return this;for(var e=this;void 0!==e.handler;)if((e=e.handler)===this)return this.handler=B();return e},x.prototype.run=function(){var e=this.consumers,t=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var r=0;r<e.length;++r)t.when(e[r])},x.prototype.become=function(e){this.resolved||(this.resolved=!0,this.handler=e,void 0!==this.consumers&&r.enqueue(this),void 0!==this.context&&e._report(this.context))},x.prototype.when=function(e){this.resolved?r.enqueue(new F(e,this.handler)):void 0===this.consumers?this.consumers=[e]:this.consumers.push(e)},x.prototype.notify=function(e){this.resolved||r.enqueue(new j(e,this))},x.prototype.fail=function(e){var t=void 0===e?this.context:e;this.resolved&&this.handler.join().fail(t)},x.prototype._report=function(e){this.resolved&&this.handler.join()._report(e)},x.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},X(A,P),P.prototype.when=function(e){r.enqueue(new F(e,this))},P.prototype._report=function(e){this.join()._report(e)},P.prototype._unreport=function(){this.join()._unreport()},X(x,R),X(A,k),k.prototype._state=1,k.prototype.fold=function(e,t,r,n){V(e,t,this,r,n)},k.prototype.when=function(e){G(e.fulfilled,this,e.receiver,e.resolver)};var C=0;function O(e){f.createContext(this),this.id=++C,this.value=e,this.handled=!1,this.reported=!1,this._report()}function M(e,t){this.rejection=e,this.context=t}function N(e){this.rejection=e}X(A,O),O.prototype._state=-1,O.prototype.fold=function(e,t,r,n){n.become(this)},O.prototype.when=function(e){"function"==typeof e.rejected&&this._unreport(),G(e.rejected,this,e.receiver,e.resolver)},O.prototype._report=function(e){r.afterQueue(new M(this,e))},O.prototype._unreport=function(){this.handled||(this.handled=!0,r.afterQueue(new N(this)))},O.prototype.fail=function(e){this.reported=!0,n("unhandledRejection",this),f.onFatalRejection(this,void 0===e?this.context:e)},M.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,n("unhandledRejection",this.rejection)||f.onPotentiallyUnhandledRejection(this.rejection,this.context))},N.prototype.run=function(){this.rejection.reported&&(n("rejectionHandled",this.rejection)||f.onPotentiallyUnhandledRejectionHandled(this.rejection))},f.createContext=f.enterContext=f.exitContext=f.onPotentiallyUnhandledRejection=f.onPotentiallyUnhandledRejectionHandled=f.onFatalRejection=Q;var I=new A,D=new f(A,I);function B(){return new O(new TypeError("Promise cycle"))}function F(e,t){this.continuation=e,this.handler=t}function j(e,t){this.handler=t,this.value=e}function L(e,t,r){this._then=e,this.thenable=t,this.resolver=r}function U(e,t,r,n,i){try{e.call(t,r,n,i)}catch(e){n(e)}}function q(e,t,r,n){this.f=e,this.z=t,this.c=r,this.to=n,this.resolver=T,this.receiver=this}function z(e){return e instanceof f}function H(e){return("object"==typeof e||"function"==typeof e)&&null!==e}function G(e,t,r,n){if("function"!=typeof e)return n.become(t);f.enterContext(t),$(e,t.value,r,n),f.exitContext()}function V(e,t,r,n,i){if("function"!=typeof e)return i.become(r);f.enterContext(r),Y(e,t,r.value,n,i),f.exitContext()}function K(e,t,r,n,i){if("function"!=typeof e)return i.notify(t);f.enterContext(r),J(e,t,n,i),f.exitContext()}function W(e,t,r){try{return e(t,r)}catch(e){return s(e)}}function $(e,t,r,n){try{n.become(_(e.call(r,t)))}catch(e){n.become(new O(e))}}function Y(e,t,r,n,i){try{e.call(n,t,r,i)}catch(e){i.become(new O(e))}}function J(e,t,r,n){try{n.notify(e.call(r,t))}catch(e){n.notify(e)}}function X(e,t){t.prototype=i(e.prototype),t.prototype.constructor=t}function Z(e,t){return t}function Q(){}function ee(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(e){}return!1}function te(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}function re(){return null!=t&&"function"==typeof t.emit?function(e,r){return"unhandledRejection"===e?t.emit(e,r.value,r):t.emit(e,r)}:"undefined"!=typeof self&&ee()?function(e,t){return function(r,n){var i=new t(r,{detail:{reason:n.value,key:n},bubbles:!1,cancelable:!0});return!e.dispatchEvent(i)}}(self,CustomEvent):"undefined"!=typeof self&&te()?function(e,t){return function(r,n){var i=t.createEvent("CustomEvent");return i.initCustomEvent(r,!1,!0,{reason:n.value,key:n}),!e.dispatchEvent(i)}}(self,document):Q}return F.prototype.run=function(){this.handler.join().when(this.continuation)},j.prototype.run=function(){var e=this.handler.consumers;if(void 0!==e)for(var t,r=0;r<e.length;++r)K((t=e[r]).progress,this.value,this.handler,t.receiver,t.resolver)},L.prototype.run=function(){var e=this.resolver;function t(t){e.resolve(t)}function r(t){e.reject(t)}function n(t){e.notify(t)}U(this._then,this.thenable,t,r,n)},q.prototype.fulfilled=function(e){this.f.call(this.c,this.z,e,this.to)},q.prototype.rejected=function(e){this.to.reject(e)},q.prototype.progress=function(e){this.to.notify(e)},f}}))}("function"==typeof e&&e.amd?e:function(e){n.exports=e()})},{}],25:[function(t,r,n){!function(e){"use strict";e((function(){return{pending:e,fulfilled:r,rejected:t,inspect:n};function e(){return{state:"pending"}}function t(e){return{state:"rejected",reason:e}}function r(e){return{state:"fulfilled",value:e}}function n(n){var i=n.state();return 0===i?e():i>0?r(n.value):t(n.value)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e()})},{}],26:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=e("./lib/liftAll"),n=e("./lib/env").setTimer,i=Array.prototype.slice,f=e("./lib/apply")(t.Promise,a);return{lift:c,liftAll:u,apply:o,call:s,createCallback:l,bindCallback:d,liftCallback:h};function o(e,t){return f(e,this,t||[])}function a(e,t,r,n){var i=l(n);try{switch(r.length){case 2:e.call(t,r[0],r[1],i);break;case 1:e.call(t,r[0],i);break;case 0:e.call(t,i);break;default:r.push(i),e.apply(t,r)}}catch(e){n.reject(e)}}function s(e){return f(e,this,i.call(arguments,1))}function c(e){var t=arguments.length>1?i.call(arguments,1):[];return function(){var r,n=t.length,i=arguments.length,o=new Array(i+n);for(r=0;r<n;++r)o[r]=t[r];for(r=0;r<i;++r)o[r+n]=arguments[r];return f(e,this,o)}}function u(e,t,n){return r(c,t,n,e)}function l(e){return function(t,r){t?e.reject(t):arguments.length>2?e.resolve(i.call(arguments,1)):e.resolve(r)}}function d(e,r){return e=t(e),r&&e.then(i,f),e;function i(e){f(null,e)}function f(e,t){n((function(){r(e,t)}),0)}}function h(e){return function(t){return d(t,e)}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/apply":11,"./lib/env":21,"./lib/liftAll":23,"./when":32}],27:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.Promise.all,n=Array.prototype.slice;return function(e){return r(n.call(arguments,1)).then((function(r){return t.map(e,(function(e){return e.apply(void 0,r)}))}))}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],28:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.Promise.all,n=Array.prototype.slice;return function(e){var i=function(e,t){return i=function(e,t){return t(e)},t.apply(null,e)};return r(n.call(arguments,1)).then((function(r){return t.reduce(e,(function(e,t){return i(e,t)}),r)}))}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],29:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("./when"),r=t.try,n=e("./cancelable");return function(e,i,f,o){var a,s,c;function u(e){a.resolve(e)}function l(e){r(i).then(d,c),void 0!==e&&a.notify(e)}function d(){s||t(e(),(function(e){t(f(e),(function(t){return t?u(e):l(e)}),(function(){l(e)}))}),c)}return s=!1,a=n(t.defer(),(function(){s=!0})),c=a.reject,f=f||function(){return!1},"function"!=typeof i&&(i=function(e){return function(){return t().delay(e)}}(i)),o?l():d(),a.promise=Object.create(a.promise),a.promise.cancel=a.cancel,a.promise}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./cancelable":3,"./when":32}],30:[function(t,r,n){!function(e){e((function(e){var t=e("./when"),r=t.Promise.all,n=Array.prototype.slice;return function(e){var i=[];return r(n.call(arguments,1)).then((function(r){return t.reduce(e,(function(e,n){return t(n.apply(void 0,r),f)}),i)}));function f(e){return i.push(e),i}}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],31:[function(t,r,n){!function(e){e((function(e){var t=e("./when");return function(e,r){return t(r).timeout(e)}}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./when":32}],32:[function(t,r,n){!function(e){"use strict";e((function(e){var t=e("./lib/decorators/timed"),r=e("./lib/decorators/array"),n=e("./lib/decorators/flow"),i=e("./lib/decorators/fold"),f=e("./lib/decorators/inspect"),o=e("./lib/decorators/iterate"),a=e("./lib/decorators/progress"),s=e("./lib/decorators/with"),c=e("./lib/decorators/unhandledRejection"),u=e("./lib/TimeoutError"),l=[r,n,i,o,a,f,s,t,c].reduce((function(e,t){return t(e)}),e("./lib/Promise")),d=e("./lib/apply")(l);function h(e,t,r,n){var i=l.resolve(e);return arguments.length<2?i:i.then(t,r,n)}function p(e){return new l(e)}function b(e){return function(){for(var t=0,r=arguments.length,n=new Array(r);t<r;++t)n[t]=arguments[t];return d(e,this,n)}}function y(e){for(var t=0,r=arguments.length-1,n=new Array(r);t<r;++t)n[t]=arguments[t+1];return d(e,this,n)}function m(){return new g}function g(){var e=l._defer();function t(t){e._handler.resolve(t)}function r(t){e._handler.reject(t)}function n(t){e._handler.notify(t)}this.promise=e,this.resolve=t,this.reject=r,this.notify=n,this.resolver={resolve:t,reject:r,notify:n}}function v(e){return e&&"function"==typeof e.then}function _(){return l.all(arguments)}function w(e){return h(e,l.all)}function E(e){return h(e,l.settle)}function A(e,t){return h(e,(function(e){return l.map(e,t)}))}function S(e,t){return h(e,(function(e){return l.filter(e,t)}))}return h.promise=p,h.resolve=l.resolve,h.reject=l.reject,h.lift=b,h.try=y,h.attempt=y,h.iterate=l.iterate,h.unfold=l.unfold,h.join=_,h.all=w,h.settle=E,h.any=b(l.any),h.some=b(l.some),h.race=b(l.race),h.map=A,h.filter=S,h.reduce=b(l.reduce),h.reduceRight=b(l.reduceRight),h.isPromiseLike=v,h.Promise=l,h.defer=m,h.TimeoutError=u,h}))}("function"==typeof e&&e.amd?e:function(e){r.exports=e(t)})},{"./lib/Promise":8,"./lib/TimeoutError":10,"./lib/apply":11,"./lib/decorators/array":12,"./lib/decorators/flow":13,"./lib/decorators/fold":14,"./lib/decorators/inspect":15,"./lib/decorators/iterate":16,"./lib/decorators/progress":17,"./lib/decorators/timed":18,"./lib/decorators/unhandledRejection":19,"./lib/decorators/with":20}]},{},[1])(1)}()}).call(this,r(10))},function(e,t,r){function n(){this._repository={}}n.prototype.register=function(e,t){this._repository[e]=t},n.prototype.isRegistered=function(e){return!!this._repository[e]},n.prototype.get=function(e){if(void 0!==this._repository[e])return this._repository[e];throw"no such transport: "+e},n.prototype.list=function(){var e=[];for(var t in this._repository)e.push(t);return e};var i=new n,f=r(646);i.register("websocket",f.Factory);var o=r(648);i.register("longpoll",o.Factory);var a=r(649);i.register("rawsocket",a.Factory),t.transports=i},function(e,t,r){(function(e){var n=r(56),i=r(33),f=r(127);function o(e){n.assert(void 0!==e.url,"options.url missing"),n.assert("string"==typeof e.url,"options.url must be a string"),e.serializers?n.assert(Array.isArray(e.serializers),"options.serializers must be an array"):(e.serializers=[new f.JSONSerializer],f.MsgpackSerializer&&e.serializers.push(new f.MsgpackSerializer)),e.protocols?n.assert(Array.isArray(e.protocols),"options.protocols must be an array"):(e.protocols=[],e.serializers.forEach((function(t){e.protocols.push("wamp.2."+t.SERIALIZER_ID)}))),e.autoping_interval?(n.assert(e.autoping_interval>0,"options.autoping_interval must be greater than 0"),e.autoping_interval=1e3*e.autoping_interval):e.autoping_interval=1e4,e.autoping_timeout?(n.assert(e.autoping_timeout>0,"options.autoping_timeout must be greater than 0"),e.autoping_timeout=1e3*e.autoping_timeout):e.autoping_timeout=5e3,e.autoping_size?n.assert(e.autoping_size>=4&&e.autoping_size<=125,"options.autoping_size must be between 4 and 125"):e.autoping_size=4,this._options=e}o.prototype.type="websocket",o.prototype.create=function(){var t,n=this,f={};return f.protocol=void 0,f.serializer=void 0,f.send=void 0,f.close=void 0,f.onmessage=function(){},f.onopen=function(){},f.onclose=function(){},f.info={type:"websocket",url:n._options.url,protocol:null},"WebSocket"in e?((t=n._options.protocols?new e.WebSocket(n._options.url,n._options.protocols):new e.WebSocket(n._options.url)).binaryType="arraybuffer",t.onmessage=function(e){i.debug("WebSocket transport receive",e.data);var t=f.serializer.unserialize(e.data);f.onmessage(t)},t.onopen=function(){var e=t.protocol.split(".")[2];for(var r in n._options.serializers){var i=n._options.serializers[r];if(i.SERIALIZER_ID==e){f.serializer=i;break}}f.info.protocol=t.protocol,f.onopen()},t.onclose=function(e){var t={code:e.code,reason:e.message,wasClean:e.wasClean};f.onclose(t)},f.send=function(e){var r=f.serializer.serialize(e);i.debug("WebSocket transport send",r),t.send(r)},f.close=function(e,r){t.close(e,r)}):function(){var e,t,o,a,s=r(647),c=r(126).randomBytes,u={agent:n._options.agent,headers:n._options.headers};function l(){a=new Date}n._options.protocols&&(t=n._options.protocols,Array.isArray(t)&&(t=t.join(",")),u.protocol=t),n._options.url.startsWith("wss://")&&n._options.tlsConfiguration?n._options.tlsConfiguration.ca&&n._options.tlsConfiguration.cert&&n._options.tlsConfiguration.key?(i.debug("Using TLS Client Authentication."),u.ca=n._options.tlsConfiguration.ca,u.cert=n._options.tlsConfiguration.cert,u.key=n._options.tlsConfiguration.key,u.rejectUnauthorized=!1):i.debug("Not using TLS Client Authentication. tlsConfiguration should include 'ca' 'cert' and 'key' parameters."):i.debug("Not using TLS Client Authentication."),e=new s(n._options.url,t,u),f.send=function(t){var r=f.serializer.serialize(t);e.send(r,{binary:f.serializer.BINARY})},f.close=function(t,r){e.close()},e.on("open",(function(){l();var t=e.protocol.split(".")[2];for(var r in n._options.serializers){var i=n._options.serializers[r];if(i.SERIALIZER_ID==t){f.serializer=i;break}}f.info.protocol=e.protocol,e.isAlive=!0,o=setInterval((function(){if(!1===e.isAlive)return clearInterval(o),e.terminate();new Date-a<n._options.autoping_interval||(e.isAlive=!1,e.ping(c(n._options.autoping_size)))}),n._options.autoping_interval),f.onopen()})),e.on("pong",(function(){l(),this.isAlive=!0})),e.on("message",(function(e,t){l();var r=f.serializer.unserialize(e);f.onmessage(r)})),e.on("close",(function(e,t){null!=o&&clearInterval(o);var r={code:e,reason:t,wasClean:1e3===e};f.onclose(r)})),e.on("error",(function(e){null!=o&&clearInterval(o);f.onclose({code:1006,reason:"",wasClean:!1})}))}(),f},t.Factory=o}).call(this,r(12))},function(e,t){},function(e,t,r){var n=r(56),i=r(33),f=r(127);function o(e){n.assert(void 0!==e.url,"options.url missing"),n.assert("string"==typeof e.url,"options.url must be a string"),this._options=e}o.prototype.type="longpoll",o.prototype.create=function(){var e=this;i.debug("longpoll.Factory.create");var t={protocol:void 0};return t.serializer=new f.JSONSerializer,t.send=void 0,t.close=void 0,t.onmessage=function(){},t.onopen=function(){},t.onclose=function(){},t.info={type:"longpoll",url:null,protocol:"wamp.2.json"},t._run=function(){var r=null,f=!1,o=e._options.request_timeout||12e3;n.http_post(e._options.url+"/open",JSON.stringify({protocols:["wamp.2.json"]}),o).then((function(a){r=JSON.parse(a);var s=e._options.url+"/"+r.transport;t.info.url=s,i.debug("longpoll.Transport: open",r),t.close=function(e,r){if(f)throw"transport is already closing";f=!0,n.http_post(s+"/close",null,o).then((function(){i.debug("longpoll.Transport: transport closed");t.onclose({code:1e3,reason:"transport closed",wasClean:!0})}),(function(e){i.debug("longpoll.Transport: could not close transport",e.code,e.text)}))},t.send=function(e){if(f)throw"transport is closing or closed already";1,i.debug("longpoll.Transport: sending message ...",e);var r=JSON.stringify(e);n.http_post(s+"/send",r,o).then((function(){i.debug("longpoll.Transport: message sent")}),(function(e){i.debug("longpoll.Transport: could not send message",e.code,e.text),f=!0;var r={code:1001,reason:"transport send failure (HTTP/POST status "+e.code+" - '"+e.text+"')",wasClean:!1};t.onclose(r)}))},function e(){1,i.debug("longpoll.Transport: polling for message ..."),n.http_post(s+"/receive",null,o).then((function(r){if(r){var n=JSON.parse(r);i.debug("longpoll.Transport: message received",n),t.onmessage(n)}f||e()}),(function(e){i.debug("longpoll.Transport: could not receive message",e.code,e.text),f=!0;var r={code:1001,reason:"transport receive failure (HTTP/POST status "+e.code+" - '"+e.text+"')",wasClean:!1};t.onclose(r)}))}(),t.onopen()}),(function(e){i.debug("longpoll.Transport: could not open transport",e.code,e.text),f=!0;var r={code:1001,reason:"transport open failure (HTTP/POST status "+e.code+" - '"+e.text+"')",wasClean:!1};t.onclose(r)}))},t._run(),t},t.Factory=o},function(e,t){},function(e,t){t.auth=function(e,t,r){var n=e.defer();return navigator.id.watch({loggedInUser:t,onlogin:function(e){n.resolve(e)},onlogout:function(){e.leave("wamp.close.logout")}}),n.promise.then?n.promise:n}},function(e,t,r){var n=r(652);t.sign=function(e,t){return n.HmacSHA256(t,e).toString(n.enc.Base64)},t.derive_key=function(e,t,r,i){var f={keySize:(i=i||32)/4,iterations:r=r||1e3,hasher:n.algo.SHA256};return n.PBKDF2(e,t,f).toString(n.enc.Base64)}},function(e,t,r){var n;e.exports=(n=r(14),r(90),r(654),r(655),r(57),r(656),r(58),r(128),r(253),r(657),r(254),r(658),r(659),r(660),r(129),r(661),r(38),r(18),r(662),r(663),r(664),r(665),r(666),r(667),r(668),r(669),r(670),r(671),r(672),r(673),r(674),r(675),r(676),r(677),n)},function(e,t){},function(e,t,r){var n;e.exports=(n=r(14),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init;(e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var r=e.byteLength,n=[],i=0;i<r;i++)n[i>>>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),n.lib.WordArray)},function(e,t,r){var n;e.exports=(n=r(14),function(){var e=n,t=e.lib.WordArray,r=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i+=2){var f=t[i>>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(f))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i<r;i++)n[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},r.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],f=0;f<r;f+=2){var o=i(t[f>>>2]>>>16-f%4*8&65535);n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,n=[],f=0;f<r;f++)n[f>>>1]|=i(e.charCodeAt(f)<<16-f%2*16);return t.create(n,2*r)}}}(),n.enc.Utf16)},function(e,t,r){var n;e.exports=(n=r(14),function(){var e=n,t=e.lib.WordArray;function r(e,r,n){for(var i=[],f=0,o=0;o<r;o++)if(o%4){var a=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;i[f>>>2]|=a<<24-f%4*8,f++}return t.create(i,f)}e.enc.Base64url={stringify:function(e,t=!0){var r=e.words,n=e.sigBytes,i=t?this._safe_map:this._map;e.clamp();for(var f=[],o=0;o<n;o+=3)for(var a=(r[o>>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<n;s++)f.push(i.charAt(a>>>6*(3-s)&63));var c=i.charAt(64);if(c)for(;f.length%4;)f.push(c);return f.join("")},parse:function(e,t=!0){var n=e.length,i=t?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var o=0;o<i.length;o++)f[i.charCodeAt(o)]=o}var a=i.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(n=s)}return r(e,n,f)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),n.enc.Base64url)},function(e,t,r){var n,i,f,o,a,s;e.exports=(s=r(14),r(253),i=(n=s).lib.WordArray,f=n.algo,o=f.SHA256,a=f.SHA224=o.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=o._createHelper(a),n.HmacSHA224=o._createHmacHelper(a),s.SHA224)},function(e,t,r){var n,i,f,o,a,s,c,u;e.exports=(u=r(14),r(90),r(254),i=(n=u).x64,f=i.Word,o=i.WordArray,a=n.algo,s=a.SHA512,c=a.SHA384=s.extend({_doReset:function(){this._hash=new o.init([new f.init(3418070365,3238371032),new f.init(1654270250,914150663),new f.init(2438529370,812702999),new f.init(355462360,4144912697),new f.init(1731405415,4290775857),new f.init(2394180231,1750603025),new f.init(3675008525,1694076839),new f.init(1203062813,3204075428)])},_doFinalize:function(){var e=s._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=s._createHelper(c),n.HmacSHA384=s._createHmacHelper(c),u.SHA384)},function(e,t,r){var n;e.exports=(n=r(14),r(90),function(e){var t=n,r=t.lib,i=r.WordArray,f=r.Hasher,o=t.x64.Word,a=t.algo,s=[],c=[],u=[];!function(){for(var e=1,t=0,r=0;r<24;r++){s[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,f=0;f<24;f++){for(var a=0,l=0,d=0;d<7;d++){if(1&i){var h=(1<<d)-1;h<32?l^=1<<h:a^=1<<h-32}128&i?i=i<<1^113:i<<=1}u[f]=o.create(a,l)}}();var l=[];!function(){for(var e=0;e<25;e++)l[e]=o.create()}();var d=a.SHA3=f.extend({cfg:f.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var r=this._state,n=this.blockSize/2,i=0;i<n;i++){var f=e[t+2*i],o=e[t+2*i+1];f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(R=r[i]).high^=o,R.low^=f}for(var a=0;a<24;a++){for(var d=0;d<5;d++){for(var h=0,p=0,b=0;b<5;b++)h^=(R=r[d+5*b]).high,p^=R.low;var y=l[d];y.high=h,y.low=p}for(d=0;d<5;d++){var m=l[(d+4)%5],g=l[(d+1)%5],v=g.high,_=g.low;for(h=m.high^(v<<1|_>>>31),p=m.low^(_<<1|v>>>31),b=0;b<5;b++)(R=r[d+5*b]).high^=h,R.low^=p}for(var w=1;w<25;w++){var E=(R=r[w]).high,A=R.low,S=s[w];S<32?(h=E<<S|A>>>32-S,p=A<<S|E>>>32-S):(h=A<<S-32|E>>>64-S,p=E<<S-32|A>>>64-S);var T=l[c[w]];T.high=h,T.low=p}var x=l[0],P=r[0];for(x.high=P.high,x.low=P.low,d=0;d<5;d++)for(b=0;b<5;b++){var R=r[w=d+5*b],k=l[w],C=l[(d+1)%5+5*b],O=l[(d+2)%5+5*b];R.high=k.high^~C.high&O.high,R.low=k.low^~C.low&O.low}R=r[0];var M=u[a];R.high^=M.high,R.low^=M.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),f=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/f)*f>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var o=this._state,a=this.cfg.outputLength/8,s=a/8,c=[],u=0;u<s;u++){var l=o[u],d=l.high,h=l.low;d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8),c.push(h),c.push(d)}return new i.init(c,a)},clone:function(){for(var e=f.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=f._createHelper(d),t.HmacSHA3=f._createHmacHelper(d)}(Math),n.SHA3)},function(e,t,r){var n;e.exports=(n=r(14),function(e){var t=n,r=t.lib,i=r.WordArray,f=r.Hasher,o=t.algo,a=i.create([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]),s=i.create([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]),c=i.create([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=i.create([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=i.create([0,1518500249,1859775393,2400959708,2840853838]),d=i.create([1352829926,1548603684,1836072691,2053994217,0]),h=o.RIPEMD160=f.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var f,o,h,_,w,E,A,S,T,x,P,R=this._hash.words,k=l.words,C=d.words,O=a.words,M=s.words,N=c.words,I=u.words;for(E=f=R[0],A=o=R[1],S=h=R[2],T=_=R[3],x=w=R[4],r=0;r<80;r+=1)P=f+e[t+O[r]]|0,P+=r<16?p(o,h,_)+k[0]:r<32?b(o,h,_)+k[1]:r<48?y(o,h,_)+k[2]:r<64?m(o,h,_)+k[3]:g(o,h,_)+k[4],P=(P=v(P|=0,N[r]))+w|0,f=w,w=_,_=v(h,10),h=o,o=P,P=E+e[t+M[r]]|0,P+=r<16?g(A,S,T)+C[0]:r<32?m(A,S,T)+C[1]:r<48?y(A,S,T)+C[2]:r<64?b(A,S,T)+C[3]:p(A,S,T)+C[4],P=(P=v(P|=0,I[r]))+x|0,E=x,x=T,T=v(S,10),S=A,A=P;P=R[1]+h+T|0,R[1]=R[2]+_+x|0,R[2]=R[3]+w+E|0,R[3]=R[4]+f+A|0,R[4]=R[0]+o+S|0,R[0]=P},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,f=i.words,o=0;o<5;o++){var a=f[o];f[o]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var e=f.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,t,r){return e^t^r}function b(e,t,r){return e&t|~e&r}function y(e,t,r){return(e|~t)^r}function m(e,t,r){return e&r|t&~r}function g(e,t,r){return e^(t|~r)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=f._createHelper(h),t.HmacRIPEMD160=f._createHmacHelper(h)}(Math),n.RIPEMD160)},function(e,t,r){var n,i,f,o,a,s,c,u,l;e.exports=(l=r(14),r(128),r(129),i=(n=l).lib,f=i.Base,o=i.WordArray,a=n.algo,s=a.SHA1,c=a.HMAC,u=a.PBKDF2=f.extend({cfg:f.extend({keySize:4,hasher:s,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r=this.cfg,n=c.create(r.hasher,e),i=o.create(),f=o.create([1]),a=i.words,s=f.words,u=r.keySize,l=r.iterations;a.length<u;){var d=n.update(t).finalize(f);n.reset();for(var h=d.words,p=h.length,b=d,y=1;y<l;y++){b=n.finalize(b),n.reset();for(var m=b.words,g=0;g<p;g++)h[g]^=m[g]}i.concat(d),s[0]++}return i.sigBytes=4*u,i}}),n.PBKDF2=function(e,t,r){return u.create(r).compute(e,t)},l.PBKDF2)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,r,n){var i,f=this._iv;f?(i=f.slice(0),this._iv=void 0):i=this._prevBlock,n.encryptBlock(i,0);for(var o=0;o<r;o++)e[t+o]^=i[o]}return e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize;t.call(this,e,r,i,n),this._prevBlock=e.slice(r,r+i)}}),e.Decryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize,f=e.slice(r,r+i);t.call(this,e,r,i,n),this._prevBlock=f}}),e}(),n.mode.CFB)},function(e,t,r){var n,i,f;e.exports=(f=r(14),r(18),f.mode.CTR=(n=f.lib.BlockCipherMode.extend(),i=n.Encryptor=n.extend({processBlock:function(e,t){var r=this._cipher,n=r.blockSize,i=this._iv,f=this._counter;i&&(f=this._counter=i.slice(0),this._iv=void 0);var o=f.slice(0);r.encryptBlock(o,0),f[n-1]=f[n-1]+1|0;for(var a=0;a<n;a++)e[t+a]^=o[a]}}),n.Decryptor=i,n),f.mode.CTR)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){if(255==(e>>24&255)){var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}else e+=1<<24;return e}function r(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var i=e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,f=this._iv,o=this._counter;f&&(o=this._counter=f.slice(0),this._iv=void 0),r(o);var a=o.slice(0);n.encryptBlock(a,0);for(var s=0;s<i;s++)e[t+s]^=a[s]}});return e.Decryptor=i,e}(),n.mode.CTRGladman)},function(e,t,r){var n,i,f;e.exports=(f=r(14),r(18),f.mode.OFB=(n=f.lib.BlockCipherMode.extend(),i=n.Encryptor=n.extend({processBlock:function(e,t){var r=this._cipher,n=r.blockSize,i=this._iv,f=this._keystream;i&&(f=this._keystream=i.slice(0),this._iv=void 0),r.encryptBlock(f,0);for(var o=0;o<n;o++)e[t+o]^=f[o]}}),n.Decryptor=i,n),f.mode.OFB)},function(e,t,r){var n,i;e.exports=(i=r(14),r(18),i.mode.ECB=((n=i.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),i.mode.ECB)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.AnsiX923={pad:function(e,t){var r=e.sigBytes,n=4*t,i=n-r%n,f=r+i-1;e.clamp(),e.words[f>>>2]|=i<<24-f%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){var t=e.words,r=e.sigBytes-1;for(r=e.sigBytes-1;r>=0;r--)if(t[r>>>2]>>>24-r%4*8&255){e.sigBytes=r+1;break}}},n.pad.ZeroPadding)},function(e,t,r){var n;e.exports=(n=r(14),r(18),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},function(e,t,r){var n,i,f,o;e.exports=(o=r(14),r(18),i=(n=o).lib.CipherParams,f=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(f)},parse:function(e){var t=f.parse(e);return i.create({ciphertext:t})}},o.format.Hex)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],f=[],o=[],a=[],s=[],c=[],u=[],l=[],d=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,f[p]=r;var b=e[r],y=e[b],m=e[y],g=257*e[p]^16843008*p;o[r]=g<<24|g>>>8,a[r]=g<<16|g>>>16,s[r]=g<<8|g>>>24,c[r]=g,g=16843009*m^65537*y^257*b^16843008*r,u[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,d[p]=g<<8|g>>>24,h[p]=g,r?(r=b^e[e[e[m^b]]],n^=e[e[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],b=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),f=this._keySchedule=[],o=0;o<n;o++)o<r?f[o]=t[o]:(c=f[o-1],o%r?r>6&&o%r==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=p[o/r|0]<<24),f[o]=f[o-r]^c);for(var a=this._invKeySchedule=[],s=0;s<n;s++){if(o=n-s,s%4)var c=f[o];else c=f[o-4];a[s]=s<4||o<=4?c:u[i[c>>>24]]^l[i[c>>>16&255]]^d[i[c>>>8&255]]^h[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,c,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,u,l,d,h,f),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,f,o,a){for(var s=this._nRounds,c=e[t]^r[0],u=e[t+1]^r[1],l=e[t+2]^r[2],d=e[t+3]^r[3],h=4,p=1;p<s;p++){var b=n[c>>>24]^i[u>>>16&255]^f[l>>>8&255]^o[255&d]^r[h++],y=n[u>>>24]^i[l>>>16&255]^f[d>>>8&255]^o[255&c]^r[h++],m=n[l>>>24]^i[d>>>16&255]^f[c>>>8&255]^o[255&u]^r[h++],g=n[d>>>24]^i[c>>>16&255]^f[u>>>8&255]^o[255&l]^r[h++];c=b,u=y,l=m,d=g}b=(a[c>>>24]<<24|a[u>>>16&255]<<16|a[l>>>8&255]<<8|a[255&d])^r[h++],y=(a[u>>>24]<<24|a[l>>>16&255]<<16|a[d>>>8&255]<<8|a[255&c])^r[h++],m=(a[l>>>24]<<24|a[d>>>16&255]<<16|a[c>>>8&255]<<8|a[255&u])^r[h++],g=(a[d>>>24]<<24|a[c>>>16&255]<<16|a[u>>>8&255]<<8|a[255&l])^r[h++],e[t]=b,e[t+1]=y,e[t+2]=m,e[t+3]=g},keySize:8});e.AES=t._createHelper(b)}(),n.AES)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib,r=t.WordArray,i=t.BlockCipher,f=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],s=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],u=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=f.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=o[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],f=0;f<16;f++){var c=i[f]=[],u=s[f];for(r=0;r<24;r++)c[r/6|0]|=t[(a[r]-1+u)%28]<<31-r%6,c[4+(r/6|0)]|=t[28+(a[r+24]-1+u)%28]<<31-r%6;for(c[0]=c[0]<<1|c[0]>>>31,r=1;r<7;r++)c[r]=c[r]>>>4*(r-1)+3;c[7]=c[7]<<5|c[7]>>>27}var l=this._invSubKeys=[];for(r=0;r<16;r++)l[r]=i[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],d.call(this,4,252645135),d.call(this,16,65535),h.call(this,2,858993459),h.call(this,8,16711935),d.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],f=this._lBlock,o=this._rBlock,a=0,s=0;s<8;s++)a|=c[s][((o^i[s])&u[s])>>>0];this._lBlock=o,this._rBlock=f^a}var l=this._lBlock;this._lBlock=this._rBlock,this._rBlock=l,d.call(this,1,1431655765),h.call(this,8,16711935),h.call(this,2,858993459),d.call(this,16,65535),d.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function d(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r<<e}function h(e,t){var r=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r<<e}e.DES=i._createHelper(l);var p=f.TripleDES=i.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),n=e.length<4?e.slice(0,2):e.slice(2,4),i=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=l.createEncryptor(r.create(t)),this._des2=l.createEncryptor(r.create(n)),this._des3=l.createEncryptor(r.create(i))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=i._createHelper(p)}(),n.TripleDES)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,r=e.sigBytes,n=this._S=[],i=0;i<256;i++)n[i]=i;i=0;for(var f=0;i<256;i++){var o=i%r,a=t[o>>>2]>>>24-o%4*8&255;f=(f+n[i]+a)%256;var s=n[i];n[i]=n[f],n[f]=s}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=f.call(this)},keySize:8,ivSize:0});function f(){for(var e=this._S,t=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+e[t=(t+1)%256])%256;var f=e[t];e[t]=e[r],e[r]=f,n|=e[(e[t]+e[r])%256]<<24-8*i}return this._i=t,this._j=r,n}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)f.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],f=[],o=[],a=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)s.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(t){var f=t.words,o=f[0],a=f[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=c>>>16|4294901760&u,d=u<<16|65535&c;for(i[0]^=c,i[1]^=l,i[2]^=u,i[3]^=d,i[4]^=c,i[5]^=l,i[6]^=u,i[7]^=d,r=0;r<4;r++)s.call(this)}},_doProcessBlock:function(e,t){var r=this._X;s.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function s(){for(var e=this._X,t=this._C,r=0;r<8;r++)f[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<f[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<f[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<f[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<f[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<f[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<f[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<f[6]>>>0?1:0)|0,this._b=t[7]>>>0<f[7]>>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,a=n>>>16,s=((i*i>>>17)+i*a>>>15)+a*a,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[r]=s^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(a)}(),n.Rabbit)},function(e,t,r){var n;e.exports=(n=r(14),r(57),r(58),r(38),r(18),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],f=[],o=[],a=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)s.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(t){var f=t.words,o=f[0],a=f[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=c>>>16|4294901760&u,d=u<<16|65535&c;for(n[0]^=c,n[1]^=l,n[2]^=u,n[3]^=d,n[4]^=c,n[5]^=l,n[6]^=u,n[7]^=d,i=0;i<4;i++)s.call(this)}},_doProcessBlock:function(e,t){var r=this._X;s.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function s(){for(var e=this._X,t=this._C,r=0;r<8;r++)f[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<f[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<f[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<f[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<f[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<f[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<f[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<f[6]>>>0?1:0)|0,this._b=t[7]>>>0<f[7]>>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,a=n>>>16,s=((i*i>>>17)+i*a>>>15)+a*a,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[r]=s^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(a)}(),n.RabbitLegacy)},function(e,t,r){var n=r(126),i=r(56),f=r(33),o=r(252);function a(e,t){var r=i.htob(t.challenge),f=n.sign.detached(r,e.secretKey);return i.btoh(f)+i.btoh(r)}function s(e){return i.btoh(e.publicKey)}t.load_private_key=function(e,t){var r=i.atob(localStorage.getItem(e));return!r||t?(r=n.randomBytes(n.sign.seedLength),localStorage.setItem(e,i.btoa(r)),f.debug('new key seed "'+e+'" saved to local storage!')):f.debug('key seed "'+e+'" loaded from local storage!'),n.sign.keyPair.fromSeed(r)},t.delete_private_key=function(e){for(var t=0;t<5;++t)seed=n.randomBytes(n.sign.seedLength),localStorage.setItem(e,i.btoa(seed)),localStorage.setItem(e,""),localStorage.setItem(e,null)},t.sign_challenge=a,t.public_key=s,t.create_connection=function(e){var t=e.url,r=e.realm,n=e.authid,i=e.pkey,f=e.activation_code,c=e.request_new_activation_code,u=e.serializers;return e.debug&&(console.log(t),console.log(r),console.log(n),console.log(i),console.log(f),console.log(c),console.log(u)),authextra={pubkey:s(i),trustroot:null,challenge:null,channel_binding:null,activation_code:f,request_new_activation_code:c},new o.Connection({url:t,realm:r,authid:n,authmethods:["cryptosign"],onchallenge:function(e,t,r){if("cryptosign"==t)return a(i,r);throw"don't know how to authenticate using '"+t+"'"},authextra:authextra,serializers:e.serializers})}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthInfoRetriever=void 0;const n=r(227);class i extends n.ConversionInfoRetriever{getFeeFilter(){const e=this.contractConversionProxy.filters.TransferWithReferenceAndFee(null,null,"0x"+this.paymentReference);return e.fromBlock=this.conversionProxyCreationBlockNumber,e.toBlock="latest",e}}t.AnyToEthInfoRetriever=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToAnyDetector=void 0;const n=r(15),i=r(13),f=r(86);class o extends f.FeeReferenceBasedDetector{constructor(e,t,r){super(e,t),this.currencyManager=r}createExtensionsDataForCreation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return e.salt=e.salt||(yield i.default.crypto.generate8randomBytes()),this.extension.createCreationAction(Object.assign({feeAddress:e.feeAddress,feeAmount:e.feeAmount,paymentAddress:e.paymentAddress,refundAddress:e.refundAddress,network:e.network,maxRateTimespan:e.maxRateTimespan},e))}))}}t.AnyToAnyDetector=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Providers=t.DefaultBitcoinDetectionProvider=t.BtcTestnetAddressBasedDetector=t.BtcMainnetAddressBasedDetector=void 0;var n=r(143);Object.defineProperty(t,"BtcMainnetAddressBasedDetector",{enumerable:!0,get:function(){return n.BtcMainnetAddressBasedDetector}});var i=r(208);Object.defineProperty(t,"BtcTestnetAddressBasedDetector",{enumerable:!0,get:function(){return i.BtcTestnetAddressBasedDetector}});var f=r(145);Object.defineProperty(t,"DefaultBitcoinDetectionProvider",{enumerable:!0,get:function(){return f.DefaultBitcoinDetectionProvider}});const o=r(146);t.Providers=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20ProxyPaymentDetector=t.ERC20FeeProxyPaymentDetector=t.ERC20AddressBasedPaymentDetector=void 0;var n=r(209);Object.defineProperty(t,"ERC20AddressBasedPaymentDetector",{enumerable:!0,get:function(){return n.ERC20AddressBasedPaymentDetector}});var i=r(118);Object.defineProperty(t,"ERC20FeeProxyPaymentDetector",{enumerable:!0,get:function(){return i.ERC20FeeProxyPaymentDetector}});var f=r(222);Object.defineProperty(t,"ERC20ProxyPaymentDetector",{enumerable:!0,get:function(){return f.ERC20ProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthFeeProxyPaymentDetector=t.AnyToERC20PaymentDetector=void 0;var n=r(226);Object.defineProperty(t,"AnyToERC20PaymentDetector",{enumerable:!0,get:function(){return n.AnyToERC20PaymentDetector}});var i=r(255);Object.defineProperty(t,"AnyToEthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return i.AnyToEthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthFeeProxyPaymentDetector=t.EthInputDataPaymentDetector=void 0;var n=r(223);Object.defineProperty(t,"EthInputDataPaymentDetector",{enumerable:!0,get:function(){return n.EthInputDataPaymentDetector}});var i=r(225);Object.defineProperty(t,"EthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return i.EthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(686),i=r(275),f=r(772),o=r(779),a=r(780);class s extends n.default{constructor({decryptionProvider:e,httpConfig:t,nodeConnectionConfig:r,useLocalEthereumBroadcast:n,signatureProvider:s,useMockStorage:c,web3:u,ethereumProviderUrl:l,currencies:d}={httpConfig:{},nodeConnectionConfig:{},useLocalEthereumBroadcast:!1,useMockStorage:!1}){let h;c&&(h=new a.default);super({dataAccess:c?new o.default(h):n?new f.default({httpConfig:t,nodeConnectionConfig:r,web3:u,ethereumProviderUrl:l}):new i.default({httpConfig:t,nodeConnectionConfig:r}),signatureProvider:s,decryptionProvider:e,currencies:d}),this._mockStorage=h}}t.default=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59),i=r(6),f=r(687),o=r(139),a=r(698),s=r(719),c=r(4),u=r(13),l=r(72),d=r(726),h=r(256),p=r(130);t.default=class{constructor({dataAccess:e,signatureProvider:t,decryptionProvider:r,bitcoinDetectionProvider:n,currencies:i}){this.supportedIdentities=u.default.identity.supportedIdentities,this.advancedLogic=new f.AdvancedLogic,this.transaction=new s.TransactionManager(e,r),this.requestLogic=new a.RequestLogic(this.transaction,t,this.advancedLogic),this.contentData=new d.default(this.advancedLogic),this.bitcoinDetectionProvider=n,this.currencyManager=new l.CurrencyManager(i||l.CurrencyManager.getDefaultList())}createRequest(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:t,topics:r,paymentNetwork:n}=yield this.prepareRequestParameters(e),i=yield this.requestLogic.createRequest(t,e.signer,r),f=new h.default(i.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,requestLogicCreateResult:i,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield f.refresh(),f}))}_createEncryptedRequest(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:r,topics:n,paymentNetwork:i}=yield this.prepareRequestParameters(e),f=yield this.requestLogic.createEncryptedRequest(r,e.signer,t,n),o=new h.default(f.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:i,requestLogicCreateResult:f,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield o.refresh(),o}))}computeRequestId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:t}=yield this.prepareRequestParameters(e);return this.requestLogic.computeRequestId(t,e.signer)}))}fromRequestId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.requestLogic.getRequestFromId(e);if(!r.result.request&&!r.result.pending)throw new Error(p.default.formatGetRequestFromIdError(r));const n=r.result.request?r.result.request:r.result.pending,i=o.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:n,explorerApiKeys:null==t?void 0:t.explorerApiKeys,currencyManager:this.currencyManager}),f=new h.default(e,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:i,skipPaymentDetection:null==t?void 0:t.disablePaymentDetection,disableEvents:null==t?void 0:t.disableEvents});return yield f.refresh(r),f}))}fromIdentity(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.supportedIdentities.includes(e.type))throw new Error(`${e.type} is not supported`);return this.fromTopic(e,t,r)}))}fromMultipleIdentities(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=e.find((e=>!this.supportedIdentities.includes(e.type)));if(n)throw new Error(`${n.type} is not supported`);return this.fromMultipleTopics(e,t,r)}))}fromTopic(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const i=(yield this.requestLogic.getRequestsByTopic(e,t)).result.requests.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e.request?e.request:e.pending,n=o.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),i=new h.default(t.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,skipPaymentDetection:null==r?void 0:r.disablePaymentDetection,disableEvents:null==r?void 0:r.disableEvents});return yield i.refresh(),i}))));return Promise.all(i)}))}fromMultipleTopics(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const i=(yield this.requestLogic.getRequestsByMultipleTopics(e,t)).result.requests.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e.request?e.request:e.pending,n=o.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),i=new h.default(t.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,skipPaymentDetection:null==r?void 0:r.disablePaymentDetection,disableEvents:null==r?void 0:r.disableEvents});return yield i.refresh(),i}))));return Promise.all(i)}))}getCurrency(e){if("string"==typeof e){const t=this.currencyManager.from(e);if(!t)throw new l.UnsupportedCurrencyError(e);return l.CurrencyManager.toStorageCurrency(t)}return e}prepareRequestParameters(e){var t;return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=this.getCurrency(e.requestInfo.currency),n=Object.assign(Object.assign({},e.requestInfo),{currency:r}),i=e.paymentNetwork,f=e.contentData,a=(null===(t=e.topics)||void 0===t?void 0:t.slice())||[];if(n.extensionsData)throw new Error("extensionsData in request parameters must be empty");if(n.currency.type===c.RequestLogicTypes.CURRENCY.ERC20&&!this.validERC20Address(n.currency.value))throw new Error("The ERC20 currency address needs to be a valid Ethereum checksum address");const s=u.default.deepCopy(n);s.extensionsData=[];let l=null;return i&&(l=o.PaymentNetworkFactory.createPaymentNetwork({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,currency:n.currency,paymentNetworkCreationParameters:i,currencyManager:this.currencyManager}),l&&s.extensionsData.push(yield l.createExtensionsDataForCreation(i.parameters))),f&&s.extensionsData.push(this.contentData.createExtensionsDataForCreation(f)),s.payee&&a.push(s.payee),s.payer&&a.push(s.payer),{requestParameters:s,topics:a,paymentNetwork:l}}))}validERC20Address(e){return i.utils.getAddress(e)===e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AdvancedLogic=void 0;var n=r(688);Object.defineProperty(t,"AdvancedLogic",{enumerable:!0,get:function(){return n.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(689),f=r(258),o=r(690),a=r(259),s=r(691),c=r(260),u=r(692),l=r(262),d=r(693),h=r(694),p=r(696),b=r(697);t.default=class{constructor(){this.extensions={addressBasedBtc:new f.default,addressBasedErc20:new s.default,addressBasedTestnetBtc:new o.default,contentData:new i.default,anyToErc20Proxy:new p.default,declarative:new a.default,ethereumInputData:new d.default,nativeToken:[new h.default],feeProxyContractErc20:new c.default,proxyContractErc20:new u.default,feeProxyContractEth:new l.default,anyToEthProxy:new b.default}}applyActionToExtensions(e,t,r,n,i){return this.getExtensionForActionAndState(t,r).applyActionToExtension(e,t,r,n,i)}getExtensionForActionAndState(e,t){const r=e.id,i={[n.ExtensionTypes.ID.CONTENT_DATA]:this.extensions.contentData,[n.ExtensionTypes.ID.PAYMENT_NETWORK_BITCOIN_ADDRESS_BASED]:this.extensions.addressBasedBtc,[n.ExtensionTypes.ID.PAYMENT_NETWORK_TESTNET_BITCOIN_ADDRESS_BASED]:this.extensions.addressBasedTestnetBtc,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_DECLARATIVE]:this.extensions.declarative,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_ADDRESS_BASED]:this.extensions.addressBasedErc20,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_PROXY_CONTRACT]:this.extensions.proxyContractErc20,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_FEE_PROXY_CONTRACT]:this.extensions.feeProxyContractErc20,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_INPUT_DATA]:this.extensions.ethereumInputData,[n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN]:this.getNativeTokenExtensionForActionAndState(e,t),[n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ERC20_PROXY]:this.extensions.anyToErc20Proxy,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_FEE_PROXY_CONTRACT]:this.extensions.feeProxyContractEth,[n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ETH_PROXY]:this.extensions.anyToEthProxy}[r];if(!i){if(r===n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN)throw Error(`extension with id: ${r} not found for network: ${t.currency.network}`);throw Error(`extension not recognized, id: ${r}`)}return i}getNativeTokenExtensionForActionAndState(e,t){var r;if(t.currency.network&&e.parameters.paymentNetworkName&&t.currency.network!==e.parameters.paymentNetworkName)throw new Error(`Cannot apply action for network ${e.parameters.paymentNetworkName} on state with payment network: ${t.currency.network}`);const n=null!==(r=t.currency.network)&&void 0!==r?r:e.parameters.paymentNetworkName;return n?this.extensions.nativeToken.find((e=>e.supportedNetworks.includes(n))):void 0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(257);class f extends i.AbstractExtension{constructor(e=n.ExtensionTypes.ID.CONTENT_DATA,t="0.1.0"){super(n.ExtensionTypes.TYPE.CONTENT_DATA,e,t),this.extensionId=e,this.currentVersion=t}createCreationAction(e){if(!e.content)throw Error("No content has been given for the extension content-data");return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.content)throw Error("No content has been given for the extension content-data");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[],id:this.extensionId,type:this.extensionType,values:Object.assign(Object.assign({},r.values),{content:e.parameters.content})})}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(258);class f extends i.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_TESTNET_BITCOIN_ADDRESS_BASED,"0.1.0",["testnet"])}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(74),f=["mainnet","rinkeby","private"];class o extends i.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_ADDRESS_BASED,"0.1.0",f,n.RequestLogicTypes.CURRENCY.ERC20)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(91);class f extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_PROXY_CONTRACT,t="0.1.0",r=["mainnet","rinkeby","private"],i=n.RequestLogicTypes.CURRENCY.ERC20){super(e,t,r,i),this.extensionId=e,this.currentVersion=t,this.supportedNetworks=r,this.supportedCurrencyType=i}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(91),f=["mainnet","rinkeby","xdai","sokol","fuse","matic","celo","fantom","bsctest","bsc"];class o extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_INPUT_DATA,t="0.2.0"){super(e,t,f,n.RequestLogicTypes.CURRENCY.ETH)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(74),f=r(695),o=["aurora","aurora-testnet"];class a extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN,t="0.2.0"){super(e,t,o)}isValidAddress(e,t){switch(t){case"aurora":return this.isValidMainnetAddress(e);case"aurora-testnet":return this.isValidTestnetAddress(e);case void 0:return this.isValidMainnetAddress(e)||this.isValidTestnetAddress(e);default:throw new i.UnsupportedNetworkError(t,this.supportedNetworks)}}isValidMainnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR","aurora")}isValidTestnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR-testnet","aurora-testnet")}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(74),f=r(91);class o extends f.default{constructor(e,t,r){super(e,t,r,n.RequestLogicTypes.CURRENCY.ETH)}createCreationAction(e){const t=e.paymentNetworkName;if(!t&&(e.paymentAddress||e.refundAddress))throw new Error(`The network name is mandatory for the creation of the extension ${this.extensionId}.`);if(e.paymentAddress&&!this.isValidAddress(e.paymentAddress,t))throw new i.InvalidPaymentAddressError(e.paymentAddress);if(e.refundAddress&&!this.isValidAddress(e.refundAddress,t))throw new i.InvalidPaymentAddressError(e.refundAddress,"refundAddress");return super.createCreationAction(e)}isValidAddress(e,t){throw new Error("Default implementation of isValidAddress() does not support native tokens. Please override this method.")}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(260),f=r(263);class o extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ERC20_PROXY,t="0.1.0"){super(e,t,Object.keys(f.currenciesWithConversionOracles),n.RequestLogicTypes.CURRENCY.ERC20)}createCreationAction(e){if(!e.acceptedTokens||0===e.acceptedTokens.length)throw Error("acceptedTokens is required");if(e.acceptedTokens.some((e=>!this.isValidAddress(e))))throw Error("acceptedTokens must contains only valid ethereum addresses");const t=e.network;if(!t)throw Error("network is required");if(!f.currenciesWithConversionOracles[t])throw Error(`network ${t} not supported`);const r=f.currenciesWithConversionOracles[t][n.RequestLogicTypes.CURRENCY.ERC20];for(const n of e.acceptedTokens)if(!r.includes(n.toLowerCase()))throw Error(`acceptedTokens must contain only supported token addresses (ERC20 only). ${n} is not supported for ${t}.`);return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.network||0===e.parameters.network.length)throw Error("network is required");if(!e.parameters.acceptedTokens||0===e.parameters.acceptedTokens.length)throw Error("acceptedTokens is required and cannot be empty");if(e.parameters.acceptedTokens.some((e=>!this.isValidAddress(e))))throw Error("acceptedTokens must contains only valid ethereum addresses");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[{name:"create",parameters:{feeAddress:e.parameters.feeAddress,feeAmount:e.parameters.feeAmount,paymentAddress:e.parameters.paymentAddress,refundAddress:e.parameters.refundAddress,salt:e.parameters.salt,network:e.parameters.network,acceptedTokens:e.parameters.acceptedTokens,maxRateTimespan:e.parameters.maxRateTimespan},timestamp:t}],values:Object.assign(Object.assign({},r.values),{network:e.parameters.network,acceptedTokens:e.parameters.acceptedTokens,maxRateTimespan:e.parameters.maxRateTimespan})})}validate(e,t){var r;const i=t.parameters.network||(null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network);if(!i)return;if(!f.currenciesWithConversionOracles[i])throw new Error(`The network (${i}) is not supported for this payment network.`);if(!f.currenciesWithConversionOracles[i][e.currency.type])throw new Error(`The currency type (${e.currency.type}) of the request is not supported for this payment network.`);const o=e.currency.type===n.RequestLogicTypes.CURRENCY.ERC20?e.currency.value.toLowerCase():e.currency.value;if(!f.currenciesWithConversionOracles[i][e.currency.type].includes(o))throw new Error(`The currency (${e.currency.value}) of the request is not supported for this payment network.`)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(262),f=r(263);class o extends i.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ETH_PROXY,t="0.1.0"){super(e,t,Object.keys(f.currenciesWithConversionOracles))}createCreationAction(e){const t=e.network;if(!t)throw Error("network is required");if(!f.currenciesWithConversionOracles[t])throw Error(`network ${t} not supported`);return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.network||0===e.parameters.network.length)throw Error("network is required");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[{name:"create",parameters:{feeAddress:e.parameters.feeAddress,feeAmount:e.parameters.feeAmount,paymentAddress:e.parameters.paymentAddress,refundAddress:e.parameters.refundAddress,salt:e.parameters.salt,network:e.parameters.network,maxRateTimespan:e.parameters.maxRateTimespan},timestamp:t}],values:Object.assign(Object.assign({},r.values),{network:e.parameters.network,maxRateTimespan:e.parameters.maxRateTimespan})})}validate(e,t){var r;const i=t.parameters.network||(null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network);if(!i)throw new Error("The network must be provided from the creation action or from the extension state");if(!f.currenciesWithConversionOracles[i])throw new Error(`The network (${i}) is not supported for this payment network.`);if(!f.currenciesWithConversionOracles[i][e.currency.type])throw new Error(`The currency type (${e.currency.type}) of the request is not supported for this payment network.`);const o=e.currency.type===n.RequestLogicTypes.CURRENCY.ERC20?e.currency.value.toLowerCase():e.currency.value;if(!f.currenciesWithConversionOracles[i][e.currency.type].includes(o))throw new Error(`The currency (${e.currency.value}) of the request is not supported for this payment network.`)}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestLogic=void 0;var n=r(699);Object.defineProperty(t,"RequestLogic",{enumerable:!0,get:function(){return n.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(700),i=r(17),f=r(28),o=r(4),a=r(13),s=r(711);t.default=class{constructor(e,t,r){this.transactionManager=e,this.signatureProvider=t,this.advancedLogic=r}createRequest(e,t,r=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{action:n,requestId:f,hashedTopics:o}=yield this.createCreationActionRequestIdAndTopics(e,t,r);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const a=yield this.transactionManager.persistTransaction(JSON.stringify(n),f,o),c=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:a.meta},result:{requestId:f}});return a.on("confirmed",(e=>{c.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:f}})})).on("error",(e=>{c.emit("error",e)})),c}))}createEncryptedRequest(e,t,r,f=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(0===r.length)throw new Error("You must give at least one encryption parameter to create an encrypted request");const{action:n,requestId:o,hashedTopics:a}=yield this.createCreationActionRequestIdAndTopics(e,t,f);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const c=yield this.transactionManager.persistTransaction(JSON.stringify(n),o,a,r),u=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:c.meta},result:{requestId:o}});return c.on("confirmed",(e=>{u.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:o}})})).on("error",(e=>{u.emit("error",e)})),u}))}computeRequestId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const r=yield s.default.formatCreate(e,t,this.signatureProvider);return s.default.applyActionToRequest(null,r,Date.now(),this.advancedLogic),s.default.getRequestIdFromAction(r)}))}acceptRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatAccept(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}cancelRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatCancel(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}increaseExpectedAmountRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatIncreaseExpectedAmount(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}reduceExpectedAmountRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatReduceExpectedAmount(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}addExtensionsDataRequest(e,t,r=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatAddExtensionsData(e,t,this.signatureProvider),f=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(f,n));const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),f),a=Object.assign(new i.EventEmitter,{meta:{transactionManagerMeta:o.meta}});return o.on("confirmed",(e=>{a.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{a.emit("error",e)})),a}))}getRequestFromId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{ignoredTransactions:t,confirmedRequestState:r,pendingRequestState:n,transactionManagerMeta:i}=yield this.computeRequestFromRequestId(e);return{meta:{ignoredTransactions:t,transactionManagerMeta:i},result:{request:r,pending:this.computeDiffBetweenPendingAndConfirmedRequestState(r,n)}}}))}getRequestsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=f.default.serialize(a.default.crypto.normalizeKeccak256Hash(e)),n=yield this.transactionManager.getChannelsByTopic(r,t);return this.computeMultipleRequestFromChannels(n)}))}getRequestsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=e.map((e=>f.default.serialize(a.default.crypto.normalizeKeccak256Hash(e)))),n=yield this.transactionManager.getChannelsByMultipleTopics(r,t);return this.computeMultipleRequestFromChannels(n)}))}createCreationActionRequestIdAndTopics(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.signatureProvider)throw new Error("You must give a signature provider to create actions");const n=yield s.default.formatCreate(e,t,this.signatureProvider),i=s.default.getRequestIdFromAction(n);return{action:n,hashedTopics:r.map((e=>f.default.serialize(a.default.crypto.normalizeKeccak256Hash(e)))),requestId:i}}))}computeRequestFromRequestId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.transactionManager.getTransactionsByChannelId(e),r=t.result.transactions.filter(a.default.notNull).sort(((e,t)=>e.timestamp-t.timestamp));let{ignoredTransactions:n,keptTransactions:i}=this.removeOldPendingTransactions(r);const f=a.default.uniqueByProperty(i.filter(a.default.notNull).map((e=>{try{return{action:JSON.parse(e.transaction.data||""),state:e.state,timestamp:e.timestamp}}catch(t){return void n.push({reason:"JSON parsing error",transaction:e})}})).filter(a.default.notNull),"action");n=n.concat(f.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:o,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(f.uniqueItems);return n=n.concat(c),{confirmedRequestState:o,ignoredTransactions:n,pendingRequestState:s,transactionManagerMeta:t.meta}}))}computeRequestFromTransactions(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=[],r=e.filter((e=>e.state===o.TransactionTypes.TransactionState.CONFIRMED)).reduce(((e,r)=>{try{return s.default.applyActionToRequest(e,r.action,r.timestamp,this.advancedLogic)}catch(n){return t.push({reason:n.message,transaction:r}),e}}),null),n=e.filter((e=>e.state===o.TransactionTypes.TransactionState.PENDING)).reduce(((e,r)=>{try{return s.default.applyActionToRequest(e,r.action,r.timestamp,this.advancedLogic)}catch(n){return t.push({reason:n.message,transaction:r}),e}}),r);return{confirmedRequestState:r,ignoredTransactionsByApplication:t,pendingRequestState:n}}))}computeMultipleRequestFromChannels(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e.result.transactions,r=e.meta.dataAccessMeta,i=Object.keys(e.result.transactions).map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){let{ignoredTransactions:n,keptTransactions:i}=this.removeOldPendingTransactions(t[e]);const f=a.default.uniqueByProperty(i.filter(a.default.notNull).map((e=>{try{return{action:JSON.parse(e.transaction.data||""),state:e.state,timestamp:e.timestamp}}catch(t){return void n.push({reason:"JSON parsing error",transaction:e})}})).filter(a.default.notNull),"action");n=n.concat(f.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:o,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(f.uniqueItems);n=n.concat(c);const u=this.computeDiffBetweenPendingAndConfirmedRequestState(o,s);return{ignoredTransactions:n,pending:u,request:o,transactionManagerMeta:r[e]}}))));return(yield Promise.all(i)).reduce(((e,t)=>((t.request||t.pending)&&(e.result.requests.push({pending:t.pending,request:t.request}),(e.meta.ignoredTransactions||[]).push(t.ignoredTransactions),(e.meta.transactionManagerMeta||[]).push(t.transactionManagerMeta)),e)),{meta:{ignoredTransactions:[],transactionManagerMeta:[]},result:{requests:[]}})}))}validateAction(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{confirmedRequestState:r,pendingRequestState:n}=yield this.computeRequestFromRequestId(e);try{s.default.applyActionToRequest(r,t,Date.now(),this.advancedLogic)}catch(e){n&&s.default.applyActionToRequest(n,t,Date.now(),this.advancedLogic)}}))}computeDiffBetweenPendingAndConfirmedRequestState(e,t){let r=null;if(e){if(t)for(const n in t)n in t&&a.default.crypto.normalizeKeccak256Hash(t[n]).value!==a.default.crypto.normalizeKeccak256Hash(e[n]).value&&(r||(r={}),r[n]="events"===n?t[n].slice(e[n].length):t[n])}else r=t;return r}removeOldPendingTransactions(e){const t=[];let r=!1;const n=e.reverse().filter((e=>!!e&&(r=r||e.state===o.TransactionTypes.TransactionState.CONFIRMED,e.state===o.TransactionTypes.TransactionState.CONFIRMED||e.state===o.TransactionTypes.TransactionState.PENDING&&!r||(t.push({reason:"Confirmed transaction newer than this pending transaction",transaction:e}),!1)))).reverse();return{ignoredTransactions:t,keptTransactions:n}}}},function(e,t,r){"use strict";r.r(t),r.d(t,"__extends",(function(){return i})),r.d(t,"__assign",(function(){return f})),r.d(t,"__rest",(function(){return o})),r.d(t,"__decorate",(function(){return a})),r.d(t,"__param",(function(){return s})),r.d(t,"__metadata",(function(){return c})),r.d(t,"__awaiter",(function(){return u})),r.d(t,"__generator",(function(){return l})),r.d(t,"__createBinding",(function(){return d})),r.d(t,"__exportStar",(function(){return h})),r.d(t,"__values",(function(){return p})),r.d(t,"__read",(function(){return b})),r.d(t,"__spread",(function(){return y})),r.d(t,"__spreadArrays",(function(){return m})),r.d(t,"__spreadArray",(function(){return g})),r.d(t,"__await",(function(){return v})),r.d(t,"__asyncGenerator",(function(){return _})),r.d(t,"__asyncDelegator",(function(){return w})),r.d(t,"__asyncValues",(function(){return E})),r.d(t,"__makeTemplateObject",(function(){return A})),r.d(t,"__importStar",(function(){return T})),r.d(t,"__importDefault",(function(){return x})),r.d(t,"__classPrivateFieldGet",(function(){return P})),r.d(t,"__classPrivateFieldSet",(function(){return R}));var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var f=function(){return(f=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function o(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r}function a(e,t,r,n){var i,f=arguments.length,o=f<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(f<3?i(o):f>3?i(t,r,o):i(t,r))||o);return f>3&&o&&Object.defineProperty(t,r,o),o}function s(e,t){return function(r,n){t(r,n,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,r,n){return new(r||(r=Promise))((function(i,f){function o(e){try{s(n.next(e))}catch(e){f(e)}}function a(e){try{s(n.throw(e))}catch(e){f(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}s((n=n.apply(e,t||[])).next())}))}function l(e,t){var r,n,i,f,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return f={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function a(f){return function(a){return function(f){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(i=2&f[0]?n.return:f[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,f[1])).done)return i;switch(n=0,i&&(f=[2&f[0],i.value]),f[0]){case 0:case 1:i=f;break;case 4:return o.label++,{value:f[1],done:!1};case 5:o.label++,n=f[1],f=[0];continue;case 7:f=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==f[0]&&2!==f[0])){o=0;continue}if(3===f[0]&&(!i||f[1]>i[0]&&f[1]<i[3])){o.label=f[1];break}if(6===f[0]&&o.label<i[1]){o.label=i[1],i=f;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(f);break}i[2]&&o.ops.pop(),o.trys.pop();continue}f=t.call(e,o)}catch(e){f=[6,e],n=0}finally{r=i=0}if(5&f[0])throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}([f,a])}}}var d=Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]};function h(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||d(t,e,r)}function p(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function b(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,f=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=f.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=f.return)&&r.call(f)}finally{if(i)throw i.error}}return o}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(b(arguments[t]));return e}function m(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var f=arguments[t],o=0,a=f.length;o<a;o++,i++)n[i]=f[o];return n}function g(e,t,r){if(r||2===arguments.length)for(var n,i=0,f=t.length;i<f;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}function v(e){return this instanceof v?(this.v=e,this):new v(e)}function _(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,i=r.apply(e,t||[]),f=[];return n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n;function o(e){i[e]&&(n[e]=function(t){return new Promise((function(r,n){f.push([e,t,r,n])>1||a(e,t)}))})}function a(e,t){try{(r=i[e](t)).value instanceof v?Promise.resolve(r.value.v).then(s,c):u(f[0][2],r)}catch(e){u(f[0][3],e)}var r}function s(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),f.shift(),f.length&&a(f[0][0],f[0][1])}}function w(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,i){t[n]=e[n]?function(t){return(r=!r)?{value:v(e[n](t)),done:"return"===n}:i?i(t):t}:i}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=p(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,i,(t=e[r](t)).done,t.value)}))}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var S=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function T(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&d(t,e,r);return S(t,e),t}function x(e){return e&&e.__esModule?e:{default:e}}function P(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function R(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(702),f=r(703),o=r(704),a=new n.default([new i.default,new o.default,new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_CBC_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_CBC)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_GCM_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_GCM)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.ECIES_ENCRYPTED,n.EncryptionTypes.METHOD.ECIES)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(706),f=new n.default([new i.default]);t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(264);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.NORMALIZE_KECCAK256_HASH,n.MultiFormatTypes.HashTypes.TYPE.KECCAK256)}isSerializableObject(e){return super.isSerializableObject(e)&&e.value.length===n.MultiFormatTypes.FORMAT_NORMALIZE_KECCAK256_HASH_LENGTH}isDeserializableString(e){return super.isDeserializableString(e)&&e.length===n.MultiFormatTypes.FORMAT_NORMALIZE_KECCAK256_HASH_LENGTH}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(708),f=new n.default([new i.default]);t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(264);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.IDENTITY_ETHEREUM_ADDRESS,n.IdentityTypes.TYPE.ETHEREUM_ADDRESS)}isSerializableObject(e){return super.isSerializableObject(e)&&e.value.length===n.MultiFormatTypes.FORMAT_IDENTITY_ETHEREUM_ADDRESS_LENGTH}isDeserializableString(e){return super.isDeserializableString(e)&&e.length===n.MultiFormatTypes.FORMAT_IDENTITY_ETHEREUM_ADDRESS_LENGTH}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92),i=r(710),f=new n.default([new i.default]);t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class f extends i.default{constructor(){super(n.MultiFormatTypes.prefix.PLAIN_TEXT,n.MultiFormatTypes.PlainTypes.TYPE.PLAIN_TEXT)}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(713),s=r(714),c=r(715),u=r(716),l=r(717),d=r(718);t.default={applyActionToRequest:function(e,t,r,h){if(!f.default.isActionVersionSupported(t))throw new Error("action version not supported");const p=e?i.default.deepCopy(e):null;let b=null;if(t.data.name===n.RequestLogicTypes.ACTION_NAME.CREATE){if(p)throw new Error("no request is expected at the creation");b=u.default.createRequest(t,r)}else{if(!p)throw new Error("request is expected");o.default.checkRequest(p),t.data.name===n.RequestLogicTypes.ACTION_NAME.ACCEPT&&(b=a.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.CANCEL&&(b=c.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT&&(b=l.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT&&(b=d.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA&&(b=s.default.applyActionToRequest(t,r,p))}if(!b)throw new Error(`Unknown action ${t.data.name}`);t.data.parameters.extensionsData&&h&&(b.extensions=t.data.parameters.extensionsData.reduce(((e,n)=>h.applyActionToExtensions(e,n,b,f.default.getSignerIdentityFromAction(t),r)),b.extensions));return b},formatAccept:a.default.format,formatAddExtensionsData:s.default.format,formatCancel:c.default.format,formatCreate:u.default.format,formatIncreaseExpectedAmount:l.default.format,formatReduceExpectedAmount:d.default.format,getRequestIdFromAction:function(e){return f.default.getRequestId(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={specificationVersion:{current:"2.0.3",exceptions:[]}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:{extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!r.payer)throw new Error("the request must have a payer");if(r.state!==n.RequestLogicTypes.STATE.CREATED)throw new Error("the request state must be created");const a=f.default.getSignerIdentityFromAction(e);if(o.default.getRoleInRequest(a,r)!==n.RequestLogicTypes.ROLE.PAYER)throw new Error("Signer must be the payer");r.state=n.RequestLogicTypes.STATE.ACCEPTED;let c=i.default.deepCopy(r);return c=o.default.pushExtensionsData(c,e.data.parameters.extensionsData),c.events.push(s(e,t,a)),c},format:function(e,t,r){const i={name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:e,version:a.default.currentVersion};return f.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:{extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!e.data.parameters.extensionsData||0===e.data.parameters.extensionsData.length)throw new Error("extensionsData must be given");const n=f.default.getSignerIdentityFromAction(e);let a=i.default.deepCopy(r);return a=o.default.pushExtensionsData(a,e.data.parameters.extensionsData),a.events.push(s(e,t,n)),a},format:function(e,t,r){if(!e.extensionsData||0===e.extensionsData.length)throw new Error("extensionsData must be given");const i={name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:e,version:a.default.currentVersion};return f.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:{extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");const a=f.default.getSignerIdentityFromAction(e),c=o.default.getRoleInRequest(a,r);let u=i.default.deepCopy(r);if(u=o.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,a)),c===n.RequestLogicTypes.ROLE.PAYER){if(r.state!==n.RequestLogicTypes.STATE.CREATED)throw new Error("A payer cancel need to be done on a request with the state created");return u.state=n.RequestLogicTypes.STATE.CANCELED,u}if(c===n.RequestLogicTypes.ROLE.PAYEE){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("Cannot cancel an already canceled request");return u.state=n.RequestLogicTypes.STATE.CANCELED,u}throw new Error("Signer must be the payer or the payee")},format:function(e,t,r){const i={name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:e,version:a.default.currentVersion};return f.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(131),o=r(39),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:{expectedAmount:i.expectedAmount,extensionsDataLength:i.extensionsData?i.extensionsData.length:0,isSignedRequest:!1},timestamp:t}}t.default={createRequest:function(e,t){if(!e.data.parameters.payee&&!e.data.parameters.payer)throw new Error("action.parameters.payee or action.parameters.payer must be given");if(e.data.parameters.payee&&i.default.identity.hasError(e.data.parameters.payee))throw new Error(`payee: ${i.default.identity.hasError(e.data.parameters.payee)}̀`);if(e.data.parameters.payer&&i.default.identity.hasError(e.data.parameters.payer))throw new Error(`payer: ${i.default.identity.hasError(e.data.parameters.payer)}̀`);if(!i.default.isString(e.data.parameters.expectedAmount)||!i.default.amount.isValid(e.data.parameters.expectedAmount))throw new Error("action.parameters.expectedAmount must be a string representing a positive integer");const r=o.default.getSignerIdentityFromAction(e),a=i.default.deepCopy(e.data.parameters);a.extensions={},a.requestId=o.default.getRequestId(e),a.version=o.default.getVersionFromAction(e),a.events=[s(e,t,r)],f.lt(e.data.version,"2.0.2")&&(a.currency=function(e){switch(e){case"BTC":return{network:"mainnet",type:n.RequestLogicTypes.CURRENCY.BTC,value:"BTC"};case"ETH":return{network:"mainnet",type:n.RequestLogicTypes.CURRENCY.ETH,value:"ETH"};case"EUR":return{type:n.RequestLogicTypes.CURRENCY.ISO4217,value:"EUR"};case"USD":return{type:n.RequestLogicTypes.CURRENCY.ISO4217,value:"USD"};case"DAI":return{type:n.RequestLogicTypes.CURRENCY.ERC20,value:"0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359"};default:throw new Error("Unsupported currency when getting request from transactions.")}}(e.data.parameters.currency));const c=o.default.getRoleInAction(r,e);if(c===n.RequestLogicTypes.ROLE.PAYEE)return a.state=n.RequestLogicTypes.STATE.CREATED,a.creator=e.data.parameters.payee,a;if(c===n.RequestLogicTypes.ROLE.PAYER)return a.state=n.RequestLogicTypes.STATE.ACCEPTED,a.creator=e.data.parameters.payer,a;throw new Error("Signer must be the payee or the payer")},format:function(e,t,r){if(!e.payee&&!e.payer)throw new Error("payee or PayerId must be given");if(!i.default.amount.isValid(e.expectedAmount))throw new Error("expectedAmount must be a positive integer");if(e.payee&&i.default.identity.hasError(e.payee))throw new Error(`payee: ${i.default.identity.hasError(e.payee)}̀`);if(e.payer&&i.default.identity.hasError(e.payer))throw new Error(`payer: ${i.default.identity.hasError(e.payer)}̀`);e.timestamp||(e.timestamp=i.default.getCurrentTimestampInSecond());e.expectedAmount=e.expectedAmount.toString();const f=a.default.currentVersion,s={name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:e,version:f},c=o.default.getRoleInUnsignedAction(t,s);if(c!==n.RequestLogicTypes.ROLE.PAYEE&&c!==n.RequestLogicTypes.ROLE.PAYER)throw new Error("Signer must be the payee or the payer");return o.default.createAction(s,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!r.payer)throw new Error("the request must have a payer");if(!e.data.parameters.deltaAmount)throw new Error("deltaAmount must be given");if(!i.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const a=f.default.getSignerIdentityFromAction(e),c=o.default.getRoleInRequest(a,r);let u=i.default.deepCopy(r);if(u=o.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,a)),c===n.RequestLogicTypes.ROLE.PAYER){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=i.default.amount.add(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payer")},format:function(e,t,r){if(!i.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o={name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:e,version:a.default.currentVersion};return f.default.createAction(o,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(13),f=r(39),o=r(60),a=r(40);function s(e,t,r){const i=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:i.extensionsData?i.extensionsData.length:0},timestamp:t}}t.default={applyActionToRequest:function(e,t,r){if(!e.data.parameters.requestId)throw new Error("requestId must be given");if(!r.payee)throw new Error("the request must have a payee");if(!e.data.parameters.deltaAmount)throw new Error("deltaAmount must be given");if(!i.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const a=f.default.getSignerIdentityFromAction(e),c=o.default.getRoleInRequest(a,r);let u=i.default.deepCopy(r);if(u=o.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,a)),c===n.RequestLogicTypes.ROLE.PAYEE){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=i.default.amount.reduce(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payee")},format:function(e,t,r){if(!i.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o={name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:e,version:a.default.currentVersion};return f.default.createAction(o,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransactionManager=void 0;var n=r(720);Object.defineProperty(t,"TransactionManager",{enumerable:!0,get:function(){return n.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(4),o=r(13),a=r(17),s=r(721),c=r(725);t.default=class{constructor(e,t){this.dataAccess=e,this.channelParser=new s.default(t)}persistTransaction(e,t,r=[],s=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let n,u={};const l=i.default.serialize(o.default.crypto.normalizeKeccak256Hash(JSON.parse(e)));if(t===l)0===s.length?u=yield c.default.createClearTransaction(e):(u=yield c.default.createEncryptedTransactionInNewChannel(e,s),n=u.encryptionMethod);else{const r=yield this.dataAccess.getTransactionsByChannelId(t),{channelKey:i,channelType:o,encryptionMethod:a}=yield this.channelParser.getChannelTypeAndChannelKey(t,r.result.transactions);if(o===f.TransactionTypes.ChannelType.UNKNOWN)throw new Error(`Impossible to retrieve the channel: ${t}`);if(o===f.TransactionTypes.ChannelType.CLEAR&&(u=yield c.default.createClearTransaction(e)),o===f.TransactionTypes.ChannelType.ENCRYPTED){if(0!==s.length)throw new Error("Impossible to add new stakeholder to an existing channel");if(!i)throw new Error(`Impossible to decrypt the channel key of: ${t}`);u=yield c.default.createEncryptedTransaction(e,i),n=a}}const d=yield this.dataAccess.persistTransaction(u,t,r.concat([l])),h=Object.assign(new a.EventEmitter,{meta:{dataAccessMeta:d.meta,encryptionMethod:n},result:{}});return d.on("confirmed",(e=>{const t={meta:{dataAccessMeta:e.meta,encryptionMethod:n},result:{}};h.emit("confirmed",t)})).on("error",(e=>{h.emit("error",e)})),h}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.dataAccess.getTransactionsByChannelId(e,t),{transactions:n,ignoredTransactions:i,encryptionMethod:f}=yield this.channelParser.decryptAndCleanChannel(e,r.result.transactions),o={dataAccessMeta:r.meta,encryptionMethod:f,ignoredTransactions:i};return f||delete o.encryptionMethod,{meta:o,result:{transactions:n}}}))}getChannelsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.dataAccess.getChannelsByTopic(e,t);return this.parseMultipleChannels(r)}))}getChannelsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=yield this.dataAccess.getChannelsByMultipleTopics(e,t);return this.parseMultipleChannels(r)}))}parseMultipleChannels(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield Object.keys(e.result.transactions).reduce(((t,r)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield this.channelParser.decryptAndCleanChannel(r,e.result.transactions[r]),i=yield t;return i.transactions[r]=n.transactions,i.ignoredTransactions[r]=n.ignoredTransactions,i}))),Promise.resolve({transactions:{},ignoredTransactions:{}}));return{meta:{dataAccessMeta:e.meta,ignoredTransactions:t.ignoredTransactions},result:{transactions:t.transactions}}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(4),f=r(722);t.default=class{constructor(e){this.transactionParser=new f.default(e)}decryptAndCleanChannel(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let r,f,o=i.TransactionTypes.ChannelType.UNKNOWN;const a=yield t.reduce(((t,a)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield t;let s;try{s=yield this.transactionParser.parsePersistedTransaction(a.transaction,o,r)}catch(u){return n.concat([{ignored:{reason:u.message,transaction:a},valid:null}])}const c=s.transaction,u=yield c.getError();if(""!==u)return n.concat([{ignored:{reason:u,transaction:a},valid:null}]);if(o===i.TransactionTypes.ChannelType.UNKNOWN){if((yield c.getHash())!==e)return n.concat([{ignored:{reason:"as first transaction, the hash of the transaction do not match the channelId",transaction:a},valid:null}]);o=s.channelKey?i.TransactionTypes.ChannelType.ENCRYPTED:i.TransactionTypes.ChannelType.CLEAR,f=s.encryptionMethod,r=s.channelKey}const l=yield c.getData();return n.concat([{ignored:null,valid:{state:a.state,timestamp:a.timestamp,transaction:{data:l}}}])}))),Promise.resolve([])),s=a.map((e=>e.ignored)),c=a.map((e=>e.valid));return{encryptionMethod:f,ignoredTransactions:s,transactions:c}}))}getChannelTypeAndChannelKey(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return yield t.reduce(((t,r)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield t;if(n.channelType!==i.TransactionTypes.ChannelType.UNKNOWN)return n;let f;try{f=yield this.transactionParser.parsePersistedTransaction(r.transaction,i.TransactionTypes.ChannelType.UNKNOWN)}catch(e){return n}const o=f.transaction;if(""!==(yield o.getError()))return n;return(yield o.getHash())!==e||(n.channelType=f.channelKey?i.TransactionTypes.ChannelType.ENCRYPTED:i.TransactionTypes.ChannelType.CLEAR,n.channelKey=f.channelKey,n.encryptionMethod=f.encryptionMethod),n}))),Promise.resolve({channelKey:void 0,channelType:i.TransactionTypes.ChannelType.UNKNOWN,encryptionMethod:void 0}))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(4),o=r(723),a=r(724);t.default=class{constructor(e){this.decryptionProvider=e}parsePersistedTransaction(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(e.data){if(t===f.TransactionTypes.ChannelType.ENCRYPTED)throw new Error("Clear transactions are not allowed in encrypted channel");if(e.encryptedData||e.encryptionMethod||e.keys)throw new Error('only the property "data" is allowed for clear transaction');return{transaction:new o.default(e.data)}}if(e.encryptedData){if(t===f.TransactionTypes.ChannelType.CLEAR)throw new Error("Encrypted transactions are not allowed in clear channel");if(r){if(e.encryptionMethod||e.keys)throw new Error('the properties "encryptionMethod" and "keys" have been already given for this channel')}else{if(!e.encryptionMethod||!e.keys)throw new Error('the properties "encryptionMethod" and "keys" are needed to compute the channel key');r=yield this.decryptChannelKey(e.keys,e.encryptionMethod)}return{channelKey:r,encryptionMethod:e.encryptionMethod,transaction:new a.default(e.encryptedData,r)}}throw new Error('Transaction must have a property "data" or "encryptedData"')}))}decryptChannelKey(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.decryptionProvider)throw new Error("No decryption provider given");let r;if(t===`${f.EncryptionTypes.METHOD.ECIES}-${f.EncryptionTypes.METHOD.AES256_CBC}`)r=f.EncryptionTypes.METHOD.AES256_CBC;else{if(t!==`${f.EncryptionTypes.METHOD.ECIES}-${f.EncryptionTypes.METHOD.AES256_GCM}`)throw new Error(`Encryption method not supported: ${t}`);r=f.EncryptionTypes.METHOD.AES256_GCM}let o="";const a=yield Object.keys(e||{}).reduce(((t,r)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){let n=yield t;if(e&&""===n){let t;try{t=i.default.deserialize(r)}catch(e){}if(t&&t.type===f.IdentityTypes.TYPE.ETHEREUM_ADDRESS&&this.decryptionProvider&&(yield this.decryptionProvider.isIdentityRegistered(t)))try{const f=i.default.deserialize(e[r]);n=yield this.decryptionProvider.decrypt(f,t)}catch(e){o=e.message}}return n}))),Promise.resolve(""));if(""===a)throw new Error(`Impossible to decrypt the channel key from this transaction (${o})`);return{key:a,method:r}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(13);t.default=class{constructor(e){this.data=e}getData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return this.data}))}getHash(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return i.default.serialize(f.default.crypto.normalizeKeccak256Hash(JSON.parse(this.data)))}))}getError(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){try{return JSON.parse(this.data),""}catch(e){return"Impossible to JSON parse the transaction"}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(13);t.default=class{constructor(e,t){this.data="",this.dataHashSerialized="",this.persistedData=e,this.channelKey=t}getData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(""===this.data)try{const e=i.default.deserialize(this.persistedData);this.data=yield f.default.encryption.decrypt(e,this.channelKey)}catch(e){throw new Error("Impossible to decrypt the transaction")}return this.data}))}getHash(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(""===this.dataHashSerialized){const e=yield this.getData();try{const t=f.default.crypto.normalizeKeccak256Hash(JSON.parse(e));this.dataHashSerialized=i.default.serialize(t)}catch(e){throw new Error("Impossible to JSON parse the decrypted transaction data")}}return this.dataHashSerialized}))}getError(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let e="";try{e=yield this.getData()}catch(e){return e.message}try{JSON.parse(e)}catch(e){return"Impossible to JSON parse the decrypted transaction data"}return""}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(61),i=r(28),f=r(4),o=r(13);t.default=class{static createClearTransaction(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}return{data:e}}))}static createEncryptedTransactionInNewChannel(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=`${f.EncryptionTypes.METHOD.ECIES}-${f.EncryptionTypes.METHOD.AES256_GCM}`,a=yield o.default.crypto.generate32BufferKey(),s=yield o.default.encryption.encrypt(e,{key:a,method:f.EncryptionTypes.METHOD.AES256_GCM});try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}if(!t.every((e=>e.method===f.EncryptionTypes.METHOD.ECIES)))throw new Error(`encryptionParams method must be all: ${f.EncryptionTypes.METHOD.ECIES}`);const c=t.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield o.default.encryption.encrypt(a,e),r=o.default.encryption.getIdentityFromEncryptionParams(e);return{encryptedKey:t,multiFormattedIdentity:i.default.serialize(r)}})))),u=(yield Promise.all(c)).reduce(((e,t)=>{const r=i.default.serialize(t.encryptedKey);return e[t.multiFormattedIdentity]=r,e}),{});return{encryptedData:i.default.serialize(s),keys:u,encryptionMethod:r}}))}static createEncryptedTransaction(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(t.method!==f.EncryptionTypes.METHOD.AES256_GCM)throw new Error(`encryption method not supported for the channel key: ${t.method}`);const r=yield o.default.encryption.encrypt(e,t);try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}return{encryptedData:i.default.serialize(r)}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(727),i=r(4).ExtensionTypes.ID.CONTENT_DATA;t.default=class{constructor(e){this.extension=e.extensions.contentData}createExtensionsDataForCreation(e){if(n.default.isKnownFormat(e)){const{valid:t,errors:r}=n.default.validate(e);if(!t){const e=r.map((e=>JSON.stringify(e))).join("\n");throw new Error(`The content data seem to follow a request format but contains errors: ${e}`)}}return this.extension.createCreationAction({content:e})}getContent(e){return e&&e.extensions&&e.extensions[i]?e.extensions[i].values.content:null}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(266),i=r(728),f=r(762),o=r(763),a=r(764);t.default={validate(e){var t;const r=(new i).addMetaSchema(f).addSchema(o);if(!e.meta)return{valid:!1,errors:[{message:"meta not found"}]};if(!e.meta.format)return{valid:!1,errors:[{message:"meta.format not found"}]};if(!e.meta.version)return{valid:!1,errors:[{message:"meta.version not found"}]};const n=null===(t=a.default[e.meta.format])||void 0===t?void 0:t[e.meta.version];if(!n)return{valid:!1,errors:[{message:"format not found"}]};const s=r.compile(n);return s(e)?{valid:!0}:{valid:!1,errors:s.errors}},isKnownFormat:e=>!!e.meta&&"rnf_invoice"===e.meta.format},(0,n.__exportStar)(r(768),t)},function(e,t,r){"use strict";var n=r(729),i=r(132),f=r(733),o=r(267),a=r(268),s=r(734),c=r(735),u=r(756),l=r(62);e.exports=m,m.prototype.validate=function(e,t){var r;if("string"==typeof e){if(!(r=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var n=this._addSchema(e);r=n.validate||this._compile(n)}var i=r(t);!0!==r.$async&&(this.errors=r.errors);return i},m.prototype.compile=function(e,t){var r=this._addSchema(e,void 0,t);return r.validate||this._compile(r)},m.prototype.addSchema=function(e,t,r,n){if(Array.isArray(e)){for(var f=0;f<e.length;f++)this.addSchema(e[f],void 0,r,n);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return A(this,t=i.normalizeId(t||o)),this._schemas[t]=this._addSchema(e,r,n,!0),this},m.prototype.addMetaSchema=function(e,t,r){return this.addSchema(e,t,r,!0),this},m.prototype.validateSchema=function(e,t){var r=e.$schema;if(void 0!==r&&"string"!=typeof r)throw new Error("$schema must be a string");if(!(r=r||this._opts.defaultMeta||function(e){var t=e._opts.meta;return e._opts.defaultMeta="object"==typeof t?e._getId(t)||t:e.getSchema(p)?p:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var n=this.validate(r,e);if(!n&&t){var i="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(i);this.logger.error(i)}return n},m.prototype.getSchema=function(e){var t=g(this,e);switch(typeof t){case"object":return t.validate||this._compile(t);case"string":return this.getSchema(t);case"undefined":return function(e,t){var r=i.schema.call(e,{schema:{}},t);if(r){var f=r.schema,a=r.root,s=r.baseId,c=n.call(e,f,a,void 0,s);return e._fragments[t]=new o({ref:t,fragment:!0,schema:f,root:a,baseId:s,validate:c}),c}}(this,e)}},m.prototype.removeSchema=function(e){if(e instanceof RegExp)return v(this,this._schemas,e),v(this,this._refs,e),this;switch(typeof e){case"undefined":return v(this,this._schemas),v(this,this._refs),this._cache.clear(),this;case"string":var t=g(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var r=this._opts.serialize,n=r?r(e):e;this._cache.del(n);var f=this._getId(e);f&&(f=i.normalizeId(f),delete this._schemas[f],delete this._refs[f])}return this},m.prototype.addFormat=function(e,t){"string"==typeof t&&(t=new RegExp(t));return this._formats[e]=t,this},m.prototype.errorsText=function(e,t){if(!(e=e||this.errors))return"No errors";for(var r=void 0===(t=t||{}).separator?", ":t.separator,n=void 0===t.dataVar?"data":t.dataVar,i="",f=0;f<e.length;f++){var o=e[f];o&&(i+=n+o.dataPath+" "+o.message+r)}return i.slice(0,-r.length)},m.prototype._addSchema=function(e,t,r,n){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var f=this._opts.serialize,a=f?f(e):e,s=this._cache.get(a);if(s)return s;n=n||!1!==this._opts.addUsedSchema;var c=i.normalizeId(this._getId(e));c&&n&&A(this,c);var u,l=!1!==this._opts.validateSchema&&!t;l&&!(u=c&&c==i.normalizeId(e.$schema))&&this.validateSchema(e,!0);var d=i.ids.call(this,e),h=new o({id:c,schema:e,localRefs:d,cacheKey:a,meta:r});"#"!=c[0]&&n&&(this._refs[c]=h);this._cache.put(a,h),l&&u&&this.validateSchema(e,!0);return h},m.prototype._compile=function(e,t){if(e.compiling)return e.validate=f,f.schema=e.schema,f.errors=null,f.root=t||f,!0===e.schema.$async&&(f.$async=!0),f;var r,i;e.compiling=!0,e.meta&&(r=this._opts,this._opts=this._metaOpts);try{i=n.call(this,e.schema,t,e.localRefs)}catch(t){throw delete e.validate,t}finally{e.compiling=!1,e.meta&&(this._opts=r)}return e.validate=i,e.refs=i.refs,e.refVal=i.refVal,e.root=i.root,i;function f(){var t=e.validate,r=t.apply(this,arguments);return f.errors=t.errors,r}},m.prototype.compileAsync=r(757);var d=r(758);m.prototype.addKeyword=d.add,m.prototype.getKeyword=d.get,m.prototype.removeKeyword=d.remove,m.prototype.validateKeyword=d.validate;var h=r(134);m.ValidationError=h.Validation,m.MissingRefError=h.MissingRef,m.$dataMetaSchema=u;var p="http://json-schema.org/draft-07/schema",b=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],y=["/properties"];function m(e){if(!(this instanceof m))return new m(e);e=this._opts=l.copy(e)||{},function(e){var t=e._opts.logger;if(!1===t)e.logger={log:S,warn:S,error:S};else{if(void 0===t&&(t=console),!("object"==typeof t&&t.log&&t.warn&&t.error))throw new Error("logger must implement log, warn and error methods");e.logger=t}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=s(e.format),this._cache=e.cache||new f,this._loadingSchemas={},this._compilations=[],this.RULES=c(),this._getId=function(e){switch(e.schemaId){case"auto":return E;case"id":return _;default:return w}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=a),this._metaOpts=function(e){for(var t=l.copy(e._opts),r=0;r<b.length;r++)delete t[b[r]];return t}(this),e.formats&&function(e){for(var t in e._opts.formats){var r=e._opts.formats[t];e.addFormat(t,r)}}(this),e.keywords&&function(e){for(var t in e._opts.keywords){var r=e._opts.keywords[t];e.addKeyword(t,r)}}(this),function(e){var t;e._opts.$data&&(t=r(761),e.addMetaSchema(t,t.$id,!0));if(!1===e._opts.meta)return;var n=r(274);e._opts.$data&&(n=u(n,y));e.addMetaSchema(n,p,!0),e._refs["http://json-schema.org/schema"]=p}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var t=e._opts.schemas;if(!t)return;if(Array.isArray(t))e.addSchema(t);else for(var r in t)e.addSchema(t[r],r)}(this)}function g(e,t){return t=i.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function v(e,t,r){for(var n in t){var i=t[n];i.meta||r&&!r.test(n)||(e._cache.del(i.cacheKey),delete t[n])}}function _(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function w(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function E(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function A(e,t){if(e._schemas[t]||e._refs[t])throw new Error('schema with key or id "'+t+'" already exists')}function S(){}},function(e,t,r){"use strict";var n=r(132),i=r(62),f=r(134),o=r(268),a=r(269),s=i.ucs2length,c=r(133),u=f.Validation;function l(e,t,r){var n=h.call(this,e,t,r);return n>=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:r},{index:n,compiling:!1})}function d(e,t,r){var n=h.call(this,e,t,r);n>=0&&this._compilations.splice(n,1)}function h(e,t,r){for(var n=0;n<this._compilations.length;n++){var i=this._compilations[n];if(i.schema==e&&i.root==t&&i.baseId==r)return n}return-1}function p(e,t){return"var pattern"+e+" = new RegExp("+i.toQuotedString(t[e])+");"}function b(e){return"var default"+e+" = defaults["+e+"];"}function y(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function m(e){return"var customRule"+e+" = customRules["+e+"];"}function g(e,t){if(!e.length)return"";for(var r="",n=0;n<e.length;n++)r+=t(n,e);return r}e.exports=function e(t,r,h,v){var _=this,w=this._opts,E=[void 0],A={},S=[],T={},x=[],P={},R=[];r=r||{schema:t,refVal:E,refs:A};var k=l.call(this,t,r,v),C=this._compilations[k.index];if(k.compiling)return C.callValidate=function e(){var t=C.validate,r=t.apply(this,arguments);return e.errors=t.errors,r};var O=this._formats,M=this.RULES;try{var N=D(t,r,h,v);C.validate=N;var I=C.callValidate;return I&&(I.schema=N.schema,I.errors=null,I.refs=N.refs,I.refVal=N.refVal,I.root=N.root,I.$async=N.$async,w.sourceCode&&(I.source=N.source)),N}finally{d.call(this,t,r,v)}function D(t,o,l,d){var h=!o||o&&o.schema==t;if(o.schema!=r.schema)return e.call(_,t,o,l,d);var v,T=!0===t.$async,P=a({isTop:!0,schema:t,isRoot:h,baseId:d,root:o,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:f.MissingRef,RULES:M,validate:a,util:i,resolve:n,resolveRef:B,usePattern:L,useDefault:U,useCustomRule:q,opts:w,formats:O,logger:_.logger,self:_});P=g(E,y)+g(S,p)+g(x,b)+g(R,m)+P,w.processCode&&(P=w.processCode(P,t));try{v=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",P)(_,M,O,r,E,x,R,c,s,u),E[0]=v}catch(e){throw _.logger.error("Error compiling schema, function code:",P),e}return v.schema=t,v.errors=null,v.refs=A,v.refVal=E,v.root=h?v:o,T&&(v.$async=!0),!0===w.sourceCode&&(v.source={code:P,patterns:S,defaults:x}),v}function B(t,i,f){i=n.url(t,i);var o,a,s=A[i];if(void 0!==s)return j(o=E[s],a="refVal["+s+"]");if(!f&&r.refs){var c=r.refs[i];if(void 0!==c)return j(o=r.refVal[c],a=F(i,o))}a=F(i);var u=n.call(_,D,r,i);if(void 0===u){var l=h&&h[i];l&&(u=n.inlineRef(l,w.inlineRefs)?l:e.call(_,l,r,h,t))}if(void 0!==u)return function(e,t){var r=A[e];E[r]=t}(i,u),j(u,a);!function(e){delete A[e]}(i)}function F(e,t){var r=E.length;return E[r]=t,A[e]=r,"refVal"+r}function j(e,t){return"object"==typeof e||"boolean"==typeof e?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function L(e){var t=T[e];return void 0===t&&(t=T[e]=S.length,S[t]=e),"pattern"+t}function U(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return i.toQuotedString(e);case"object":if(null===e)return"null";var t=o(e),r=P[t];return void 0===r&&(r=P[t]=x.length,x[r]=e),"default"+r}}function q(e,t,r,n){if(!1!==_._opts.validateSchema){var i=e.definition.dependencies;if(i&&!i.every((function(e){return Object.prototype.hasOwnProperty.call(r,e)})))throw new Error("parent schema must have all required keywords: "+i.join(","));var f=e.definition.validateSchema;if(f)if(!f(t)){var o="keyword schema is invalid: "+_.errorsText(f.errors);if("log"!=_._opts.validateSchema)throw new Error(o);_.logger.error(o)}}var a,s=e.definition.compile,c=e.definition.inline,u=e.definition.macro;if(s)a=s.call(_,t,r,n);else if(u)a=u.call(_,t,r,n),!1!==w.validateSchema&&_.validateSchema(a,!0);else if(c)a=c.call(_,n,e.keyword,t,r);else if(!(a=e.definition.validate))return;if(void 0===a)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var l=R.length;return R[l]=a,{code:"customRule"+l,validate:a}}}},function(e,t,r){!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];if(t.length>1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,i=1;i<n;++i)t[i]=t[i].slice(1,-1);return t[n]=t[n].slice(1),t.join("")}return t[0]}function r(e){return"(?:"+e+")"}function n(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function i(e){return e.toUpperCase()}function f(e){return null!=e?e instanceof Array?e:"number"!=typeof e.length||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e):[]}function o(e,t){var r=e;if(t)for(var n in t)r[n]=t[n];return r}function a(e){var n="[A-Za-z]",i="[0-9]",f=t(i,"[A-Fa-f]"),o=r(r("%[EFef]"+f+"%"+f+f+"%"+f+f)+"|"+r("%[89A-Fa-f]"+f+"%"+f+f)+"|"+r("%"+f+f)),a="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",s=t("[\\:\\/\\?\\#\\[\\]\\@]",a),c=e?"[\\uE000-\\uF8FF]":"[]",u=t(n,i,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),l=r(n+t(n,i,"[\\+\\-\\.]")+"*"),d=r(r(o+"|"+t(u,a,"[\\:]"))+"*"),h=(r(r("25[0-5]")+"|"+r("2[0-4]"+i)+"|"+r("1"+i+i)+"|"+r("[1-9]"+i)+"|"+i),r(r("25[0-5]")+"|"+r("2[0-4]"+i)+"|"+r("1"+i+i)+"|"+r("0?[1-9]"+i)+"|0?0?"+i)),p=r(h+"\\."+h+"\\."+h+"\\."+h),b=r(f+"{1,4}"),y=r(r(b+"\\:"+b)+"|"+p),m=r(r(b+"\\:")+"{6}"+y),g=r("\\:\\:"+r(b+"\\:")+"{5}"+y),v=r(r(b)+"?\\:\\:"+r(b+"\\:")+"{4}"+y),_=r(r(r(b+"\\:")+"{0,1}"+b)+"?\\:\\:"+r(b+"\\:")+"{3}"+y),w=r(r(r(b+"\\:")+"{0,2}"+b)+"?\\:\\:"+r(b+"\\:")+"{2}"+y),E=r(r(r(b+"\\:")+"{0,3}"+b)+"?\\:\\:"+b+"\\:"+y),A=r(r(r(b+"\\:")+"{0,4}"+b)+"?\\:\\:"+y),S=r(r(r(b+"\\:")+"{0,5}"+b)+"?\\:\\:"+b),T=r(r(r(b+"\\:")+"{0,6}"+b)+"?\\:\\:"),x=r([m,g,v,_,w,E,A,S,T].join("|")),P=r(r(u+"|"+o)+"+"),R=(r(x+"\\%25"+P),r(x+r("\\%25|\\%(?!"+f+"{2})")+P)),k=r("[vV]"+f+"+\\."+t(u,a,"[\\:]")+"+"),C=r("\\["+r(R+"|"+x+"|"+k)+"\\]"),O=r(r(o+"|"+t(u,a))+"*"),M=r(C+"|"+p+"(?!"+O+")|"+O),N=r(i+"*"),I=r(r(d+"@")+"?"+M+r("\\:"+N)+"?"),D=r(o+"|"+t(u,a,"[\\:\\@]")),B=r(D+"*"),F=r(D+"+"),j=r(r(o+"|"+t(u,a,"[\\@]"))+"+"),L=r(r("\\/"+B)+"*"),U=r("\\/"+r(F+L)+"?"),q=r(j+L),z=r(F+L),H="(?!"+D+")",G=(r(L+"|"+U+"|"+q+"|"+z+"|"+H),r(r(D+"|"+t("[\\/\\?]",c))+"*")),V=r(r(D+"|[\\/\\?]")+"*"),K=r(r("\\/\\/"+I+L)+"|"+U+"|"+z+"|"+H),W=r(l+"\\:"+K+r("\\?"+G)+"?"+r("\\#"+V)+"?"),$=r(r("\\/\\/"+I+L)+"|"+U+"|"+q+"|"+H),Y=r($+r("\\?"+G)+"?"+r("\\#"+V)+"?");return r(W+"|"+Y),r(l+"\\:"+K+r("\\?"+G)+"?"),r(r("\\/\\/("+r("("+d+")@")+"?("+M+")"+r("\\:("+N+")")+"?)")+"?("+L+"|"+U+"|"+z+"|"+H+")"),r("\\?("+G+")"),r("\\#("+V+")"),r(r("\\/\\/("+r("("+d+")@")+"?("+M+")"+r("\\:("+N+")")+"?)")+"?("+L+"|"+U+"|"+q+"|"+H+")"),r("\\?("+G+")"),r("\\#("+V+")"),r(r("\\/\\/("+r("("+d+")@")+"?("+M+")"+r("\\:("+N+")")+"?)")+"?("+L+"|"+U+"|"+z+"|"+H+")"),r("\\?("+G+")"),r("\\#("+V+")"),r("("+d+")@"),r("\\:("+N+")"),{NOT_SCHEME:new RegExp(t("[^]",n,i,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",u,a),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",u,a),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",u,a),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",u,a),"g"),NOT_QUERY:new RegExp(t("[^\\%]",u,a,"[\\:\\@\\/\\?]",c),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",u,a,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",u,a),"g"),UNRESERVED:new RegExp(u,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",u,s),"g"),PCT_ENCODED:new RegExp(o,"g"),IPV4ADDRESS:new RegExp("^("+p+")$"),IPV6ADDRESS:new RegExp("^\\[?("+x+")"+r(r("\\%25|\\%(?!"+f+"{2})")+"("+P+")")+"?\\]?$")}}var s=a(!1),c=a(!0),u=function(){function e(e,t){var r=[],n=!0,i=!1,f=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,f=e}finally{try{!n&&a.return&&a.return()}finally{if(i)throw f}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},d=2147483647,h=36,p=1,b=26,y=38,m=700,g=72,v=128,_="-",w=/^xn--/,E=/[^\0-\x7E]/,A=/[\x2E\u3002\uFF0E\uFF61]/g,S={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},T=h-p,x=Math.floor,P=String.fromCharCode;function R(e){throw new RangeError(S[e])}function k(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}function C(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+k((e=e.replace(A,".")).split("."),t).join(".")}function O(e){for(var t=[],r=0,n=e.length;r<n;){var i=e.charCodeAt(r++);if(i>=55296&&i<=56319&&r<n){var f=e.charCodeAt(r++);56320==(64512&f)?t.push(((1023&i)<<10)+(1023&f)+65536):(t.push(i),r--)}else t.push(i)}return t}var M=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:h},N=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},I=function(e,t,r){var n=0;for(e=r?x(e/m):e>>1,e+=x(e/t);e>T*b>>1;n+=h)e=x(e/T);return x(n+(T+1)*e/(e+y))},D=function(e){var t=[],r=e.length,n=0,i=v,f=g,o=e.lastIndexOf(_);o<0&&(o=0);for(var a=0;a<o;++a)e.charCodeAt(a)>=128&&R("not-basic"),t.push(e.charCodeAt(a));for(var s=o>0?o+1:0;s<r;){for(var c=n,u=1,l=h;;l+=h){s>=r&&R("invalid-input");var y=M(e.charCodeAt(s++));(y>=h||y>x((d-n)/u))&&R("overflow"),n+=y*u;var m=l<=f?p:l>=f+b?b:l-f;if(y<m)break;var w=h-m;u>x(d/w)&&R("overflow"),u*=w}var E=t.length+1;f=I(n-c,E,0==c),x(n/E)>d-i&&R("overflow"),i+=x(n/E),n%=E,t.splice(n++,0,i)}return String.fromCodePoint.apply(String,t)},B=function(e){var t=[],r=(e=O(e)).length,n=v,i=0,f=g,o=!0,a=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;l<128&&t.push(P(l))}}catch(e){a=!0,s=e}finally{try{!o&&u.return&&u.return()}finally{if(a)throw s}}var y=t.length,m=y;for(y&&t.push(_);m<r;){var w=d,E=!0,A=!1,S=void 0;try{for(var T,k=e[Symbol.iterator]();!(E=(T=k.next()).done);E=!0){var C=T.value;C>=n&&C<w&&(w=C)}}catch(e){A=!0,S=e}finally{try{!E&&k.return&&k.return()}finally{if(A)throw S}}var M=m+1;w-n>x((d-i)/M)&&R("overflow"),i+=(w-n)*M,n=w;var D=!0,B=!1,F=void 0;try{for(var j,L=e[Symbol.iterator]();!(D=(j=L.next()).done);D=!0){var U=j.value;if(U<n&&++i>d&&R("overflow"),U==n){for(var q=i,z=h;;z+=h){var H=z<=f?p:z>=f+b?b:z-f;if(q<H)break;var G=q-H,V=h-H;t.push(P(N(H+G%V,0))),q=x(G/V)}t.push(P(N(q,0))),f=I(i,M,m==y),i=0,++m}}}catch(e){B=!0,F=e}finally{try{!D&&L.return&&L.return()}finally{if(B)throw F}}++i,++n}return t.join("")},F=function(e){return C(e,(function(e){return w.test(e)?D(e.slice(4).toLowerCase()):e}))},j=function(e){return C(e,(function(e){return E.test(e)?"xn--"+B(e):e}))},L={version:"2.1.0",ucs2:{decode:O,encode:function(e){return String.fromCodePoint.apply(String,l(e))}},decode:D,encode:B,toASCII:j,toUnicode:F},U={};function q(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function z(e){for(var t="",r=0,n=e.length;r<n;){var i=parseInt(e.substr(r+1,2),16);if(i<128)t+=String.fromCharCode(i),r+=3;else if(i>=194&&i<224){if(n-r>=6){var f=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&i)<<6|63&f)}else t+=e.substr(r,6);r+=6}else if(i>=224){if(n-r>=9){var o=parseInt(e.substr(r+4,2),16),a=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function H(e,t){function r(e){var r=z(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,q).replace(t.PCT_ENCODED,i)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,q).replace(t.PCT_ENCODED,i)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,q).replace(t.PCT_ENCODED,i)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,q).replace(t.PCT_ENCODED,i)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,q).replace(t.PCT_ENCODED,i)),e}function G(e){return e.replace(/^0*(.*)/,"$1")||"0"}function V(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=u(r,2)[1];return n?n.split(".").map(G).join("."):e}function K(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=u(r,3),i=n[1],f=n[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),a=u(o,2),s=a[0],c=a[1],l=c?c.split(":").map(G):[],d=s.split(":").map(G),h=t.IPV4ADDRESS.test(d[d.length-1]),p=h?7:8,b=d.length-p,y=Array(p),m=0;m<p;++m)y[m]=l[m]||d[b+m]||"";h&&(y[p-1]=V(y[p-1],t));var g=y.reduce((function(e,t,r){if(!t||"0"===t){var n=e[e.length-1];n&&n.index+n.length===r?n.length++:e.push({index:r,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],v=void 0;if(g&&g.length>1){var _=y.slice(0,g.index),w=y.slice(g.index+g.length);v=_.join(":")+"::"+w.join(":")}else v=y.join(":");return f&&(v+="%"+f),v}return e}var W=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,$=void 0==="".match(/(){0}/)[1];function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?c:s;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var i=e.match(W);if(i){$?(r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5])):(r.scheme=i[1]||void 0,r.userinfo=-1!==e.indexOf("@")?i[3]:void 0,r.host=-1!==e.indexOf("//")?i[4]:void 0,r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=-1!==e.indexOf("?")?i[7]:void 0,r.fragment=-1!==e.indexOf("#")?i[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),r.host&&(r.host=K(V(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var f=U[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||f&&f.unicodeSupport)H(r,n);else{if(r.host&&(t.domainHost||f&&f.domainHost))try{r.host=L.toASCII(r.host.replace(n.PCT_ENCODED,z).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+e}H(r,s)}f&&f.parse&&f.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function J(e,t){var r=!1!==t.iri?c:s,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(K(V(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var X=/^\.\.?\//,Z=/^\/\.(\/|$)/,Q=/^\/\.\.(\/|$)/,ee=/^\/?(?:.|\n)*?(?=\/|$)/;function te(e){for(var t=[];e.length;)if(e.match(X))e=e.replace(X,"");else if(e.match(Z))e=e.replace(Z,"/");else if(e.match(Q))e=e.replace(Q,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(ee);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?c:s,n=[],i=U[(t.scheme||e.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||i&&i.domainHost)try{e.host=t.iri?L.toUnicode(e.host):L.toASCII(e.host.replace(r.PCT_ENCODED,z).toLowerCase())}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+r}H(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var f=J(e,t);if(void 0!==f&&("suffix"!==t.reference&&n.push("//"),n.push(f),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var o=e.path;t.absolutePath||i&&i.absolutePath||(o=te(o)),void 0===f&&(o=o.replace(/^\/\//,"/%2F")),n.push(o)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function ne(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={};return arguments[3]||(e=Y(re(e,r),r),t=Y(re(t,r),r)),!(r=r||{}).tolerant&&t.scheme?(n.scheme=t.scheme,n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=te(t.path||""),n.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=te(t.path||""),n.query=t.query):(t.path?("/"===t.path.charAt(0)?n.path=te(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?n.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:n.path=t.path:n.path="/"+t.path,n.path=te(n.path)),n.query=t.query):(n.path=e.path,void 0!==t.query?n.query=t.query:n.query=e.query),n.userinfo=e.userinfo,n.host=e.host,n.port=e.port),n.scheme=e.scheme),n.fragment=t.fragment,n}function ie(e,t,r){var n=o({scheme:"null"},r);return re(ne(Y(e,n),Y(t,n),n,!0),n)}function fe(e,t){return"string"==typeof e?e=re(Y(e,t),t):"object"===n(e)&&(e=Y(re(e,t),t)),e}function oe(e,t,r){return"string"==typeof e?e=re(Y(e,r),r):"object"===n(e)&&(e=re(e,r)),"string"==typeof t?t=re(Y(t,r),r):"object"===n(t)&&(t=re(t,r)),e===t}function ae(e,t){return e&&e.toString().replace(t&&t.iri?c.ESCAPE:s.ESCAPE,q)}function se(e,t){return e&&e.toString().replace(t&&t.iri?c.PCT_ENCODED:s.PCT_ENCODED,z)}var ce={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},ue={scheme:"https",domainHost:ce.domainHost,parse:ce.parse,serialize:ce.serialize};function le(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var de={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=le(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(le(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=u(r,2),i=n[0],f=n[1];e.path=i&&"/"!==i?i:void 0,e.query=f,e.resourceName=void 0}return e.fragment=void 0,e}},he={scheme:"wss",domainHost:de.domainHost,parse:de.parse,serialize:de.serialize},pe={},be="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",ye="[0-9A-Fa-f]",me=r(r("%[EFef]"+ye+"%"+ye+ye+"%"+ye+ye)+"|"+r("%[89A-Fa-f]"+ye+"%"+ye+ye)+"|"+r("%"+ye+ye)),ge="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ve=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),_e="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",we=new RegExp(be,"g"),Ee=new RegExp(me,"g"),Ae=new RegExp(t("[^]",ge,"[\\.]",'[\\"]',ve),"g"),Se=new RegExp(t("[^]",be,_e),"g"),Te=Se;function xe(e){var t=z(e);return t.match(we)?t:e}var Pe={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var i=!1,f={},o=r.query.split("&"),a=0,s=o.length;a<s;++a){var c=o[a].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),l=0,d=u.length;l<d;++l)n.push(u[l]);break;case"subject":r.subject=se(c[1],t);break;case"body":r.body=se(c[1],t);break;default:i=!0,f[se(c[0],t)]=se(c[1],t)}}i&&(r.headers=f)}r.query=void 0;for(var h=0,p=n.length;h<p;++h){var b=n[h].split("@");if(b[0]=se(b[0]),t.unicodeSupport)b[1]=se(b[1],t).toLowerCase();else try{b[1]=L.toASCII(se(b[1],t).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}n[h]=b.join("@")}return r},serialize:function(e,t){var r=e,n=f(e.to);if(n){for(var o=0,a=n.length;o<a;++o){var s=String(n[o]),c=s.lastIndexOf("@"),u=s.slice(0,c).replace(Ee,xe).replace(Ee,i).replace(Ae,q),l=s.slice(c+1);try{l=t.iri?L.toUnicode(l):L.toASCII(se(l,t).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}n[o]=u+"@"+l}r.path=n.join(",")}var d=e.headers=e.headers||{};e.subject&&(d.subject=e.subject),e.body&&(d.body=e.body);var h=[];for(var p in d)d[p]!==pe[p]&&h.push(p.replace(Ee,xe).replace(Ee,i).replace(Se,q)+"="+d[p].replace(Ee,xe).replace(Ee,i).replace(Te,q));return h.length&&(r.query=h.join("&")),r}},Re=/^([^\:]+)\:(.*)/,ke={scheme:"urn",parse:function(e,t){var r=e.path&&e.path.match(Re),n=e;if(r){var i=t.scheme||n.scheme||"urn",f=r[1].toLowerCase(),o=r[2],a=i+":"+(t.nid||f),s=U[a];n.nid=f,n.nss=o,n.path=void 0,s&&(n=s.parse(n,t))}else n.error=n.error||"URN can not be parsed.";return n},serialize:function(e,t){var r=t.scheme||e.scheme||"urn",n=e.nid,i=r+":"+(t.nid||n),f=U[i];f&&(e=f.serialize(e,t));var o=e,a=e.nss;return o.path=(n||t.nid)+":"+a,o}},Ce=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Oe={scheme:"urn:uuid",parse:function(e,t){var r=e;return r.uuid=r.nss,r.nss=void 0,t.tolerant||r.uuid&&r.uuid.match(Ce)||(r.error=r.error||"UUID is not valid."),r},serialize:function(e,t){var r=e;return r.nss=(e.uuid||"").toLowerCase(),r}};U[ce.scheme]=ce,U[ue.scheme]=ue,U[de.scheme]=de,U[he.scheme]=he,U[Pe.scheme]=Pe,U[ke.scheme]=ke,U[Oe.scheme]=Oe,e.SCHEMES=U,e.pctEncChar=q,e.pctDecChars=z,e.parse=Y,e.removeDotSegments=te,e.serialize=re,e.resolveComponents=ne,e.resolve=ie,e.normalize=fe,e.equal=oe,e.escapeComponent=ae,e.unescapeComponent=se,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,r){"use strict";e.exports=function(e){for(var t,r=0,n=e.length,i=0;i<n;)r++,(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<n&&56320==(64512&(t=e.charCodeAt(i)))&&i++;return r}},function(e,t,r){"use strict";var n=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),i(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function i(e,t,r,f,o,a,s,c,u,l){if(f&&"object"==typeof f&&!Array.isArray(f)){for(var d in t(f,o,a,s,c,u,l),f){var h=f[d];if(Array.isArray(h)){if(d in n.arrayKeywords)for(var p=0;p<h.length;p++)i(e,t,r,h[p],o+"/"+d+"/"+p,a,o,d,f,p)}else if(d in n.propsKeywords){if(h&&"object"==typeof h)for(var b in h)i(e,t,r,h[b],o+"/"+d+"/"+b.replace(/~/g,"~0").replace(/\//g,"~1"),a,o,d,f,b)}else(d in n.keywords||e.allKeys&&!(d in n.skipKeywords))&&i(e,t,r,h,o+"/"+d,a,o,d,f)}r(f,o,a,s,c,u,l)}}n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},function(e,t,r){"use strict";var n=e.exports=function(){this._cache={}};n.prototype.put=function(e,t){this._cache[e]=t},n.prototype.get=function(e){return this._cache[e]},n.prototype.del=function(e){delete this._cache[e]},n.prototype.clear=function(){this._cache={}}},function(e,t,r){"use strict";var n=r(62),i=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,f=[0,31,28,31,30,31,30,31,31,30,31,30,31],o=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,a=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,s=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,l=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,h=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function b(e){return e="full"==e?"full":"fast",n.copy(b[e])}function y(e){var t=e.match(i);if(!t)return!1;var r=+t[1],n=+t[2],o=+t[3];return n>=1&&n<=12&&o>=1&&o<=(2==n&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(r)?29:f[n])}function m(e,t){var r=e.match(o);if(!r)return!1;var n=r[1],i=r[2],f=r[3],a=r[5];return(n<=23&&i<=59&&f<=59||23==n&&59==i&&60==f)&&(!t||a)}e.exports=b,b.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:l,"json-pointer":d,"json-pointer-uri-fragment":h,"relative-json-pointer":p},b.full={date:y,time:m,"date-time":function(e){var t=e.split(g);return 2==t.length&&y(t[0])&&m(t[1],!0)},uri:function(e){return v.test(e)&&s.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:l,"json-pointer":d,"json-pointer-uri-fragment":h,"relative-json-pointer":p};var g=/t|\s/i;var v=/\/|:/;var _=/[^\\]\\Z/;function w(e){if(_.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},function(e,t,r){"use strict";var n=r(736),i=r(62).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],t=["type","$comment"];return e.all=i(t),e.types=i(["number","integer","string","array","object","boolean","null"]),e.forEach((function(r){r.rules=r.rules.map((function(r){var i;if("object"==typeof r){var f=Object.keys(r)[0];i=r[f],r=f,i.forEach((function(r){t.push(r),e.all[r]=!0}))}return t.push(r),e.all[r]={keyword:r,code:n[r],implements:i}})),e.all.$comment={keyword:"$comment",code:n.$comment},r.type&&(e.types[r.type]=r)})),e.keywords=i(t.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},function(e,t,r){"use strict";e.exports={$ref:r(737),allOf:r(738),anyOf:r(739),$comment:r(740),const:r(741),contains:r(742),dependencies:r(743),enum:r(744),format:r(745),if:r(746),items:r(747),maximum:r(270),minimum:r(270),maxItems:r(271),minItems:r(271),maxLength:r(272),minLength:r(272),maxProperties:r(273),minProperties:r(273),multipleOf:r(748),not:r(749),oneOf:r(750),pattern:r(751),properties:r(752),propertyNames:r(753),required:r(754),uniqueItems:r(755),validate:r(269)}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i,f=" ",o=e.level,a=e.dataLevel,s=e.schema[t],c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(a||""),d="valid"+o;if("#"==s||"#/"==s)e.isRoot?(n=e.async,i="validate"):(n=!0===e.root.schema.$async,i="root.refVal[0]");else{var h=e.resolveRef(e.baseId,s,e.isRoot);if(void 0===h){var p=e.MissingRefError.message(e.baseId,s);if("fail"==e.opts.missingRefs){e.logger.error(p),(g=g||[]).push(f),f="",!1!==e.createErrors?(f+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(s)+"' } ",!1!==e.opts.messages&&(f+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(s)+"' "),e.opts.verbose&&(f+=" , schema: "+e.util.toQuotedString(s)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),f+=" } "):f+=" {} ";var b=f;f=g.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+b+"]); ":f+=" validate.errors = ["+b+"]; return false; ":f+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(f+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,s,p);e.logger.warn(p),u&&(f+=" if (true) { ")}}else if(h.inline){var y=e.util.copy(e);y.level++;var m="valid"+y.level;y.schema=h.schema,y.schemaPath="",y.errSchemaPath=s,f+=" "+e.validate(y).replace(/validate\.schema/g,h.code)+" ",u&&(f+=" if ("+m+") { ")}else n=!0===h.$async||e.async&&!1!==h.$async,i=h.code}if(i){var g;(g=g||[]).push(f),f="",e.opts.passContext?f+=" "+i+".call(this, ":f+=" "+i+"( ",f+=" "+l+", (dataPath || '')",'""'!=e.errorPath&&(f+=" + "+e.errorPath);var v=f+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";if(f=g.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(f+=" var "+d+"; "),f+=" try { await "+v+"; ",u&&(f+=" "+d+" = true; "),f+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(f+=" "+d+" = false; "),f+=" } ",u&&(f+=" if ("+d+") { ")}else f+=" if (!"+v+") { if (vErrors === null) vErrors = "+i+".errors; else vErrors = vErrors.concat("+i+".errors); errors = vErrors.length; } ",u&&(f+=" else { ")}return f}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.schema[t],f=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,s=e.util.copy(e),c="";s.level++;var u="valid"+s.level,l=s.baseId,d=!0,h=i;if(h)for(var p,b=-1,y=h.length-1;b<y;)p=h[b+=1],(e.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:e.util.schemaHasRules(p,e.RULES.all))&&(d=!1,s.schema=p,s.schemaPath=f+"["+b+"]",s.errSchemaPath=o+"/"+b,n+=" "+e.validate(s)+" ",s.baseId=l,a&&(n+=" if ("+u+") { ",c+="}"));return a&&(n+=d?" if (true) { ":" "+c.slice(0,-1)+" "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level;if(o.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&Object.keys(t).length>0:e.util.schemaHasRules(t,e.RULES.all)}))){var y=h.baseId;n+=" var "+d+" = errors; var "+l+" = false; ";var m=e.compositeRule;e.compositeRule=h.compositeRule=!0;var g=o;if(g)for(var v,_=-1,w=g.length-1;_<w;)v=g[_+=1],h.schema=v,h.schemaPath=a+"["+_+"]",h.errSchemaPath=s+"/"+_,n+=" "+e.validate(h)+" ",h.baseId=y,n+=" "+l+" = "+l+" || "+b+"; if (!"+l+") { ",p+="}";e.compositeRule=h.compositeRule=m,n+=" "+p+" if (!"+l+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else c&&(n+=" if (true) { ");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.schema[t],f=e.errSchemaPath+"/"+t,o=(e.opts.allErrors,e.util.toQuotedString(i));return!0===e.opts.$comment?n+=" console.log("+o+");":"function"==typeof e.opts.$comment&&(n+=" self._opts.$comment("+o+", "+e.util.toQuotedString(f)+", validate.root.schema);"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d=e.opts.$data&&o&&o.$data;d&&(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; "),d||(n+=" var schema"+i+" = validate.schema"+a+";"),n+="var "+l+" = equal("+u+", schema"+i+"); if (!"+l+") { ";var h=h||[];h.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { allowedValue: schema"+i+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to constant' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var p=n;return n=h.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+p+"]); ":n+=" validate.errors = ["+p+"]; return false; ":n+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e);h.level++;var p="valid"+h.level,b="i"+i,y=h.dataLevel=e.dataLevel+1,m="data"+y,g=e.baseId,v=e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all);if(n+="var "+d+" = errors;var "+l+";",v){var _=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=o,h.schemaPath=a,h.errSchemaPath=s,n+=" var "+p+" = false; for (var "+b+" = 0; "+b+" < "+u+".length; "+b+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers,!0);var w=u+"["+b+"]";h.dataPathArr[y]=b;var E=e.validate(h);h.baseId=g,e.util.varOccurences(E,m)<2?n+=" "+e.util.varReplace(E,m,w)+" ":n+=" var "+m+" = "+w+"; "+E+" ",n+=" if ("+p+") break; } ",e.compositeRule=h.compositeRule=_,n+=" if (!"+p+") {"}else n+=" if ("+u+".length == 0) {";var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should contain a valid item' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var S=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",v&&(n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e),h="";d.level++;var p="valid"+d.level,b={},y={},m=e.opts.ownProperties;for(w in o)if("__proto__"!=w){var g=o[w],v=Array.isArray(g)?y:b;v[w]=g}n+="var "+l+" = errors;";var _=e.errorPath;for(var w in n+="var missing"+i+";",y)if((v=y[w]).length){if(n+=" if ( "+u+e.util.getProperty(w)+" !== undefined ",m&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),c){n+=" && ( ";var E=v;if(E)for(var A=-1,S=E.length-1;A<S;){C=E[A+=1],A&&(n+=" || "),n+=" ( ( "+(I=u+(N=e.util.getProperty(C)))+" === undefined ",m&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(C)+"') "),n+=") && (missing"+i+" = "+e.util.toQuotedString(e.opts.jsonPointers?C:N)+") ) "}n+=")) { ";var T="missing"+i,x="' + "+T+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(_,T,!0):_+" + "+T);var P=P||[];P.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+v.length+", deps: '"+e.util.escapeQuotes(1==v.length?v[0]:v.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==v.length?n+="property "+e.util.escapeQuotes(v[0]):n+="properties "+e.util.escapeQuotes(v.join(", ")),n+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var R=n;n=P.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+R+"]); ":n+=" validate.errors = ["+R+"]; return false; ":n+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{n+=" ) { ";var k=v;if(k)for(var C,O=-1,M=k.length-1;O<M;){C=k[O+=1];var N=e.util.getProperty(C),I=(x=e.util.escapeQuotes(C),u+N);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(_,C,e.opts.jsonPointers)),n+=" if ( "+I+" === undefined ",m&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(C)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+v.length+", deps: '"+e.util.escapeQuotes(1==v.length?v[0]:v.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==v.length?n+="property "+e.util.escapeQuotes(v[0]):n+="properties "+e.util.escapeQuotes(v.join(", ")),n+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}n+=" } ",c&&(h+="}",n+=" else { ")}e.errorPath=_;var D=d.baseId;for(var w in b){g=b[w];(e.opts.strictKeywords?"object"==typeof g&&Object.keys(g).length>0:e.util.schemaHasRules(g,e.RULES.all))&&(n+=" "+p+" = true; if ( "+u+e.util.getProperty(w)+" !== undefined ",m&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),n+=") { ",d.schema=g,d.schemaPath=a+e.util.getProperty(w),d.errSchemaPath=s+"/"+e.util.escapeFragment(w),n+=" "+e.validate(d)+" ",d.baseId=D,n+=" } ",c&&(n+=" if ("+p+") { ",h+="}"))}return c&&(n+=" "+h+" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d=e.opts.$data&&o&&o.$data;d&&(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; ");var h="i"+i,p="schema"+i;d||(n+=" var "+p+" = validate.schema"+a+";"),n+="var "+l+";",d&&(n+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),n+=l+" = false;for (var "+h+"=0; "+h+"<"+p+".length; "+h+"++) if (equal("+u+", "+p+"["+h+"])) { "+l+" = true; break; }",d&&(n+=" } "),n+=" if (!"+l+") { ";var b=b||[];b.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { allowedValues: schema"+i+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var y=n;return n=b.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+y+"]); ":n+=" validate.errors = ["+y+"]; return false; ":n+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||"");if(!1===e.opts.format)return c&&(n+=" if (true) { "),n;var l,d=e.opts.$data&&o&&o.$data;d?(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; ",l="schema"+i):l=o;var h=e.opts.unknownFormats,p=Array.isArray(h);if(d){n+=" var "+(b="format"+i)+" = formats["+l+"]; var "+(y="isObject"+i)+" = typeof "+b+" == 'object' && !("+b+" instanceof RegExp) && "+b+".validate; var "+(m="formatType"+i)+" = "+y+" && "+b+".type || 'string'; if ("+y+") { ",e.async&&(n+=" var async"+i+" = "+b+".async; "),n+=" "+b+" = "+b+".validate; } if ( ",d&&(n+=" ("+l+" !== undefined && typeof "+l+" != 'string') || "),n+=" (","ignore"!=h&&(n+=" ("+l+" && !"+b+" ",p&&(n+=" && self._opts.unknownFormats.indexOf("+l+") == -1 "),n+=") || "),n+=" ("+b+" && "+m+" == '"+r+"' && !(typeof "+b+" == 'function' ? ",e.async?n+=" (async"+i+" ? await "+b+"("+u+") : "+b+"("+u+")) ":n+=" "+b+"("+u+") ",n+=" : "+b+".test("+u+"))))) {"}else{var b;if(!(b=e.formats[o])){if("ignore"==h)return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(n+=" if (true) { "),n;if(p&&h.indexOf(o)>=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var y,m=(y="object"==typeof b&&!(b instanceof RegExp)&&b.validate)&&b.type||"string";if(y){var g=!0===b.async;b=b.validate}if(m!=r)return c&&(n+=" if (true) { "),n;if(g){if(!e.async)throw new Error("async format in sync schema");n+=" if (!(await "+(v="formats"+e.util.getProperty(o)+".validate")+"("+u+"))) { "}else{n+=" if (! ";var v="formats"+e.util.getProperty(o);y&&(v+=".validate"),n+="function"==typeof b?" "+v+"("+u+") ":" "+v+".test("+u+") ",n+=") { "}}var _=_||[];_.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { format: ",n+=d?""+l:""+e.util.toQuotedString(o),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=d?"' + "+l+" + '":""+e.util.escapeQuotes(o),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var w=n;return n=_.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+w+"]); ":n+=" validate.errors = ["+w+"]; return false; ":n+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e);h.level++;var p="valid"+h.level,b=e.schema.then,y=e.schema.else,m=void 0!==b&&(e.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:e.util.schemaHasRules(b,e.RULES.all)),g=void 0!==y&&(e.opts.strictKeywords?"object"==typeof y&&Object.keys(y).length>0:e.util.schemaHasRules(y,e.RULES.all)),v=h.baseId;if(m||g){var _;h.createErrors=!1,h.schema=o,h.schemaPath=a,h.errSchemaPath=s,n+=" var "+d+" = errors; var "+l+" = true; ";var w=e.compositeRule;e.compositeRule=h.compositeRule=!0,n+=" "+e.validate(h)+" ",h.baseId=v,h.createErrors=!0,n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=w,m?(n+=" if ("+p+") { ",h.schema=e.schema.then,h.schemaPath=e.schemaPath+".then",h.errSchemaPath=e.errSchemaPath+"/then",n+=" "+e.validate(h)+" ",h.baseId=v,n+=" "+l+" = "+p+"; ",m&&g?n+=" var "+(_="ifClause"+i)+" = 'then'; ":_="'then'",n+=" } ",g&&(n+=" else { ")):n+=" if (!"+p+") { ",g&&(h.schema=e.schema.else,h.schemaPath=e.schemaPath+".else",h.errSchemaPath=e.errSchemaPath+"/else",n+=" "+e.validate(h)+" ",h.baseId=v,n+=" "+l+" = "+p+"; ",m&&g?n+=" var "+(_="ifClause"+i)+" = 'else'; ":_="'else'",n+=" } "),n+=" if (!"+l+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { failingKeyword: "+_+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match \"' + "+_+" + '\" schema' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",c&&(n+=" else { ")}else c&&(n+=" if (true) { ");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,y="i"+i,m=h.dataLevel=e.dataLevel+1,g="data"+m,v=e.baseId;if(n+="var "+d+" = errors;var "+l+";",Array.isArray(o)){var _=e.schema.additionalItems;if(!1===_){n+=" "+l+" = "+u+".length <= "+o.length+"; ";var w=s;s=e.errSchemaPath+"/additionalItems",n+=" if (!"+l+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var A=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+A+"]); ":n+=" validate.errors = ["+A+"]; return false; ":n+=" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",s=w,c&&(p+="}",n+=" else { ")}var S=o;if(S)for(var T,x=-1,P=S.length-1;x<P;)if(T=S[x+=1],e.opts.strictKeywords?"object"==typeof T&&Object.keys(T).length>0:e.util.schemaHasRules(T,e.RULES.all)){n+=" "+b+" = true; if ("+u+".length > "+x+") { ";var R=u+"["+x+"]";h.schema=T,h.schemaPath=a+"["+x+"]",h.errSchemaPath=s+"/"+x,h.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),h.dataPathArr[m]=x;var k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,R)+" ":n+=" var "+g+" = "+R+"; "+k+" ",n+=" } ",c&&(n+=" if ("+b+") { ",p+="}")}if("object"==typeof _&&(e.opts.strictKeywords?"object"==typeof _&&Object.keys(_).length>0:e.util.schemaHasRules(_,e.RULES.all))){h.schema=_,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+b+" = true; if ("+u+".length > "+o.length+") { for (var "+y+" = "+o.length+"; "+y+" < "+u+".length; "+y+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);R=u+"["+y+"]";h.dataPathArr[m]=y;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,R)+" ":n+=" var "+g+" = "+R+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" } } ",c&&(n+=" if ("+b+") { ",p+="}")}}else if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=a,h.errSchemaPath=s,n+=" for (var "+y+" = 0; "+y+" < "+u+".length; "+y+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);R=u+"["+y+"]";h.dataPathArr[m]=y;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,R)+" ":n+=" var "+g+" = "+R+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i=" ",f=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(o||""),d=e.opts.$data&&a&&a.$data;if(d?(i+=" var schema"+f+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+f):n=a,!d&&"number"!=typeof a)throw new Error(t+" must be number");i+="var division"+f+";if (",d&&(i+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),i+=" (division"+f+" = "+l+" / "+n+", ",e.opts.multipleOfPrecision?i+=" Math.abs(Math.round(division"+f+") - division"+f+") > 1e-"+e.opts.multipleOfPrecision+" ":i+=" division"+f+" !== parseInt(division"+f+") ",i+=" ) ",d&&(i+=" ) "),i+=" ) { ";var h=h||[];h.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(i+=" , message: 'should be multiple of ",i+=d?"' + "+n:n+"'"),e.opts.verbose&&(i+=" , schema: ",i+=d?"validate.schema"+s:""+a,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var p=i;return i=h.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+p+"]); ":i+=" validate.errors = ["+p+"]; return false; ":i+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",u&&(i+=" else { "),i}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e);d.level++;var h="valid"+d.level;if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=a,d.errSchemaPath=s,n+=" var "+l+" = errors; ";var p,b=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=b,n+=" if ("+h+") { ";var y=y||[];y.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var m=n;n=y.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d="errs__"+i,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,y=h.baseId,m="prevValid"+i,g="passingSchemas"+i;n+="var "+d+" = errors , "+m+" = false , "+l+" = false , "+g+" = null; ";var v=e.compositeRule;e.compositeRule=h.compositeRule=!0;var _=o;if(_)for(var w,E=-1,A=_.length-1;E<A;)w=_[E+=1],(e.opts.strictKeywords?"object"==typeof w&&Object.keys(w).length>0:e.util.schemaHasRules(w,e.RULES.all))?(h.schema=w,h.schemaPath=a+"["+E+"]",h.errSchemaPath=s+"/"+E,n+=" "+e.validate(h)+" ",h.baseId=y):n+=" var "+b+" = true; ",E&&(n+=" if ("+b+" && "+m+") { "+l+" = false; "+g+" = ["+g+", "+E+"]; } else { ",p+="}"),n+=" if ("+b+") { "+l+" = "+m+" = true; "+g+" = "+E+"; }";return e.compositeRule=h.compositeRule=v,n+=p+"if (!"+l+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i=" ",f=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(o||""),d=e.opts.$data&&a&&a.$data;d?(i+=" var schema"+f+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+f):n=a,i+="if ( ",d&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'string') || "),i+=" !"+(d?"(new RegExp("+n+"))":e.usePattern(a))+".test("+l+") ) { ";var h=h||[];h.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",i+=d?""+n:""+e.util.toQuotedString(a),i+=" } ",!1!==e.opts.messages&&(i+=" , message: 'should match pattern \"",i+=d?"' + "+n+" + '":""+e.util.escapeQuotes(a),i+="\"' "),e.opts.verbose&&(i+=" , schema: ",i+=d?"validate.schema"+s:""+e.util.toQuotedString(a),i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var p=i;return i=h.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+p+"]); ":i+=" validate.errors = ["+p+"]; return false; ":i+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",u&&(i+=" else { "),i}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e),h="";d.level++;var p="valid"+d.level,b="key"+i,y="idx"+i,m=d.dataLevel=e.dataLevel+1,g="data"+m,v="dataProperties"+i,_=Object.keys(o||{}).filter(N),w=e.schema.patternProperties||{},E=Object.keys(w).filter(N),A=e.schema.additionalProperties,S=_.length||E.length,T=!1===A,x="object"==typeof A&&Object.keys(A).length,P=e.opts.removeAdditional,R=T||x||P,k=e.opts.ownProperties,C=e.baseId,O=e.schema.required;if(O&&(!e.opts.$data||!O.$data)&&O.length<e.opts.loopRequired)var M=e.util.toHash(O);function N(e){return"__proto__"!==e}if(n+="var "+l+" = errors;var "+p+" = true;",k&&(n+=" var "+v+" = undefined;"),R){if(n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+v+".length; "+y+"++) { var "+b+" = "+v+"["+y+"]; ":" for (var "+b+" in "+u+") { ",S){if(n+=" var isAdditional"+i+" = !(false ",_.length)if(_.length>8)n+=" || validate.schema"+a+".hasOwnProperty("+b+") ";else{var I=_;if(I)for(var D=-1,B=I.length-1;D<B;)Y=I[D+=1],n+=" || "+b+" == "+e.util.toQuotedString(Y)+" "}if(E.length){var F=E;if(F)for(var j=-1,L=F.length-1;j<L;)fe=F[j+=1],n+=" || "+e.usePattern(fe)+".test("+b+") "}n+=" ); if (isAdditional"+i+") { "}if("all"==P)n+=" delete "+u+"["+b+"]; ";else{var U=e.errorPath,q="' + "+b+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers)),T)if(P)n+=" delete "+u+"["+b+"]; ";else{n+=" "+p+" = false; ";var z=s;s=e.errSchemaPath+"/additionalProperties",(re=re||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { additionalProperty: '"+q+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is an invalid additional property":n+="should NOT have additional properties",n+="' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var H=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=z,c&&(n+=" break; ")}else if(x)if("failing"==P){n+=" var "+l+" = errors; ";var G=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=A,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);var V=u+"["+b+"]";d.dataPathArr[m]=b;var K=e.validate(d);d.baseId=C,e.util.varOccurences(K,g)<2?n+=" "+e.util.varReplace(K,g,V)+" ":n+=" var "+g+" = "+V+"; "+K+" ",n+=" if (!"+p+") { errors = "+l+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+b+"]; } ",e.compositeRule=d.compositeRule=G}else{d.schema=A,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);V=u+"["+b+"]";d.dataPathArr[m]=b;K=e.validate(d);d.baseId=C,e.util.varOccurences(K,g)<2?n+=" "+e.util.varReplace(K,g,V)+" ":n+=" var "+g+" = "+V+"; "+K+" ",c&&(n+=" if (!"+p+") break; ")}e.errorPath=U}S&&(n+=" } "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}var W=e.opts.useDefaults&&!e.compositeRule;if(_.length){var $=_;if($)for(var Y,J=-1,X=$.length-1;J<X;){var Z=o[Y=$[J+=1]];if(e.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0:e.util.schemaHasRules(Z,e.RULES.all)){var Q=e.util.getProperty(Y),ee=(V=u+Q,W&&void 0!==Z.default);d.schema=Z,d.schemaPath=a+Q,d.errSchemaPath=s+"/"+e.util.escapeFragment(Y),d.errorPath=e.util.getPath(e.errorPath,Y,e.opts.jsonPointers),d.dataPathArr[m]=e.util.toQuotedString(Y);K=e.validate(d);if(d.baseId=C,e.util.varOccurences(K,g)<2){K=e.util.varReplace(K,g,V);var te=V}else{te=g;n+=" var "+g+" = "+V+"; "}if(ee)n+=" "+K+" ";else{if(M&&M[Y]){n+=" if ( "+te+" === undefined ",k&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Y)+"') "),n+=") { "+p+" = false; ";U=e.errorPath,z=s;var re,ne=e.util.escapeQuotes(Y);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(U,Y,e.opts.jsonPointers)),s=e.errSchemaPath+"/required",(re=re||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+ne+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+ne+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";H=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=z,e.errorPath=U,n+=" } else { "}else c?(n+=" if ( "+te+" === undefined ",k&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Y)+"') "),n+=") { "+p+" = true; } else { "):(n+=" if ("+te+" !== undefined ",k&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Y)+"') "),n+=" ) { ");n+=" "+K+" } "}}c&&(n+=" if ("+p+") { ",h+="}")}}if(E.length){var ie=E;if(ie)for(var fe,oe=-1,ae=ie.length-1;oe<ae;){Z=w[fe=ie[oe+=1]];if(e.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0:e.util.schemaHasRules(Z,e.RULES.all)){d.schema=Z,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(fe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(fe),n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+v+".length; "+y+"++) { var "+b+" = "+v+"["+y+"]; ":" for (var "+b+" in "+u+") { ",n+=" if ("+e.usePattern(fe)+".test("+b+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);V=u+"["+b+"]";d.dataPathArr[m]=b;K=e.validate(d);d.baseId=C,e.util.varOccurences(K,g)<2?n+=" "+e.util.varReplace(K,g,V)+" ":n+=" var "+g+" = "+V+"; "+K+" ",c&&(n+=" if (!"+p+") break; "),n+=" } ",c&&(n+=" else "+p+" = true; "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}}}return c&&(n+=" "+h+" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="errs__"+i,d=e.util.copy(e);d.level++;var h="valid"+d.level;if(n+="var "+l+" = errors;",e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=a,d.errSchemaPath=s;var p="key"+i,b="idx"+i,y="i"+i,m="' + "+p+" + '",g="data"+(d.dataLevel=e.dataLevel+1),v="dataProperties"+i,_=e.opts.ownProperties,w=e.baseId;_&&(n+=" var "+v+" = undefined; "),n+=_?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+b+"=0; "+b+"<"+v+".length; "+b+"++) { var "+p+" = "+v+"["+b+"]; ":" for (var "+p+" in "+u+") { ",n+=" var startErrs"+i+" = errors; ";var E=p,A=e.compositeRule;e.compositeRule=d.compositeRule=!0;var S=e.validate(d);d.baseId=w,e.util.varOccurences(S,g)<2?n+=" "+e.util.varReplace(S,g,E)+" ":n+=" var "+g+" = "+E+"; "+S+" ",e.compositeRule=d.compositeRule=A,n+=" if (!"+h+") { for (var "+y+"=startErrs"+i+"; "+y+"<errors; "+y+"++) { vErrors["+y+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(n+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { propertyName: '"+m+"' } ",!1!==e.opts.messages&&(n+=" , message: 'property name \\'"+m+"\\' is invalid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),c&&(n+=" break; "),n+=" } }"}return c&&(n+=" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",i=e.level,f=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(f||""),l="valid"+i,d=e.opts.$data&&o&&o.$data;d&&(n+=" var schema"+i+" = "+e.util.getData(o.$data,f,e.dataPathArr)+"; ");var h="schema"+i;if(!d)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],b=o;if(b)for(var y,m=-1,g=b.length-1;m<g;){y=b[m+=1];var v=e.schema.properties[y];v&&(e.opts.strictKeywords?"object"==typeof v&&Object.keys(v).length>0:e.util.schemaHasRules(v,e.RULES.all))||(p[p.length]=y)}}else p=o;if(d||p.length){var _=e.errorPath,w=d||p.length>=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+i+"; ",w){d||(n+=" var "+h+" = validate.schema"+a+"; ");var A="' + "+(k="schema"+i+"["+(x="i"+i)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(_,k,e.opts.jsonPointers)),n+=" var "+l+" = true; ",d&&(n+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),n+=" for (var "+x+" = 0; "+x+" < "+h+".length; "+x+"++) { "+l+" = "+u+"["+h+"["+x+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", "+h+"["+x+"]) "),n+="; if (!"+l+") break; } ",d&&(n+=" } "),n+=" if (!"+l+") { ",(R=R||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var S=n;n=R.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var T=p;if(T)for(var x=-1,P=T.length-1;x<P;){O=T[x+=1],x&&(n+=" || "),n+=" ( ( "+(D=u+(I=e.util.getProperty(O)))+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),n+=") && (missing"+i+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:I)+") ) "}n+=") { ";var R;A="' + "+(k="missing"+i)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(_,k,!0):_+" + "+k),(R=R||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";S=n;n=R.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else if(w){d||(n+=" var "+h+" = validate.schema"+a+"; ");var k;A="' + "+(k="schema"+i+"["+(x="i"+i)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(_,k,e.opts.jsonPointers)),d&&(n+=" if ("+h+" && !Array.isArray("+h+")) { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+h+" !== undefined) { "),n+=" for (var "+x+" = 0; "+x+" < "+h+".length; "+x+"++) { if ("+u+"["+h+"["+x+"]] === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+h+"["+x+"]) "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",d&&(n+=" } ")}else{var C=p;if(C)for(var O,M=-1,N=C.length-1;M<N;){O=C[M+=1];var I=e.util.getProperty(O),D=(A=e.util.escapeQuotes(O),u+I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(_,O,e.opts.jsonPointers)),n+=" if ( "+D+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+A+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+A+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=_}else c&&(n+=" if (true) {");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i=" ",f=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(o||""),d="valid"+f,h=e.opts.$data&&a&&a.$data;if(h?(i+=" var schema"+f+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+f):n=a,(a||h)&&!1!==e.opts.uniqueItems){h&&(i+=" var "+d+"; if ("+n+" === false || "+n+" === undefined) "+d+" = true; else if (typeof "+n+" != 'boolean') "+d+" = false; else { "),i+=" var i = "+l+".length , "+d+" = true , j; if (i > 1) { ";var p=e.schema.items&&e.schema.items.type,b=Array.isArray(p);if(!p||"object"==p||"array"==p||b&&(p.indexOf("object")>=0||p.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+l+"[i], "+l+"[j])) { "+d+" = false; break outer; } } } ";else{i+=" var itemIndices = {}, item; for (;i--;) { var item = "+l+"[i]; ";var y="checkDataType"+(b?"s":"");i+=" if ("+e.util[y](p,"item",e.opts.strictNumbers,!0)+") continue; ",b&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}i+=" } ",h&&(i+=" } "),i+=" if (!"+d+") { ";var m=m||[];m.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(i+=" , schema: ",i+=h?"validate.schema"+s:""+a,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var g=i;i=m.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+g+"]); ":i+=" validate.errors = ["+g+"]; return false; ":i+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",u&&(i+=" else { ")}else u&&(i+=" if (true) { ");return i}},function(e,t,r){"use strict";var n=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var r=0;r<t.length;r++){e=JSON.parse(JSON.stringify(e));var i,f=t[r].split("/"),o=e;for(i=1;i<f.length;i++)o=o[f[i]];for(i=0;i<n.length;i++){var a=n[i],s=o[a];s&&(o[a]={anyOf:[s,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return e}},function(e,t,r){"use strict";var n=r(134).MissingRef;e.exports=function e(t,r,i){var f=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof r&&(i=r,r=void 0);var o=a(t).then((function(){var e=f._addSchema(t,void 0,r);return e.validate||s(e)}));i&&o.then((function(e){i(null,e)}),i);return o;function a(t){var r=t.$schema;return r&&!f.getSchema(r)?e.call(f,{$ref:r},!0):Promise.resolve()}function s(e){try{return f._compile(e)}catch(t){if(t instanceof n)return function(t){var n=t.missingSchema;if(c(n))throw new Error("Schema "+n+" is loaded but "+t.missingRef+" cannot be resolved");var i=f._loadingSchemas[n];i||(i=f._loadingSchemas[n]=f._opts.loadSchema(n)).then(o,o);return i.then((function(e){if(!c(n))return a(e).then((function(){c(n)||f.addSchema(e,n,void 0,r)}))})).then((function(){return s(e)}));function o(){delete f._loadingSchemas[n]}function c(e){return f._refs[e]||f._schemas[e]}}(t);throw t}}}},function(e,t,r){"use strict";var n=/^[a-z_$][a-z0-9_$-]*$/i,i=r(759),f=r(760);e.exports={add:function(e,t){var r=this.RULES;if(r.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!n.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(t){this.validateKeyword(t,!0);var f=t.type;if(Array.isArray(f))for(var o=0;o<f.length;o++)s(e,f[o],t);else s(e,f,t);var a=t.metaSchema;a&&(t.$data&&this._opts.$data&&(a={anyOf:[a,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(a,!0))}function s(e,t,n){for(var f,o=0;o<r.length;o++){var a=r[o];if(a.type==t){f=a;break}}f||(f={type:t,rules:[]},r.push(f));var s={keyword:e,definition:n,custom:!0,code:i,implements:n.implements};f.rules.push(s),r.custom[e]=s}return r.keywords[e]=r.all[e]=!0,this},get:function(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1},remove:function(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var r=0;r<t.length;r++)for(var n=t[r].rules,i=0;i<n.length;i++)if(n[i].keyword==e){n.splice(i,1);break}return this},validate:function e(t,r){e.errors=null;var n=this._validateKeyword=this._validateKeyword||this.compile(f,!0);if(n(t))return!0;if(e.errors=n.errors,r)throw new Error("custom keyword definition is invalid: "+this.errorsText(n.errors));return!1}}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,i,f=" ",o=e.level,a=e.dataLevel,s=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,d="data"+(a||""),h="valid"+o,p="errs__"+o,b=e.opts.$data&&s&&s.$data;b?(f+=" var schema"+o+" = "+e.util.getData(s.$data,a,e.dataPathArr)+"; ",i="schema"+o):i=s;var y,m,g,v,_,w=this,E="definition"+o,A=w.definition,S="";if(b&&A.$data){_="keywordValidate"+o;var T=A.validateSchema;f+=" var "+E+" = RULES.custom['"+t+"'].definition; var "+_+" = "+E+".validate;"}else{if(!(v=e.useCustomRule(w,s,e.schema,e)))return;i="validate.schema"+c,_=v.code,y=A.compile,m=A.inline,g=A.macro}var x=_+".errors",P="i"+o,R="ruleErr"+o,k=A.async;if(k&&!e.async)throw new Error("async keyword in sync schema");if(m||g||(f+=x+" = null;"),f+="var "+p+" = errors;var "+h+";",b&&A.$data&&(S+="}",f+=" if ("+i+" === undefined) { "+h+" = true; } else { ",T&&(S+="}",f+=" "+h+" = "+E+".validateSchema("+i+"); if ("+h+") { ")),m)A.statements?f+=" "+v.validate+" ":f+=" "+h+" = "+v.validate+"; ";else if(g){var C=e.util.copy(e);S="";C.level++;var O="valid"+C.level;C.schema=v.validate,C.schemaPath="";var M=e.compositeRule;e.compositeRule=C.compositeRule=!0;var N=e.validate(C).replace(/validate\.schema/g,_);e.compositeRule=C.compositeRule=M,f+=" "+N}else{(F=F||[]).push(f),f="",f+=" "+_+".call( ",e.opts.passContext?f+="this":f+="self",y||!1===A.schema?f+=" , "+d+" ":f+=" , "+i+" , "+d+" , validate.schema"+e.schemaPath+" ",f+=" , (dataPath || '')",'""'!=e.errorPath&&(f+=" + "+e.errorPath);var I=a?"data"+(a-1||""):"parentData",D=a?e.dataPathArr[a]:"parentDataProperty",B=f+=" , "+I+" , "+D+" , rootData ) ";f=F.pop(),!1===A.errors?(f+=" "+h+" = ",k&&(f+="await "),f+=B+"; "):f+=k?" var "+(x="customErrors"+o)+" = null; try { "+h+" = await "+B+"; } catch (e) { "+h+" = false; if (e instanceof ValidationError) "+x+" = e.errors; else throw e; } ":" "+x+" = null; "+h+" = "+B+"; "}if(A.modifying&&(f+=" if ("+I+") "+d+" = "+I+"["+D+"];"),f+=""+S,A.valid)l&&(f+=" if (true) { ");else{var F;f+=" if ( ",void 0===A.valid?(f+=" !",f+=g?""+O:""+h):f+=" "+!A.valid+" ",f+=") { ",n=w.keyword,(F=F||[]).push(f),f="",(F=F||[]).push(f),f="",!1!==e.createErrors?(f+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(f+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(f+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var j=f;f=F.pop(),!e.compositeRule&&l?e.async?f+=" throw new ValidationError(["+j+"]); ":f+=" validate.errors = ["+j+"]; return false; ":f+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var L=f;f=F.pop(),m?A.errors?"full"!=A.errors&&(f+=" for (var "+P+"="+p+"; "+P+"<errors; "+P+"++) { var "+R+" = vErrors["+P+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(f+=" "+R+".schema = "+i+"; "+R+".data = "+d+"; "),f+=" } "):!1===A.errors?f+=" "+L+" ":(f+=" if ("+p+" == errors) { "+L+" } else { for (var "+P+"="+p+"; "+P+"<errors; "+P+"++) { var "+R+" = vErrors["+P+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(f+=" "+R+".schema = "+i+"; "+R+".data = "+d+"; "),f+=" } } "):g?(f+=" var err = ",!1!==e.createErrors?(f+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(f+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(f+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ",f+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(e.async?f+=" throw new ValidationError(vErrors); ":f+=" validate.errors = vErrors; return false; ")):!1===A.errors?f+=" "+L+" ":(f+=" if (Array.isArray("+x+")) { if (vErrors === null) vErrors = "+x+"; else vErrors = vErrors.concat("+x+"); errors = vErrors.length; for (var "+P+"="+p+"; "+P+"<errors; "+P+"++) { var "+R+" = vErrors["+P+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; "+R+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(f+=" "+R+".schema = "+i+"; "+R+".data = "+d+"; "),f+=" } } else { "+L+" } "),f+=" } ",l&&(f+=" else { ")}return f}},function(e,t,r){"use strict";var n=r(274);e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:n.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:n.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-06/schema#","$id":"http://json-schema.org/draft-06/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"examples":{"type":"array","items":{}},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":{},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":{}}')},function(e){e.exports=JSON.parse('{"$id":"http://json-schema.org/address","$schema":"http://json-schema.org/draft-06/schema#","description":"An Address following the convention of http://microformats.org/wiki/hcard","type":"object","properties":{"post-office-box":{"type":"string"},"extended-address":{"type":"string"},"street-address":{"type":"string"},"locality":{"type":"string"},"region":{"type":"string"},"postal-code":{"type":"string"},"country-name":{"type":"string"}},"dependencies":{"post-office-box":["street-address"],"extended-address":["street-address"]}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={rnf_invoice:{"0.0.1":r(765),"0.0.2":r(766),"0.0.3":r(767)}};t.default=n},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","description":"Request Network Format of an invoice","type":"object","additionalProperties":false,"required":["meta","invoiceNumber","creationDate","invoiceItems"],"properties":{"meta":{"description":"Meta information about the format","type":"object","additionalProperties":false,"required":["format","version"],"properties":{"format":{"const":"rnf_invoice"},"version":{"const":"0.0.1"}}},"creationDate":{"type":"string","format":"date-time"},"invoiceNumber":{"type":"string"},"purchaseOrderId":{"type":"string"},"note":{"type":"string"},"terms":{"type":"string"},"sellerInfo":{"description":"Seller information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"buyerInfo":{"description":"Buyer information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"invoiceItems":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","quantity","unitPrice","taxPercent","currency"],"properties":{"name":{"type":"string"},"reference":{"type":"string"},"quantity":{"type":"number","minimum":0},"unitPrice":{"type":"number","minimum":0},"discount":{"type":"number"},"taxPercent":{"type":"number"},"currency":{"type":"string","minLength":3,"maxLength":3},"deliveryDate":{"type":"string","format":"date-time"},"deliveryPeriod":{"type":"string"}}}},"paymentTerms":{"description":"Payment terms","type":"object","additionalProperties":false,"properties":{"dueDate":{"type":"string","format":"date-time"},"lateFeesPercent":{"type":"number"},"lateFeesFix":{"type":"number"},"miscellaneous":{"type":"object"}}},"miscellaneous":{"type":"object"}}}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","description":"Request Network Format of an invoice","type":"object","additionalProperties":false,"required":["meta","invoiceNumber","creationDate","invoiceItems"],"properties":{"meta":{"description":"Meta information about the format","type":"object","additionalProperties":false,"required":["format","version"],"properties":{"format":{"const":"rnf_invoice"},"version":{"const":"0.0.2"}}},"creationDate":{"type":"string","format":"date-time"},"invoiceNumber":{"type":"string"},"purchaseOrderId":{"type":"string"},"note":{"type":"string"},"terms":{"type":"string"},"sellerInfo":{"description":"Seller information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"buyerInfo":{"description":"Buyer information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"invoiceItems":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","quantity","unitPrice","taxPercent","currency"],"properties":{"name":{"type":"string"},"reference":{"type":"string"},"quantity":{"type":"number","minimum":0},"unitPrice":{"type":"string","pattern":"^\\\\d+$"},"discount":{"type":"string","pattern":"^\\\\d+$"},"taxPercent":{"type":"number"},"currency":{"type":"string","minLength":2,"maxLength":5},"deliveryDate":{"type":"string","format":"date-time"},"deliveryPeriod":{"type":"string"}}}},"paymentTerms":{"description":"Payment terms","type":"object","additionalProperties":false,"properties":{"dueDate":{"type":"string","format":"date-time"},"lateFeesPercent":{"type":"number"},"lateFeesFix":{"type":"string","pattern":"^\\\\d+$"},"miscellaneous":{"type":"object"}}},"miscellaneous":{"type":"object"}}}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","description":"Request Network Format of an invoice","type":"object","additionalProperties":false,"required":["meta","invoiceNumber","creationDate","invoiceItems"],"properties":{"meta":{"description":"Meta information about the format","type":"object","additionalProperties":false,"required":["format","version"],"properties":{"format":{"const":"rnf_invoice"},"version":{"const":"0.0.3"}}},"creationDate":{"type":"string","format":"date-time"},"invoiceNumber":{"type":"string"},"purchaseOrderId":{"type":"string"},"note":{"type":"string"},"terms":{"type":"string"},"sellerInfo":{"description":"Seller information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"buyerInfo":{"description":"Buyer information","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"firstName":{"type":"string"},"lastName":{"type":"string"},"businessName":{"type":"string"},"phone":{"type":"string"},"address":{"$ref":"http://json-schema.org/address"},"taxRegistration":{"type":"string"},"companyRegistration":{"type":"string"},"miscellaneous":{"type":"object"}}},"invoiceItems":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","quantity","unitPrice","tax","currency"],"properties":{"name":{"type":"string"},"reference":{"type":"string"},"quantity":{"type":"number","minimum":0},"unitPrice":{"type":"string","pattern":"^\\\\d+$"},"discount":{"type":"string","pattern":"^\\\\d+$"},"tax":{"description":"Tax information about the invoice","type":"object","additionalProperties":false,"required":["amount","type"],"properties":{"amount":{"type":"string"},"type":{"type":"string","enum":["percentage","fixed"]}},"if":{"properties":{"type":{"const":"percentage"}}},"then":{"properties":{"amount":{"pattern":"^\\\\d*\\\\.?\\\\d+$"}}},"else":{"properties":{"amount":{"pattern":"^\\\\d+$"}}}},"currency":{"type":"string","minLength":2,"maxLength":6},"deliveryDate":{"type":"string","format":"date-time"},"deliveryPeriod":{"type":"string"}}}},"paymentTerms":{"description":"Payment terms","type":"object","additionalProperties":false,"properties":{"dueDate":{"type":"string","format":"date-time"},"lateFeesPercent":{"type":"number"},"lateFeesFix":{"type":"string","pattern":"^\\\\d+$"},"miscellaneous":{"type":"object"}}},"miscellaneous":{"type":"object"}}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});(0,r(266).__exportStar)(r(769),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getInvoiceLineTotal=t.getInvoiceTotal=void 0;const n=r(6);t.getInvoiceTotal=e=>e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotal)(r))),n.BigNumber.from(0));t.getInvoiceLineTotal=e=>{const t=1e6,r=e.taxPercent?{type:"percentage",amount:String(e.taxPercent)}:e.tax||{type:"percentage",amount:"0"},i=r.amount&&"percentage"===r.type?Number(r.amount)+100:100,f=r.amount&&"fixed"===r.type?n.BigNumber.from(r.amount):n.BigNumber.from(0),o=e.discount?n.BigNumber.from(e.discount):n.BigNumber.from(0);return n.BigNumber.from(e.unitPrice).mul(Number(e.quantity*t).toFixed(0)).div(t).sub(o).mul(Number(i*t).toFixed(0)).div(t).div(100).add(f)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={requestClientVersionHeader:"X-Request-Network-Client-Version",httpRequestMaxRetry:3,httpRequestRetryDelay:100,getConfirmationMaxRetry:500,getConfirmationRetryDelay:3e3,getConfirmationDeferDelay:3e3}},function(e){e.exports=JSON.parse('{"name":"@requestnetwork/request-client.js","version":"0.39.1-next.1584+2c879a60","publishConfig":{"access":"public"},"description":"Client side library for Request Network.","keywords":["requestnetwork","request-client.js"],"repository":{"type":"git","url":"git+https://github.com/RequestNetwork/requestNetwork.git"},"homepage":"https://github.com/RequestNetwork/requestNetwork/tree/master/packages/request-client.js#readme","bugs":{"url":"https://github.com/RequestNetwork/requestNetwork/issues"},"license":"MIT","engines":{"node":">=8.0.0"},"main":"dist/index.js","types":"dist/index.d.ts","directories":{"lib":"src","test":"test"},"files":["dist"],"scripts":{"build":"run-s build:commonjs build:umd","build:commonjs":"tsc -b","build:umd":"webpack","clean":"shx rm -rf dist tsconfig.tsbuildinfo","docs":"shx rm -rf ./docs && compodoc -p tsconfig.json --output docs --disablePrivate --gaID UA-105153327-8","lint":"eslint \\"src/**/*.ts\\"","prepare":"yarn run build","test":"jest","test:watch":"yarn test --watch"},"dependencies":{"@requestnetwork/advanced-logic":"0.34.1-next.1584+2c879a60","@requestnetwork/currency":"0.8.1-next.1584+2c879a60","@requestnetwork/data-access":"0.26.1-next.1584+2c879a60","@requestnetwork/data-format":"0.9.1-next.1584+2c879a60","@requestnetwork/epk-signature":"0.5.35-next.1584+2c879a60","@requestnetwork/multi-format":"0.15.10-next.1584+2c879a60","@requestnetwork/payment-detection":"0.35.1-next.1584+2c879a60","@requestnetwork/request-logic":"0.26.10-next.1584+2c879a60","@requestnetwork/smart-contracts":"0.28.1-next.1584+2c879a60","@requestnetwork/transaction-manager":"0.26.10-next.1584+2c879a60","@requestnetwork/types":"0.35.1-next.1584+2c879a60","@requestnetwork/utils":"0.35.1-next.1584+2c879a60","axios":"0.21.1","ethers":"5.5.1","tslib":"2.3.1"},"devDependencies":{"@compodoc/compodoc":"1.1.11","@types/jest":"26.0.13","amd-loader":"0.0.8","axios-mock-adapter":"1.19.0","duplicate-package-checker-webpack-plugin":"3.0.0","jest":"26.4.2","npm-run-all":"4.1.5","nyc":"15.1.0","prettier":"2.2.1","shx":"0.3.2","source-map-support":"0.5.19","terser-webpack-plugin":"4.2.3","ts-jest":"26.3.0","ts-loader":"8.3.0","ts-node":"9.0.0","typescript":"4.4.4","webpack":"4.44.2","webpack-bundle-analyzer":"4.2.0","webpack-cli":"3.3.12"},"gitHead":"2c879a60c907e77accb4a99e0d1facaa46cd6001"}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59),i=r(276),f=r(36),o=r(4),a=r(13),s=r(49),c=r(6),u=r(17),l=r(275);class d extends l.default{constructor({httpConfig:e,nodeConnectionConfig:t,web3:r,ethereumProviderUrl:n}={httpConfig:{},nodeConnectionConfig:{}}){super({httpConfig:e,nodeConnectionConfig:t}),this.cache={},this.networkName="",n=n||"http://localhost:8545",this.provider=r?new c.ethers.providers.Web3Provider(r.currentProvider):new c.ethers.providers.JsonRpcProvider({url:n})}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){}))}persistTransaction(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.submitterContract){const e=yield this.provider.getNetwork();this.networkName=1===e.chainId?"mainnet":4===e.chainId?"rinkeby":"private",this.submitterContract=new c.ethers.Contract(f.requestHashSubmitterArtifact.getAddress(this.networkName),f.requestHashSubmitterArtifact.getContractAbi(),this.provider.getSigner())}const n=i.Block.pushTransaction(i.Block.createEmptyBlock(),e,t,r),{data:{ipfsHash:o,ipfsSize:a}}=yield s.default.post("/ipfsAdd",{data:n},this.axiosConfig),l=yield this.submitterContract.getFeesAmount(a),d=yield this.submitterContract.submitHash(o,c.ethers.utils.hexZeroPad(c.ethers.utils.hexlify(a),32),{value:l}),h=yield this.provider.getBlock(d.blockNumber),p={blockConfirmation:d.confirmations,blockNumber:d.blockNumber,blockTimestamp:h.timestamp,fee:l,networkName:this.networkName,smartContractAddress:d.to,transactionHash:d.hash};this.cache[t]||(this.cache[t]={}),this.cache[t][o]={block:n,storageMeta:p};const b=Object.assign(new u.EventEmitter,{meta:{storageMeta:p,topics:r||[],transactionStorageLocation:o},result:{}});return d.wait().then((e=>{const t={blockConfirmation:e.confirmations,blockNumber:e.blockNumber,blockTimestamp:h.timestamp,fee:l,networkName:this.networkName,smartContractAddress:e.to,transactionHash:e.hash};b.emit("confirmed",{meta:{storageMeta:t,topics:r||[],transactionStorageLocation:o},result:{}})})),b}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{data:r}=yield a.default.retry((()=>(0,n.__awaiter)(this,void 0,void 0,(function*(){return s.default.get("/getTransactionsByChannelId",Object.assign(this.axiosConfig,{params:{channelId:e,timestampBoundaries:t}}))}))),{maxRetries:this.httpConfig.httpRequestMaxRetry,retryDelay:this.httpConfig.httpRequestRetryDelay})(),i=this.getCachedTransactionsAndCleanCache(e,r.meta.transactionsStorageLocation,t);return{meta:{storageMeta:r.meta.storageMeta.concat(i.meta.storageMeta),transactionsStorageLocation:r.meta.transactionsStorageLocation.concat(i.meta.transactionsStorageLocation)},result:{transactions:r.result.transactions.concat(i.result.transactions)}}}))}getCachedTransactionsAndCleanCache(e,t,r){for(const r of t)this.cache[e][r]=null;return Object.keys(this.cache[e]||[]).reduce(((t,n)=>{const i=this.cache[e][n];return this.cache[e][n]&&(!r||(void 0===r.from||r.from<=(null==i?void 0:i.storageMeta.blockTimestamp))&&(void 0===r.to||r.to>=(null==i?void 0:i.storageMeta.blockTimestamp)))&&(t.meta.storageMeta.push(null==i?void 0:i.storageMeta),t.meta.transactionsStorageLocation.push(n),t.result.transactions.push({state:o.DataAccessTypes.TransactionState.PENDING,timestamp:null==i?void 0:i.storageMeta.blockTimestamp,transaction:null==i?void 0:i.block.transactions[0]})),t}),{meta:{storageMeta:[],transactionsStorageLocation:[]},result:{transactions:[]}})}}t.default=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41),i=r(28),f=r(4),o=r(13),a=r(277),s=r(17),c=r(278),u=r(774),l=r(777),d=r(279),h={meta:{storageMeta:{},transactionsStorageLocation:{}},result:{transactions:{}}};t.default=class{constructor(e,t){this.isInitialized=!1;const r={ignoredLocationIndex:new u.default,logger:new o.default.SimpleLogger,synchronizationIntervalTime:1e4,transactionIndex:new d.default},{ignoredLocationIndex:n,logger:i,synchronizationIntervalTime:f,transactionIndex:a}=Object.assign(Object.assign({},r),t);this.storage=e,this.lastSyncStorageTimestamp=0,this.synchronizationTimer=new l.default((()=>this.synchronizeNewDataIds()),f,i,5),this.transactionIndex=a,this.ignoredLocationIndex=n,this.logger=i}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.isInitialized)throw new Error("already initialized");yield this.transactionIndex.initialize(),yield this.storage.initialize();const e=yield this.transactionIndex.getLastTransactionTimestamp(),t=o.default.getCurrentTimestampInSecond(),r=yield this.storage.getData(e?{from:e,to:t}:void 0);this.lastSyncStorageTimestamp=r.lastTimestamp,yield this.pushLocationsWithTopics(r.entries),this.isInitialized=!0}))}persistTransaction(e,t,r=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const f=r.filter((e=>!i.default.hashFormat.isDeserializableString(e)));if(0!==f.length)throw new Error(`The following topics are not well formatted: ${JSON.stringify(f)}`);const o=c.default.pushTransaction(c.default.createEmptyBlock(),e,t,r),a=yield this.storage.append(JSON.stringify(o)),u=Object.assign(new s.EventEmitter,{meta:{storageMeta:a.meta,topics:r,transactionStorageLocation:a.id},result:{}});return a.on("confirmed",(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){yield this.transactionIndex.updateTimestamp(e.id,e.meta.timestamp);const t={meta:{storageMeta:e.meta,topics:r,transactionStorageLocation:e.id},result:{}};u.emit("confirmed",t)})))).on("error",(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){u.emit("error",e)})))),yield this.transactionIndex.addTransaction(a.id,o.header,a.meta.timestamp),u}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const r=yield this.transactionIndex.getStorageLocationList(e,t);return(yield this.getBlockAndMetaFromStorageLocation(r)).map((t=>{const r=c.default.getTransactionPositionFromChannelId(t.block,e);return this.getTransactionAndMetaFromPosition(r,t.block,t.location,t.meta)})).reduce(((e,t)=>({meta:{storageMeta:e.meta.storageMeta.concat(t.storageMeta),transactionsStorageLocation:e.meta.transactionsStorageLocation.concat(t.transactionsStorageLocation)},result:{transactions:e.result.transactions.concat(t.transactions)}})),{meta:{storageMeta:[],transactionsStorageLocation:[]},result:{transactions:[]}})}))}getChannelsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.checkInitialized(),!i.default.hashFormat.isDeserializableString(e))throw new Error(`The topic is not well formatted: ${e}`);const r=yield this.transactionIndex.getChannelIdsForTopic(e,t);return a.map(r,(e=>this.getTransactionsByChannelId(e).then((t=>({channelId:e,transactionsWithMeta:t}))))).reduce(((e,t)=>{const r=t.channelId;return e.meta.transactionsStorageLocation[r]=t.transactionsWithMeta.meta.transactionsStorageLocation,e.meta.storageMeta[r]=t.transactionsWithMeta.meta.storageMeta,e.result.transactions[r]=t.transactionsWithMeta.result.transactions,e}),o.default.deepCopy(h))}))}getChannelsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.checkInitialized(),e.some((e=>!i.default.hashFormat.isDeserializableString(e))))throw new Error("The topics are not well formatted");const r=yield this.transactionIndex.getChannelIdsForMultipleTopics(e,t);return a.map(r,(e=>this.getTransactionsByChannelId(e).then((t=>({channelId:e,transactionsWithMeta:t}))))).reduce(((e,t)=>{const r=t.channelId;return e.meta.transactionsStorageLocation[r]=t.transactionsWithMeta.meta.transactionsStorageLocation,e.meta.storageMeta[r]=t.transactionsWithMeta.meta.storageMeta,e.result.transactions[r]=t.transactionsWithMeta.result.transactions,e}),o.default.deepCopy(h))}))}synchronizeNewDataIds(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const e=o.default.getCurrentTimestampInSecond();let t=0;this.lastSyncStorageTimestamp>0&&(t=this.lastSyncStorageTimestamp+1);const r=yield this.storage.getData({from:t,to:e}),n=yield this.storage.getIgnoredData();yield this.pushLocationsWithTopics(r.entries.concat(n)),this.lastSyncStorageTimestamp=r.lastTimestamp}))}startAutoSynchronization(){this.checkInitialized(),this.synchronizationTimer.start()}stopAutoSynchronization(){this.synchronizationTimer.stop()}_getStatus(e=!1){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const t=yield this.transactionIndex.getLastTransactionTimestamp(),r=yield this.transactionIndex.getIndexedLocations(),n=yield this.ignoredLocationIndex.getIgnoredLocations(),i=this.synchronizationTimer.getConfig();return{filesIgnored:{count:Object.keys(n).length,list:e?n:void 0},filesRetrieved:{count:r.length,lastTimestamp:t,list:e?r:void 0},lastSynchronizationTimestamp:this.lastSyncStorageTimestamp,storage:yield this.storage._getStatus(e),synchronizationConfig:i}}))}pushLocationsWithTopics(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("data from storage do not follow the standard");let t=0,r=0;yield a.each(e,(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e.content||!e.id)throw Error("data from storage do not follow the standard");let n;const i=e.content;try{n=c.default.parseBlock(i),r++,yield this.transactionIndex.addTransaction(e.id,n.header,e.meta.timestamp)}catch(r){t++,yield this.ignoredLocationIndex.pushReasonByLocation(e.id,r.message),this.logger.debug(`Error: can't parse content of the dataId (${e.id}): ${r}`,["synchronization"])}})))),this.logger.info(`Synchronization: ${r} blocks synchronized, ${t} ignored from parsing error`,["synchronization"])}))}getBlockAndMetaFromStorageLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return Promise.all(e.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.storage.read(e);return{block:c.default.parseBlock(t.content),location:e,meta:t.meta}})))))}))}getTransactionAndMetaFromPosition(e,t,r,n){const i=o.default.unique(e).uniqueItems.map((e=>({state:n.state===f.StorageTypes.ContentState.CONFIRMED?f.DataAccessTypes.TransactionState.CONFIRMED:f.DataAccessTypes.TransactionState.PENDING,timestamp:n.timestamp,transaction:t.transactions[e]})));return{transactions:i,transactionsStorageLocation:Array(i.length).fill(r),storageMeta:Array(i.length).fill(n)}}checkInitialized(){if(!this.isInitialized)throw new Error("DataAccess must be initialized")}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41),i=r(93);t.default=class{constructor(e){this.reasonsByIgnoredLocation=new i({namespace:"reasonsByIgnoredLocation",store:e}),this.listIgnoredLocation=new i({namespace:"listIgnoredLocation",store:e})}pushReasonByLocation(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){(yield this.reasonsByIgnoredLocation.get(e))||(yield this.reasonsByIgnoredLocation.set(e,t),yield this.updateDataId(e))}))}removeReasonByLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){yield this.reasonsByIgnoredLocation.delete(e)}))}getReasonFromLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.reasonsByIgnoredLocation.get(e);return t||null}))}getIgnoredLocations(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const e=yield this.listIgnoredLocation.get("list");if(!e)return{};const t={};for(const r of Array.from(e))t[r]=yield this.reasonsByIgnoredLocation.get(r);return t}))}updateDataId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let t=yield this.listIgnoredLocation.get("list");t||(t=[]),t.push(e),yield this.listIgnoredLocation.set("list",t)}))}}},function(e,t,r){(function(e){t.stringify=function t(r){if(void 0===r)return r;if(r&&e.isBuffer(r))return JSON.stringify(":base64:"+r.toString("base64"));if(r&&r.toJSON&&(r=r.toJSON()),r&&"object"==typeof r){var n="",i=Array.isArray(r);n=i?"[":"{";var f=!0;for(var o in r){var a="function"==typeof r[o]||!i&&void 0===r[o];Object.hasOwnProperty.call(r,o)&&!a&&(f||(n+=","),f=!1,i?null==r[o]?n+="null":n+=t(r[o]):void 0!==r[o]&&(n+=t(o)+":"+t(r[o])))}return n+=i?"]":"}"}return"string"==typeof r?JSON.stringify(/^:/.test(r)?":"+r:r):void 0===r?"null":JSON.stringify(r)},t.parse=function(t){return JSON.parse(t,(function(t,r){return"string"==typeof r?/^:base64:/.test(r)?e.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r}))}}).call(this,r(7).Buffer)},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=776},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41);t.default=class{constructor(e,t,r,n=1){this.intervalFunctionSuccessiveFailureCount=0,this.timeoutObject=null,this.intervalFunction=e,this.intervalTime=t,this.logger=r,this.successiveFailureThreshold=n}start(){if(this.timeoutObject)throw Error("IntervalTimer already started");const e=()=>(0,n.__awaiter)(this,void 0,void 0,(function*(){try{yield this.intervalFunction(),this.intervalFunctionSuccessiveFailureCount=0}catch(e){this.logger.warn(`${this.intervalFunction.name||"intervalFunction"} error: ${e}`),this.intervalFunctionSuccessiveFailureCount++,this.intervalFunctionSuccessiveFailureCount>=this.successiveFailureThreshold&&this.logger.error(`${this.intervalFunction.name||"intervalFunction"} failed ${this.intervalFunctionSuccessiveFailureCount} times in a row, last error: ${e}`)}this.timeoutObject=setTimeout(e,this.intervalTime)}));this.timeoutObject=setTimeout(e,this.intervalTime)}stop(){if(!this.timeoutObject)throw Error("Can't stop IntervalTimer if it has not been started");clearTimeout(this.timeoutObject),this.timeoutObject=null}getConfig(){return{intervalTime:this.intervalTime,successiveFailureThreshold:this.successiveFailureThreshold}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41),i=r(277),f=r(93),o=r(280),a=r(281);t.default=class{constructor(e){this.timestampByLocation=new a.default(e),this.locationByTopic=new o.default(e),this.indexedLocation=new f({namespace:"indexedLocation",store:e})}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){}))}getLastTransactionTimestamp(){return this.timestampByLocation.getLastTransactionTimestamp()}addTransaction(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");yield this.locationByTopic.pushStorageLocationIndexedWithBlockTopics(e,t),yield this.timestampByLocation.pushTimestampByLocation(e,r),yield this.updateIndexedLocation(e)}))}removeTransaction(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");yield this.timestampByLocation.removeIndexedDataId(e)}))}updateTimestamp(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.timestampByLocation)throw new Error("TransactionIndex must be initialized");yield this.timestampByLocation.updateTimestampByLocation(e,t)}))}getStorageLocationList(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");let r=yield this.locationByTopic.getStorageLocationsFromChannelId(e);return r=yield i.filter(r,(e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=null!==(yield this.timestampByLocation.getTimestampFromLocation(e)),n=!t||(yield this.timestampByLocation.isDataInBoundaries(e,t));return r&&n})))),r}))}getChannelIdsForTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");const r=yield this.locationByTopic.getChannelIdsFromTopic(e);if(t){const e=[];for(const n of r){const r=yield this.locationByTopic.getStorageLocationsFromChannelId(n);for(const i of r){if(yield this.timestampByLocation.isDataInBoundaries(i,t)){e.push(n);break}}}return e}return r}))}getChannelIdsForMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.locationByTopic)throw new Error("TransactionIndex must be initialized");const r=yield this.locationByTopic.getChannelIdsFromMultipleTopics(e);if(t){const e=[];for(const n of r){const r=yield this.locationByTopic.getStorageLocationsFromChannelId(n);for(const i of r){if(yield this.timestampByLocation.isDataInBoundaries(i,t)){e.push(n);break}}}return e}return r}))}getIndexedLocations(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return(yield this.indexedLocation.get("list"))||[]}))}updateIndexedLocation(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let t=yield this.indexedLocation.get("list");t||(t=[]),t.includes(e)||(t.push(e),yield this.indexedLocation.set("list",t))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(276);class i extends n.DataAccess{constructor(e){super(e),this.isInitialized=!0}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59),i=r(28),f=r(4),o=r(13),a=r(17);t.default=class{constructor(){this.data=new Map,this.forceEmitError=!1}initialize(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){}))}_ipfsAdd(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("Error: no content provided");const t=i.default.serialize(o.default.crypto.normalizeKeccak256Hash(e)),r=o.default.getCurrentTimestampInSecond();return this.data.set(t,{content:e,state:f.StorageTypes.ContentState.PENDING,timestamp:r}),{ipfsHash:t,ipfsSize:e.length}}))}append(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("Error: no content provided");const t=i.default.serialize(o.default.crypto.normalizeKeccak256Hash(e)),r=o.default.getCurrentTimestampInSecond(),n={content:e,state:f.StorageTypes.ContentState.PENDING,timestamp:r};this.data.set(t,n);const s={content:e,id:t,meta:{state:f.StorageTypes.ContentState.PENDING,storageType:f.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:r}},c=Object.assign(new a.EventEmitter,s);return setTimeout((()=>{this.forceEmitError?(this.forceEmitError=!1,c.emit("error","forced error asked by _makeNextAppendFailInsteadOfConfirmed()")):(n.state=f.StorageTypes.ContentState.CONFIRMED,this.data.set(t,n),c.emit("confirmed",s))}),100),c}))}read(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!e)throw Error("No id provided");const t=this.data.get(e);if(!t)throw Error("No content found from this id");return{content:t.content,id:e,meta:{state:t.state,storageType:f.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:t.timestamp}}}))}readMany(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return Promise.all(e.map((e=>this.read(e))))}))}getData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return{entries:Array.from(this.data.entries()).map((([e,{content:t,state:r,timestamp:n}])=>({content:t,id:e,meta:{state:r,storageType:f.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:n}}))),lastTimestamp:o.default.getCurrentTimestampInSecond()}}))}getIgnoredData(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return[]}))}_getStatus(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return{dataIds:{count:Object.entries(this.data).length,values:e?Object.entries(this.data):void 0},ignoredDataIds:{count:0,values:e?[]:void 0}}}))}_makeNextAppendFailInsteadOfConfirmed(){this.forceEmitError=!0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Payment=t.Transaction=t.Storage=t.Identity=t.SignatureProvider=t.Signature=t.DataAccess=t.RequestLogic=t.Encryption=t.Extension=t.DecryptionProvider=t.Log=t.AdvancedLogic=void 0;(0,r(59).__exportStar)(r(140),t);var n=r(4);Object.defineProperty(t,"AdvancedLogic",{enumerable:!0,get:function(){return n.AdvancedLogicTypes}}),Object.defineProperty(t,"Log",{enumerable:!0,get:function(){return n.LogTypes}}),Object.defineProperty(t,"DecryptionProvider",{enumerable:!0,get:function(){return n.DecryptionProviderTypes}}),Object.defineProperty(t,"Extension",{enumerable:!0,get:function(){return n.ExtensionTypes}}),Object.defineProperty(t,"Encryption",{enumerable:!0,get:function(){return n.EncryptionTypes}}),Object.defineProperty(t,"RequestLogic",{enumerable:!0,get:function(){return n.RequestLogicTypes}}),Object.defineProperty(t,"DataAccess",{enumerable:!0,get:function(){return n.DataAccessTypes}}),Object.defineProperty(t,"Signature",{enumerable:!0,get:function(){return n.SignatureTypes}}),Object.defineProperty(t,"SignatureProvider",{enumerable:!0,get:function(){return n.SignatureProviderTypes}}),Object.defineProperty(t,"Identity",{enumerable:!0,get:function(){return n.IdentityTypes}}),Object.defineProperty(t,"Storage",{enumerable:!0,get:function(){return n.StorageTypes}}),Object.defineProperty(t,"Transaction",{enumerable:!0,get:function(){return n.TransactionTypes}}),Object.defineProperty(t,"Payment",{enumerable:!0,get:function(){return n.PaymentTypes}})},function(e,t,r){"use strict";r.r(t),r.d(t,"gql",(function(){return fe})),r.d(t,"resetCaches",(function(){return oe})),r.d(t,"disableFragmentWarnings",(function(){return ae})),r.d(t,"enableExperimentalFragmentVariables",(function(){return se})),r.d(t,"disableExperimentalFragmentVariables",(function(){return ce}));var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.create;Object.create;function i(e){return(i="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)}"function"==typeof Symbol&&null!=Symbol.iterator&&Symbol.iterator,"function"==typeof Symbol&&null!=Symbol.asyncIterator&&Symbol.asyncIterator;var f="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag";function o(e,t){for(var r,n=/\r\n|[\n\r]/g,i=1,f=t+1;(r=n.exec(e.body))&&r.index<t;)i+=1,f=t+1-(r.index+r[0].length);return{line:i,column:f}}function a(e){return s(e.source,o(e.source,e.start))}function s(e,t){var r=e.locationOffset.column-1,n=u(r)+e.body,i=t.line-1,f=e.locationOffset.line-1,o=t.line+f,a=1===t.line?r:0,s=t.column+a,l="".concat(e.name,":").concat(o,":").concat(s,"\n"),d=n.split(/\r\n|[\n\r]/g),h=d[i];if(h.length>120){for(var p=Math.floor(s/80),b=s%80,y=[],m=0;m<h.length;m+=80)y.push(h.slice(m,m+80));return l+c([["".concat(o),y[0]]].concat(y.slice(1,p+1).map((function(e){return["",e]})),[[" ",u(b-1)+"^"],["",y[p+1]]]))}return l+c([["".concat(o-1),d[i-1]],["".concat(o),h],["",u(s-1)+"^"],["".concat(o+1),d[i+1]]])}function c(e){var t=e.filter((function(e){e[0];return void 0!==e[1]})),r=Math.max.apply(Math,t.map((function(e){return e[0].length})));return t.map((function(e){var t,n=e[0],i=e[1];return u(r-(t=n).length)+t+(i?" | "+i:" |")})).join("\n")}function u(e){return Array(e+1).join(" ")}function l(e){return(l="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)}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?p(e):t}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return y(e,arguments,v(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),g(n,e)})(e)}function y(e,t,r){return(y=m()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var i=new(Function.bind.apply(e,n));return r&&g(i,r.prototype),i}).apply(null,arguments)}function m(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(b,e);var t,r,n,c,u,l=(t=b,r=m(),function(){var e,n=v(t);if(r){var i=v(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return h(this,e)});function b(e,t,r,n,f,a,s){var c,u,d,y,m;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,b),m=l.call(this,e);var g,v=Array.isArray(t)?0!==t.length?t:void 0:t?[t]:void 0,_=r;!_&&v&&(_=null===(g=v[0].loc)||void 0===g?void 0:g.source);var w,E=n;!E&&v&&(E=v.reduce((function(e,t){return t.loc&&e.push(t.loc.start),e}),[])),E&&0===E.length&&(E=void 0),n&&r?w=n.map((function(e){return o(r,e)})):v&&(w=v.reduce((function(e,t){return t.loc&&e.push(o(t.loc.source,t.loc.start)),e}),[]));var A,S=s;if(null==S&&null!=a){var T=a.extensions;"object"==i(A=T)&&null!==A&&(S=T)}return Object.defineProperties(p(m),{name:{value:"GraphQLError"},message:{value:e,enumerable:!0,writable:!0},locations:{value:null!==(c=w)&&void 0!==c?c:void 0,enumerable:null!=w},path:{value:null!=f?f:void 0,enumerable:null!=f},nodes:{value:null!=v?v:void 0},source:{value:null!==(u=_)&&void 0!==u?u:void 0},positions:{value:null!==(d=E)&&void 0!==d?d:void 0},originalError:{value:a},extensions:{value:null!==(y=S)&&void 0!==y?y:void 0,enumerable:null!=S}}),null!=a&&a.stack?(Object.defineProperty(p(m),"stack",{value:a.stack,writable:!0,configurable:!0}),h(m)):(Error.captureStackTrace?Error.captureStackTrace(p(m),b):Object.defineProperty(p(m),"stack",{value:Error().stack,writable:!0,configurable:!0}),m)}return n=b,(c=[{key:"toString",value:function(){return function(e){var t=e.message;if(e.nodes)for(var r=0,n=e.nodes;r<n.length;r++){var i=n[r];i.loc&&(t+="\n\n"+a(i.loc))}else if(e.source&&e.locations)for(var f=0,o=e.locations;f<o.length;f++){var c=o[f];t+="\n\n"+s(e.source,c)}return t}(this)}},{key:f,get:function(){return"Object"}}])&&d(n.prototype,c),u&&d(n,u),b}(b(Error));function w(e,t,r){return new _("Syntax Error: ".concat(r),void 0,e,[t])}var E=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"});var A="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;function S(e){var t=e.prototype.toJSON;"function"==typeof t||function(e,t){if(!Boolean(e))throw new Error(null!=t?t:"Unexpected invariant triggered.")}(0),e.prototype.inspect=t,A&&(e.prototype[A]=t)}var T=function(){function e(e,t,r){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=r}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();S(T);var x=function(){function e(e,t,r,n,i,f,o){this.kind=e,this.start=t,this.end=r,this.line=n,this.column=i,this.value=o,this.prev=f,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();S(x);var P=Object.freeze({SOF:"<SOF>",EOF:"<EOF>",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});function R(e){return(R="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)}function k(e){return C(e,[])}function C(e,t){switch(R(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":return null===e?"null":function(e,t){if(-1!==t.indexOf(e))return"[Circular]";var r=[].concat(t,[e]),n=function(e){var t=e[String(A)];if("function"==typeof t)return t;if("function"==typeof e.inspect)return e.inspect}(e);if(void 0!==n){var i=n.call(e);if(i!==e)return"string"==typeof i?i:C(i,r)}else if(Array.isArray(e))return function(e,t){if(0===e.length)return"[]";if(t.length>2)return"[Array]";for(var r=Math.min(10,e.length),n=e.length-r,i=[],f=0;f<r;++f)i.push(C(e[f],t));1===n?i.push("... 1 more item"):n>1&&i.push("... ".concat(n," more items"));return"["+i.join(", ")+"]"}(e,r);return function(e,t){var r=Object.keys(e);if(0===r.length)return"{}";if(t.length>2)return"["+function(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var r=e.constructor.name;if("string"==typeof r&&""!==r)return r}return t}(e)+"]";return"{ "+r.map((function(r){return r+": "+C(e[r],t)})).join(", ")+" }"}(e,r)}(e,t);default:return String(e)}}function O(e,t){if(!Boolean(e))throw new Error(t)}var M=function(e,t){return e instanceof t};function N(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var I=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||O(0,"Body must be a string. Received: ".concat(k(e),".")),this.body=e,this.name=t,this.locationOffset=r,this.locationOffset.line>0||O(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||O(0,"column in locationOffset is 1-indexed and must be positive.")}var t,r,n;return t=e,(r=[{key:f,get:function(){return"Source"}}])&&N(t.prototype,r),n&&N(t,n),e}();var D=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});function B(e){var t=e.split(/\r\n|[\n\r]/g),r=function(e){for(var t,r=!0,n=!0,i=0,f=null,o=0;o<e.length;++o)switch(e.charCodeAt(o)){case 13:10===e.charCodeAt(o+1)&&++o;case 10:r=!1,n=!0,i=0;break;case 9:case 32:++i;break;default:n&&!r&&(null===f||i<f)&&(f=i),n=!1}return null!==(t=f)&&void 0!==t?t:0}(e);if(0!==r)for(var n=1;n<t.length;n++)t[n]=t[n].slice(r);for(var i=0;i<t.length&&F(t[i]);)++i;for(var f=t.length;f>i&&F(t[f-1]);)--f;return t.slice(i,f).join("\n")}function F(e){for(var t=0;t<e.length;++t)if(" "!==e[t]&&"\t"!==e[t])return!1;return!0}var j=function(){function e(e){var t=new x(P.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e=this.token;if(e.kind!==P.EOF)do{var t;e=null!==(t=e.next)&&void 0!==t?t:e.next=U(this,e)}while(e.kind===P.COMMENT);return e},e}();function L(e){return isNaN(e)?P.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function U(e,t){for(var r=e.source,n=r.body,i=n.length,f=t.end;f<i;){var o=n.charCodeAt(f),a=e.line,s=1+f-e.lineStart;switch(o){case 65279:case 9:case 32:case 44:++f;continue;case 10:++f,++e.line,e.lineStart=f;continue;case 13:10===n.charCodeAt(f+1)?f+=2:++f,++e.line,e.lineStart=f;continue;case 33:return new x(P.BANG,f,f+1,a,s,t);case 35:return z(r,f,a,s,t);case 36:return new x(P.DOLLAR,f,f+1,a,s,t);case 38:return new x(P.AMP,f,f+1,a,s,t);case 40:return new x(P.PAREN_L,f,f+1,a,s,t);case 41:return new x(P.PAREN_R,f,f+1,a,s,t);case 46:if(46===n.charCodeAt(f+1)&&46===n.charCodeAt(f+2))return new x(P.SPREAD,f,f+3,a,s,t);break;case 58:return new x(P.COLON,f,f+1,a,s,t);case 61:return new x(P.EQUALS,f,f+1,a,s,t);case 64:return new x(P.AT,f,f+1,a,s,t);case 91:return new x(P.BRACKET_L,f,f+1,a,s,t);case 93:return new x(P.BRACKET_R,f,f+1,a,s,t);case 123:return new x(P.BRACE_L,f,f+1,a,s,t);case 124:return new x(P.PIPE,f,f+1,a,s,t);case 125:return new x(P.BRACE_R,f,f+1,a,s,t);case 34:return 34===n.charCodeAt(f+1)&&34===n.charCodeAt(f+2)?K(r,f,a,s,t,e):V(r,f,a,s,t);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return H(r,f,o,a,s,t);case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 95:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:return $(r,f,a,s,t)}throw w(r,f,q(o))}var c=e.line,u=1+f-e.lineStart;return new x(P.EOF,i,i,c,u,t)}function q(e){return e<32&&9!==e&&10!==e&&13!==e?"Cannot contain the invalid character ".concat(L(e),"."):39===e?"Unexpected single quote character ('), did you mean to use a double quote (\")?":"Cannot parse the unexpected character ".concat(L(e),".")}function z(e,t,r,n,i){var f,o=e.body,a=t;do{f=o.charCodeAt(++a)}while(!isNaN(f)&&(f>31||9===f));return new x(P.COMMENT,t,a,r,n,i,o.slice(t+1,a))}function H(e,t,r,n,i,f){var o=e.body,a=r,s=t,c=!1;if(45===a&&(a=o.charCodeAt(++s)),48===a){if((a=o.charCodeAt(++s))>=48&&a<=57)throw w(e,s,"Invalid number, unexpected digit after 0: ".concat(L(a),"."))}else s=G(e,s,a),a=o.charCodeAt(s);if(46===a&&(c=!0,a=o.charCodeAt(++s),s=G(e,s,a),a=o.charCodeAt(s)),69!==a&&101!==a||(c=!0,43!==(a=o.charCodeAt(++s))&&45!==a||(a=o.charCodeAt(++s)),s=G(e,s,a),a=o.charCodeAt(s)),46===a||function(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}(a))throw w(e,s,"Invalid number, expected digit but got: ".concat(L(a),"."));return new x(c?P.FLOAT:P.INT,t,s,n,i,f,o.slice(t,s))}function G(e,t,r){var n=e.body,i=t,f=r;if(f>=48&&f<=57){do{f=n.charCodeAt(++i)}while(f>=48&&f<=57);return i}throw w(e,i,"Invalid number, expected digit but got: ".concat(L(f),"."))}function V(e,t,r,n,i){for(var f,o,a,s,c=e.body,u=t+1,l=u,d=0,h="";u<c.length&&!isNaN(d=c.charCodeAt(u))&&10!==d&&13!==d;){if(34===d)return h+=c.slice(l,u),new x(P.STRING,t,u+1,r,n,i,h);if(d<32&&9!==d)throw w(e,u,"Invalid character within String: ".concat(L(d),"."));if(++u,92===d){switch(h+=c.slice(l,u-1),d=c.charCodeAt(u)){case 34:h+='"';break;case 47:h+="/";break;case 92:h+="\\";break;case 98:h+="\b";break;case 102:h+="\f";break;case 110:h+="\n";break;case 114:h+="\r";break;case 116:h+="\t";break;case 117:var p=(f=c.charCodeAt(u+1),o=c.charCodeAt(u+2),a=c.charCodeAt(u+3),s=c.charCodeAt(u+4),W(f)<<12|W(o)<<8|W(a)<<4|W(s));if(p<0){var b=c.slice(u+1,u+5);throw w(e,u,"Invalid character escape sequence: \\u".concat(b,"."))}h+=String.fromCharCode(p),u+=4;break;default:throw w(e,u,"Invalid character escape sequence: \\".concat(String.fromCharCode(d),"."))}l=++u}}throw w(e,u,"Unterminated string.")}function K(e,t,r,n,i,f){for(var o=e.body,a=t+3,s=a,c=0,u="";a<o.length&&!isNaN(c=o.charCodeAt(a));){if(34===c&&34===o.charCodeAt(a+1)&&34===o.charCodeAt(a+2))return u+=o.slice(s,a),new x(P.BLOCK_STRING,t,a+3,r,n,i,B(u));if(c<32&&9!==c&&10!==c&&13!==c)throw w(e,a,"Invalid character within String: ".concat(L(c),"."));10===c?(++a,++f.line,f.lineStart=a):13===c?(10===o.charCodeAt(a+1)?a+=2:++a,++f.line,f.lineStart=a):92===c&&34===o.charCodeAt(a+1)&&34===o.charCodeAt(a+2)&&34===o.charCodeAt(a+3)?(u+=o.slice(s,a)+'"""',s=a+=4):++a}throw w(e,a,"Unterminated string.")}function W(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function $(e,t,r,n,i){for(var f=e.body,o=f.length,a=t+1,s=0;a!==o&&!isNaN(s=f.charCodeAt(a))&&(95===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122);)++a;return new x(P.NAME,t,a,r,n,i,f.slice(t,a))}var Y=function(){function e(e,t){var r=function(e){return M(e,I)}(e)?e:new I(e);this._lexer=new j(r),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(P.NAME);return{kind:E.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:E.DOCUMENT,definitions:this.many(P.SOF,this.parseDefinition,P.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(P.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(P.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},t.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(P.BRACE_L))return{kind:E.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var t,r=this.parseOperationType();return this.peek(P.NAME)&&(t=this.parseName()),{kind:E.OPERATION_DEFINITION,operation:r,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseOperationType=function(){var e=this.expectToken(P.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(P.PAREN_L,this.parseVariableDefinition,P.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:E.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(P.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(P.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(P.DOLLAR),{kind:E.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:E.SELECTION_SET,selections:this.many(P.BRACE_L,this.parseSelection,P.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(P.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,r=this._lexer.token,n=this.parseName();return this.expectOptionalToken(P.COLON)?(e=n,t=this.parseName()):t=n,{kind:E.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(P.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(r)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(P.PAREN_L,t,P.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(P.COLON),{kind:E.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:E.ARGUMENT,name:this.parseName(),value:(this.expectToken(P.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(P.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(P.NAME)?{kind:E.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:E.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return this.expectKeyword("fragment"),!0===(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)?{kind:E.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:E.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case P.BRACKET_L:return this.parseList(e);case P.BRACE_L:return this.parseObject(e);case P.INT:return this._lexer.advance(),{kind:E.INT,value:t.value,loc:this.loc(t)};case P.FLOAT:return this._lexer.advance(),{kind:E.FLOAT,value:t.value,loc:this.loc(t)};case P.STRING:case P.BLOCK_STRING:return this.parseStringLiteral();case P.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:E.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:E.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:E.NULL,loc:this.loc(t)};default:return{kind:E.ENUM,value:t.value,loc:this.loc(t)}}case P.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:E.STRING,value:e.value,block:e.kind===P.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,r=this._lexer.token;return{kind:E.LIST,values:this.any(P.BRACKET_L,(function(){return t.parseValueLiteral(e)}),P.BRACKET_R),loc:this.loc(r)}},t.parseObject=function(e){var t=this,r=this._lexer.token;return{kind:E.OBJECT,fields:this.any(P.BRACE_L,(function(){return t.parseObjectField(e)}),P.BRACE_R),loc:this.loc(r)}},t.parseObjectField=function(e){var t=this._lexer.token,r=this.parseName();return this.expectToken(P.COLON),{kind:E.OBJECT_FIELD,name:r,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(P.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(P.AT),{kind:E.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return this.expectOptionalToken(P.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(P.BRACKET_R),e={kind:E.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(P.BANG)?{kind:E.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:E.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===P.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(P.STRING)||this.peek(P.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var r=this.parseDirectives(!0),n=this.many(P.BRACE_L,this.parseOperationTypeDefinition,P.BRACE_R);return{kind:E.SCHEMA_DEFINITION,description:t,directives:r,operationTypes:n,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(P.COLON);var r=this.parseNamedType();return{kind:E.OPERATION_TYPE_DEFINITION,operation:t,type:r,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var r=this.parseName(),n=this.parseDirectives(!0);return{kind:E.SCALAR_TYPE_DEFINITION,description:t,name:r,directives:n,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var r=this.parseName(),n=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:E.OBJECT_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:i,fields:f,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if(!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)){var t=[];this.expectOptionalToken(P.AMP);do{t.push(this.parseNamedType())}while(this.expectOptionalToken(P.AMP)||this.peek(P.NAME));return t}return this.delimitedMany(P.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var e;return!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)&&this.peek(P.BRACE_L)&&this._lexer.lookahead().kind===P.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(P.BRACE_L,this.parseFieldDefinition,P.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),r=this.parseName(),n=this.parseArgumentDefs();this.expectToken(P.COLON);var i=this.parseTypeReference(),f=this.parseDirectives(!0);return{kind:E.FIELD_DEFINITION,description:t,name:r,arguments:n,type:i,directives:f,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(P.PAREN_L,this.parseInputValueDef,P.PAREN_R)},t.parseInputValueDef=function(){var e=this._lexer.token,t=this.parseDescription(),r=this.parseName();this.expectToken(P.COLON);var n,i=this.parseTypeReference();this.expectOptionalToken(P.EQUALS)&&(n=this.parseValueLiteral(!0));var f=this.parseDirectives(!0);return{kind:E.INPUT_VALUE_DEFINITION,description:t,name:r,type:i,defaultValue:n,directives:f,loc:this.loc(e)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var r=this.parseName(),n=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:E.INTERFACE_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:i,fields:f,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var r=this.parseName(),n=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:E.UNION_TYPE_DEFINITION,description:t,name:r,directives:n,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(P.EQUALS)?this.delimitedMany(P.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var r=this.parseName(),n=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:E.ENUM_TYPE_DEFINITION,description:t,name:r,directives:n,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(P.BRACE_L,this.parseEnumValueDefinition,P.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),r=this.parseName(),n=this.parseDirectives(!0);return{kind:E.ENUM_VALUE_DEFINITION,description:t,name:r,directives:n,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var r=this.parseName(),n=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:E.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:r,directives:n,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(P.BRACE_L,this.parseInputValueDef,P.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===P.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),r=this.optionalMany(P.BRACE_L,this.parseOperationTypeDefinition,P.BRACE_R);if(0===t.length&&0===r.length)throw this.unexpected();return{kind:E.SCHEMA_EXTENSION,directives:t,operationTypes:r,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),r=this.parseDirectives(!0);if(0===r.length)throw this.unexpected();return{kind:E.SCALAR_TYPE_EXTENSION,name:t,directives:r,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),r=this.parseImplementsInterfaces(),n=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===r.length&&0===n.length&&0===i.length)throw this.unexpected();return{kind:E.OBJECT_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),r=this.parseImplementsInterfaces(),n=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===r.length&&0===n.length&&0===i.length)throw this.unexpected();return{kind:E.INTERFACE_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),r=this.parseDirectives(!0),n=this.parseUnionMemberTypes();if(0===r.length&&0===n.length)throw this.unexpected();return{kind:E.UNION_TYPE_EXTENSION,name:t,directives:r,types:n,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),r=this.parseDirectives(!0),n=this.parseEnumValuesDefinition();if(0===r.length&&0===n.length)throw this.unexpected();return{kind:E.ENUM_TYPE_EXTENSION,name:t,directives:r,values:n,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),r=this.parseDirectives(!0),n=this.parseInputFieldsDefinition();if(0===r.length&&0===n.length)throw this.unexpected();return{kind:E.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:r,fields:n,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(P.AT);var r=this.parseName(),n=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var f=this.parseDirectiveLocations();return{kind:E.DIRECTIVE_DEFINITION,description:t,name:r,arguments:n,repeatable:i,locations:f,loc:this.loc(e)}},t.parseDirectiveLocations=function(){return this.delimitedMany(P.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==D[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if(!0!==(null===(t=this._options)||void 0===t?void 0:t.noLocation))return new T(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw w(this._lexer.source,t.start,"Expected ".concat(X(e),", found ").concat(J(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind!==P.NAME||t.value!==e)throw w(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(J(t),"."));this._lexer.advance()},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===P.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return w(this._lexer.source,t.start,"Unexpected ".concat(J(t),"."))},t.any=function(e,t,r){this.expectToken(e);for(var n=[];!this.expectOptionalToken(r);)n.push(t.call(this));return n},t.optionalMany=function(e,t,r){if(this.expectOptionalToken(e)){var n=[];do{n.push(t.call(this))}while(!this.expectOptionalToken(r));return n}return[]},t.many=function(e,t,r){this.expectToken(e);var n=[];do{n.push(t.call(this))}while(!this.expectOptionalToken(r));return n},t.delimitedMany=function(e,t){this.expectOptionalToken(e);var r=[];do{r.push(t.call(this))}while(this.expectOptionalToken(e));return r},e}();function J(e){var t=e.value;return X(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function X(e){return function(e){return e===P.BANG||e===P.DOLLAR||e===P.AMP||e===P.PAREN_L||e===P.PAREN_R||e===P.SPREAD||e===P.COLON||e===P.EQUALS||e===P.AT||e===P.BRACKET_L||e===P.BRACKET_R||e===P.BRACE_L||e===P.PIPE||e===P.BRACE_R}(e)?'"'.concat(e,'"'):e}var Z=new Map,Q=new Map,ee=!0,te=!1;function re(e){return e.replace(/[\s,]+/g," ").trim()}function ne(e){var t=new Set,r=[];return e.definitions.forEach((function(e){if("FragmentDefinition"===e.kind){var n=e.name.value,i=re((o=e.loc).source.body.substring(o.start,o.end)),f=Q.get(n);f&&!f.has(i)?ee&&console.warn("Warning: fragment with name "+n+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):f||Q.set(n,f=new Set),f.add(i),t.has(i)||(t.add(i),r.push(e))}else r.push(e);var o})),n(n({},e),{definitions:r})}function ie(e){var t=re(e);if(!Z.has(t)){var r=function(e,t){return new Y(e,t).parseDocument()}(e,{experimentalFragmentVariables:te});if(!r||"Document"!==r.kind)throw new Error("Not a valid GraphQL document.");Z.set(t,function(e){var t=new Set(e.definitions);t.forEach((function(e){e.loc&&delete e.loc,Object.keys(e).forEach((function(r){var n=e[r];n&&"object"==typeof n&&t.add(n)}))}));var r=e.loc;return r&&(delete r.startToken,delete r.endToken),e}(ne(r)))}return Z.get(t)}function fe(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];"string"==typeof e&&(e=[e]);var n=e[0];return t.forEach((function(t,r){t&&"Document"===t.kind?n+=t.loc.source.body:n+=t,n+=e[r+1]})),ie(n)}function oe(){Z.clear(),Q.clear()}function ae(){ee=!1}function se(){te=!0}function ce(){te=!1}var ue,le=fe,de=oe,he=ae,pe=se,be=ce;(ue=fe||(fe={})).gql=le,ue.resetCaches=de,ue.disableFragmentWarnings=he,ue.enableExperimentalFragmentVariables=pe,ue.disableExperimentalFragmentVariables=be,fe.default=fe;t.default=fe},,,,,,,,,,,,,,,,,function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return c}));var n=r(2),i=r(8),f=r(285);const o=new i.a(f.a);let a=null;try{if(a=window,null==a)throw new Error("try next")}catch(t){try{if(a=e,null==a)throw new Error("try next")}catch(e){a={}}}let s=a.crypto||a.msCrypto;function c(e){(e<=0||e>1024||e%1||e!=e)&&o.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return s.getRandomValues(t),Object(n.a)(t)}s&&s.getRandomValues||(o.warn("WARNING: Missing strong random number source"),s={getRandomValues:function(e){return o.throwError("no secure random source avaialble",i.a.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}})}).call(this,r(12))},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return c}));var n=r(0),i=r(3),f=r(292);const o=new i.b(f.a);let a=null;try{if(a=window,null==a)throw new Error("try next")}catch(t){try{if(a=e,null==a)throw new Error("try next")}catch(e){a={}}}let s=a.crypto||a.msCrypto;function c(e){(e<=0||e>1024||e%1||e!=e)&&o.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return s.getRandomValues(t),Object(n.a)(t)}s&&s.getRandomValues||(o.warn("WARNING: Missing strong random number source"),s={getRandomValues:function(e){return o.throwError("no secure random source avaialble",i.b.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}})}).call(this,r(12))}])}));
113
113
  //# sourceMappingURL=requestnetwork.min.js.map