@requestnetwork/request-client.js 0.39.1-next.1739 → 0.39.1-next.1742

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.
@@ -235,7 +235,7 @@
235
235
  timestamp
236
236
  }
237
237
  }
238
- `},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadCurrencyFromContract=void 0;const n=r(12),f=r(4),a=r(50),i=r(3),o=r(553),s=r(55);t.loadCurrencyFromContract=e=>(0,n.__awaiter)(void 0,void 0,void 0,(function*(){if(!e.network||!f.utils.isAddress(e.value))return null;try{const t=o.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 f={address:e.value,decimals:r,symbol:n,network:e.network,type:i.RequestLogicTypes.CURRENCY.ERC20};return Object.assign(Object.assign({},f),{id:a.CurrencyManager.currencyId(f),hash:(0,a.getCurrencyHash)(a.CurrencyManager.toStorageCurrency(f)),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(497),f=r(498),a=r(501),i=r(502),o=r(503),s=r(504),c=r(505),u=r(506);t.supportedNetworks={celo:a.supportedCeloERC20,rinkeby:n.supportedRinkebyERC20,mainnet:f.supportedMainnetERC20,matic:i.supportedMaticERC20,fantom:o.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(86).__importStar)(r(499));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(500)},function(e){e.exports=JSON.parse('{"0x32E6C34Cd57087aBBD59B5A4AECC4cB495924356":{"name":"BitBase","logo":"BTBS.svg","erc20":true,"symbol":"BTBS","decimals":18},"0x3fa400483487A489EC9b1dB29C4129063EEC4654":{"name":"Cryptokek.com","logo":"cryptokek.svg","erc20":true,"symbol":"KEK","decimals":18},"0xb753428af26E81097e7fD17f40c88aaA3E04902c":{"name":"Spice","logo":"sfi.svg","erc20":true,"symbol":"SFI","decimals":18},"0xd084944d3c05CD115C09d072B9F44bA3E0E45921":{"name":"Manifold Finance","logo":"Manifold.svg","erc20":true,"symbol":"FOLD","decimals":18},"0x9a0242b7a33DAcbe40eDb927834F96eB39f8fBCB":{"name":"BABB","logo":"bax.svg","erc20":true,"symbol":"BAX","decimals":18},"0x4Cf89ca06ad997bC732Dc876ed2A7F26a9E7f361":{"name":"Mysterium","logo":"MYST.svg","erc20":true,"symbol":"MYST","decimals":18},"0x697eF32B4a3F5a4C39dE1cB7563f24CA7BfC5947":{"name":"Insula Token","logo":"Insula.svg","erc20":true,"symbol":"ISLA","decimals":18},"0x62Dc4817588d53a056cBbD18231d91ffCcd34b2A":{"name":"DeHive","logo":"dehive.svg","erc20":true,"erc721":false,"symbol":"DHV","decimals":18},"0x8400D94A5cb0fa0D041a3788e395285d61c9ee5e":{"name":"Unibright","logo":"ubt.svg","erc20":true,"symbol":"UBT","decimals":8},"0xfAd45E47083e4607302aa43c65fB3106F1cd7607":{"name":"Hoge Finance","logo":"HogeFinanceLogo.svg","erc20":true,"symbol":"HOGE","decimals":9},"0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b":{"name":"Axie Infinity Shard","logo":"AXS.svg","erc20":true,"symbol":"AXS","decimals":18},"0xCC8Fa225D80b9c7D42F96e9570156c65D6cAAa25":{"name":"Smooth Love Potion","logo":"SLP.svg","erc20":true,"symbol":"SLP","decimals":0},"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},"0xE94B97b6b43639E238c851A7e693F50033EfD75C":{"name":"Rainbow Token","logo":"halodao-rnbw.svg","erc20":true,"symbol":"RNBW","decimals":18},"0x47BE779De87de6580d0548cde80710a93c502405":{"name":"Rainbow Pool","logo":"halodao-xrnbw.svg","erc20":true,"symbol":"xRNBW","decimals":18},"0xe7aE6D0C56CACaf007b7e4d312f9af686a9E9a04":{"name":"Vabble","logo":"VAB.svg","erc20":true,"symbol":"VAB","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},"0x252739487C1fa66eaeaE7CED41d6358aB2a6bCa9":{"name":"ArCoin","logo":"ArCoin.svg","erc20":true,"symbol":"RCOIN","decimals":8},"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},"0x44e2deC86B9F0e0266E9AA66e10323A2bd69CF9A":{"name":"Attrace","logo":"attr.svg","erc20":true,"symbol":"ATTR","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"},"0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72":{"name":"Ethereum Name Service","logo":"ens.svg","erc20":true,"decimals":18,"symbol":"ENS"},"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 Dollar","logo":"usdp.svg","erc20":true,"symbol":"USDP","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 (old)","logo":"LTO.svg","erc20":true,"symbol":"LTOOLD","decimals":8},"0xd01409314aCb3b245CEa9500eCE3F6Fd4d70ea30":{"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},"0x8f693ca8D21b157107184d29D398A8D082b38b76":{"name":"Streamr","logo":"streamr.svg","erc20":true,"symbol":"DATA","decimals":18},"0x0Cf0Ee63788A0849fE5297F3407f701E122cC023":{"name":"Streamr (old)","logo":"streamr_old.svg","erc20":true,"symbol":"XDATA","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},"0x33349B282065b0284d756F0577FB39c158F935e6":{"name":"Maple Finance","logo":"maple-finance.svg","erc20":true,"erc721":false,"symbol":"MPL","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},"0x4612021C75809160Be60DB21fBc9D6adD0B32deF":{"name":"BCP Coin","logo":"BCP.svg","erc20":true,"symbol":"BCP","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},"0x968F6f898a6Df937fC1859b323aC2F14643e3fED":{"name":"Newscrypto","logo":"NWC.svg","erc20":true,"symbol":"NWC","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},"0x0beAD9a1bcc1b84D06E3f2df67E3549Fd55aB054":{"name":"EURxb","logo":"eurxb.svg","erc20":true,"symbol":"EURxb","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},"0xcC665390b03c5D324D8fAF81C15eCee29A73bCB4":{"name":"ChainSwap.com Governance Token","logo":"chainswap.svg","erc20":true,"symbol":"ASAP","decimals":18},"0x182F4c4C97cd1c24E1Df8FC4c053E5C47bf53Bef":{"name":"keyTango Token","logo":"keyTango.svg","erc20":true,"symbol":"TANGO","decimals":18},"0x0275E1001e293C46CFe158B3702AADe0B99f88a5":{"name":"Oiler","logo":"oiler.svg","erc20":true,"symbol":"OIL","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},"0x8eEF5a82E6Aa222a60F009ac18c24EE12dBf4b41":{"name":"Tixl","logo":"TXL.svg","erc20":true,"symbol":"TXL","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},"0x6B4c7A5e3f0B99FCD83e9c089BDDD6c7FCe5c611":{"name":"Million","logo":"million.svg","erc20":true,"symbol":"MM","decimals":18},"0x56d811088235F11C8920698a204A5010a788f4b3":{"name":"bZx Protocol Token (BZRX)","logo":"ic_token_bzrx.svg","erc20":true,"symbol":"BZRX","decimals":18},"0xB72B31907C1C95F3650b64b2469e08EdACeE5e8F":{"name":"bZx Vesting Token (vBZRX)","logo":"ic_token_vbzrx.svg","erc20":true,"symbol":"vBZRX","decimals":18},"0xB983E01458529665007fF7E0CDdeCDB74B967Eb6":{"name":"Fulcrum ETH iToken (iETH)","logo":"ic_token_ieth.svg","erc20":true,"symbol":"iETH","decimals":18},"0x32E4c68B3A4a813b710595AebA7f6B7604Ab9c15":{"name":"Fulcrum USDC iToken (iUSDC)","logo":"ic_token_iusdc.svg","erc20":true,"symbol":"iUSDC","decimals":6},"0x2ffa85f655752fB2aCB210287c60b9ef335f5b6E":{"name":"Fulcrum WBTC iToken (iWBTC)","logo":"ic_token_ibtc.svg","erc20":true,"symbol":"iWBTC","decimals":8},"0x687642347a9282Be8FD809d8309910A3f984Ac5a":{"name":"Fulcrum KNC iToken (iKNC)","logo":"ic_token_iknc.svg","erc20":true,"symbol":"iKNC","decimals":18},"0x463538705E7d22aA7f03Ebf8ab09B067e1001B54":{"name":"Fulcrum LINK iToken (iLINK)","logo":"ic_token_ilink.svg","erc20":true,"symbol":"iLINK","decimals":18},"0x6b093998D36f2C7F0cc359441FBB24CC629D5FF0":{"name":"Fulcrum DAI iToken (iDAI)","logo":"ic_token_idai.svg","erc20":true,"symbol":"iDAI","decimals":18},"0x7e9997a38A439b2be7ed9c9C4628391d3e055D48":{"name":"Fulcrum USDT iToken (iUSDT)","logo":"ic_token_iusdt.svg","erc20":true,"symbol":"iUSDT","decimals":6},"0x9189c499727f88F8eCC7dC4EEA22c828E6AaC015":{"name":"Fulcrum MKR iToken (iMKR)","logo":"ic_token_imkr.svg","erc20":true,"symbol":"iMKR","decimals":18},"0x18240BD9C07fA6156Ce3F3f61921cC82b2619157":{"name":"Fulcrum BZRX iToken (iBZRX)","logo":"ic_token_ibzrx.svg","erc20":true,"symbol":"iBZRX","decimals":18},"0x7F3Fe9D492A9a60aEBb06d82cBa23c6F32CAd10b":{"name":"Fulcrum YFI iToken (iYFI)","logo":"ic_token_iyfi.svg","erc20":true,"symbol":"iYFI","decimals":18},"0x0a625FceC657053Fe2D9FFFdeb1DBb4e412Cf8A8":{"name":"Fulcrum UNI iToken (iUNI)","logo":"ic_token_iuni.svg","erc20":true,"symbol":"iUNI","decimals":18},"0x0cae8d91E0b1b7Bd00D906E990C3625b2c220db1":{"name":"Fulcrum AAVE iToken (iAAVE)","logo":"ic_token_iaave.svg","erc20":true,"symbol":"iAAVE","decimals":18},"0x3dA0e01472Dee3746b4D324a65D7EdFaECa9Aa4f":{"name":"Fulcrum LRC iToken (iLRC)","logo":"ic_token_ilrc.svg","erc20":true,"symbol":"iLRC","decimals":18},"0x6d29903BC2c4318b59B35d97Ab98ab9eC08Ed70D":{"name":"Fulcrum COMP iToken (iCOMP)","logo":"ic_token_icomp.svg","erc20":true,"symbol":"iCOMP","decimals":18},"0x08c32b0726C5684024ea6e141C50aDe9690bBdcc":{"name":"Stratos Token","logo":"stos.svg","erc20":true,"symbol":"STOS","decimals":18},"0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30":{"name":"Injective","logo":"inj.svg","erc20":true,"symbol":"INJ","decimals":18},"0xe516D78d784C77D479977BE58905B3f2b1111126":{"name":"Bitspawn","logo":"spwn.svg","erc20":true,"symbol":"SPWN","decimals":18},"0xB16e967ff83DE3F1e9FCeAfbc2C28c1c5c56eF91":{"name":"Polkadog","logo":"polkadog.svg","erc20":true,"symbol":"PDOG","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},"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56":{name:"Binance-Peg BUSD Token",symbol:"BUSD",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.supportedNetworks=void 0;const n=r(508);t.supportedNetworks={rinkeby:n.supportedRinkebyERC777}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedRinkebyERC777=void 0,t.supportedRinkebyERC777={"0x745861AeD1EEe363b4AaA5F1994Be40b1e05Ff90":{decimals:18,name:"Super fDAI Fake Token",symbol:"fDAIx"}}},function(e,t,r){const n=r(510),f=r(511),a=r(512),i=r(513);e.exports=class{constructor(e){e instanceof Map?(i(e),this.graph=e):this.graph=e?a(e):new Map}addNode(e,t){let r;return t instanceof Map?(i(t),r=t):r=a(t),this.graph.set(e,r),this}addVertex(e,t){return this.addNode(e,t)}removeNode(e){return this.graph=f(this.graph,e),this}path(e,t,r={}){if(!this.graph.size)return r.cost?{path:null,cost:0}:null;const f=new Set,a=new n,i=new Map;let o=[],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(a.set(e,0);!a.isEmpty();){const e=a.next();if(e.key===t){s=e.priority;let t=e.key;for(;i.has(t);)o.push(t),t=i.get(t);break}f.add(e.key);(this.graph.get(e.key)||new Map).forEach(((t,r)=>{if(f.has(r)||c.includes(r))return null;if(!a.has(r))return i.set(r,e.key),a.set(r,e.priority+t);const n=a.get(r).priority,o=e.priority+t;return o<n?(i.set(r,e.key),a.set(r,o)):null}))}return o.length?(r.trim?o.shift():o=o.concat([e]),r.reverse||(o=o.reverse()),r.cost?{path:o,cost:s}:o):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[f,a]of t)f!==r&&a instanceof Map?n.set(f,e(a,r)):f!==r&&n.set(f,a);return n}},function(e,t){e.exports=function e(t){const r=new Map;return Object.keys(t).forEach((n=>{const f=t[n];if(null!==f&&"object"==typeof f&&!Array.isArray(f))return r.set(n,e(f));if(!function(e){const t=Number(e);return!(isNaN(t)||t<=0)}(f))throw new Error(`Could not add node at key "${n}", make sure it's a valid node`,f);return r.set(n,Number(f))})),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){e.exports=JSON.parse('{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0x8acee021a27779d8e98b9650722676b850b25e11":1},"0x8acee021a27779d8e98b9650722676b850b25e11":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}}')},function(e){e.exports=JSON.parse('{"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,"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202":1,"0x8f8221afbb33998d8584a2b05749ba73c37a938a":1,"0xe6c09adc89ff4467cea20bc7760e3e59e7c0671d":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,"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202":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},"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8f8221afbb33998d8584a2b05749ba73c37a938a":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xe6c09adc89ff4467cea20bc7760e3e59e7c0671d":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}')},function(e){e.exports=JSON.parse('{"0xfab46e002bbf0b4509813474841e0716e6730136":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfab46e002bbf0b4509813474841e0716e6730136":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}')},function(e){e.exports=JSON.parse('{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":1,"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x4f99f266506be1475e943b2f097827011bfa4e93":1,"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x4f99f266506be1475e943b2f097827011bfa4e93":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x831753dd7087cac61ab5644b308642cc1c33dc13":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}}')},function(e){e.exports=JSON.parse('{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":1,"0x04068da6c83afcfa0e13ba15a6696662335d5b75":1,"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":1,"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":1,"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":1,"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":1,"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":1,"0x27f26f00e1605903645bbabc0a73e35027dccd45":1,"0x03049758a18d1589388d7a74fb71c3fcce11d286":1,"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":1,"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":1,"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":1},"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x04068da6c83afcfa0e13ba15a6696662335d5b75":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x27f26f00e1605903645bbabc0a73e35027dccd45":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x03049758a18d1589388d7a74fb71c3fcce11d286":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CurrencyManager=void 0;const n=r(86),f=r(3),a=r(4),i=(0,n.__importDefault)(r(520)),o=r(243),s=r(244),c=r(246),u=(0,n.__importDefault)(r(549)),d=r(550),l=r(245),h=r(249),{BTC:p,ERC20:b,ERC777:m,ETH:y,ISO4217:g}=f.RequestLogicTypes.CURRENCY;class v{constructor(e,t,r){this.knownCurrencies=[];for(const t of e){const e=v.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||v.getDefaultLegacyTokens(),this.conversionPairs=r||v.getDefaultConversionPairs()}from(e,t){if(!e)return;if(a.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=a.utils.getAddress(e);const r=this.knownCurrencies.filter((r=>!(r.type!==b&&r.type!==m||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===g&&!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===b||r.type===m)&&e.value===r.address&&r.network===t||(r.type===y||r.type===p)&&r.network===t||r.symbol===e.value&&!e.network)))}getNativeCurrency(e,t){return this.knownCurrencies.find((r=>r.type===e&&r.network===t))}getConversionPath(e,t,r){try{return(0,l.getPath)(e,t,r,this.conversionPairs)}catch(e){return null}}supportsConversion(e,t){var r;return!!(null===(r=this.conversionPairs[t])||void 0===r?void 0:r[e.hash.toLowerCase()])}static fromInput(e){var{id:t,hash:r,meta:f}=e,i=(0,n.__rest)(e,["id","hash","meta"]);return"address"in i&&(i.address=a.utils.getAddress(i.address)),Object.assign({id:t||v.currencyId(i),hash:r||(0,c.getHash)(v.toStorageCurrency(i)),meta:f},i)}static currencyId(e){return"network"in e?`${e.symbol}-${e.network}`:e.symbol}static toStorageCurrency(e){return{type:e.type,value:e.type===b||e.type===m?e.address:e.symbol,network:e.type===g?void 0:e.network}}static validateAddress(e,t){switch(t.type){case f.RequestLogicTypes.CURRENCY.ISO4217:throw new Error("Could not validate an address for an ISO4217 currency");case f.RequestLogicTypes.CURRENCY.ETH:case f.RequestLogicTypes.CURRENCY.ERC20:case f.RequestLogicTypes.CURRENCY.ERC777:switch(t.symbol){case"NEAR":case"NEAR-testnet":return(0,h.isValidNearAddress)(e,t.network);default:return i.default.validate(e,"ETH")}case f.RequestLogicTypes.CURRENCY.BTC:return i.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=u.default.map((e=>({decimals:e.digits,name:e.currency,symbol:e.code,type:g}))),t=d.nativeCurrencies.ETH.map((e=>Object.assign(Object.assign({},e),{type:y}))),r=d.nativeCurrencies.BTC.map((e=>Object.assign(Object.assign({},e),{type:p}))),n=(0,o.getSupportedERC20Tokens)().map((e=>Object.assign(Object.assign({},e),{type:b}))),f=(0,s.getSupportedERC777Tokens)().map((e=>Object.assign(Object.assign({},e),{type:m})));return e.concat(n).concat(f).concat(t).concat(r).map(v.fromInput)}static getDefaultLegacyTokens(){return{near:{NEAR:["NEAR","aurora"]}}}static getDefaultConversionPairs(){return l.chainlinkCurrencyPairs}static getDefault(){return new v(v.getDefaultList(),v.getDefaultLegacyTokens())}}t.CurrencyManager=v},function(e,t,r){var n=r(521);e.exports={validate:function(e,t,r){var f=n.getByNameOrSymbol(t||"bitcoin");if(f&&f.validator)return r&&"string"==typeof r?f.validator.isValidAddress(e,f,{networkType:r}):f.validator.isValidAddress(e,f,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(522),f=r(247),a=r(148),i=r(531),o=r(533),s=r(536),c=r(537),u=r(539),d=r(540),l=r(541),h=r(542),p=r(543),b=r(544),m=r(545),y=r(546),g=r(547),v=r(548),w=[{name:"Bitcoin",symbol:"btc",addressTypes:{prod:["00","05"],testnet:["6f","c4","3c","26"]},bech32Hrp:{prod:["bc"],testnet:["tb"]},validator:a},{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:a},{name:"PeerCoin",symbol:"ppc",addressTypes:{prod:["37","75"],testnet:["6f","c4"]},validator:a},{name:"DogeCoin",symbol:"doge",addressTypes:{prod:["1e","16"],testnet:["71","c4"]},validator:a},{name:"BeaverCoin",symbol:"bvc",addressTypes:{prod:["19","05"],testnet:["6f","c4"]},validator:a},{name:"FreiCoin",symbol:"frc",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:a},{name:"ProtoShares",symbol:"pts",addressTypes:{prod:["38","05"],testnet:["6f","c4"]},validator:a},{name:"MegaCoin",symbol:"mec",addressTypes:{prod:["32","05"],testnet:["6f","c4"]},validator:a},{name:"PrimeCoin",symbol:"xpm",addressTypes:{prod:["17","53"],testnet:["6f","c4"]},validator:a},{name:"AuroraCoin",symbol:"aur",addressTypes:{prod:["17","05"],testnet:["6f","c4"]},validator:a},{name:"NameCoin",symbol:"nmc",addressTypes:{prod:["34"],testnet:[]},validator:a},{name:"BioCoin",symbol:"bio",addressTypes:{prod:["19","14"],testnet:["6f","c4"]},validator:a},{name:"GarliCoin",symbol:"grlc",addressTypes:{prod:["26","05"],testnet:["6f","c4"]},validator:a},{name:"VertCoin",symbol:"vtc",addressTypes:{prod:["0x","47","71","05"],testnet:["6f","c4"]},validator:a},{name:"BitcoinGold",symbol:"btg",addressTypes:{prod:["26","17"],testnet:["6f","c4"]},validator:a},{name:"Komodo",symbol:"kmd",addressTypes:{prod:["3c","55"],testnet:["0","5"]},validator:a},{name:"BitcoinZ",symbol:"btcz",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"BitcoinPrivate",symbol:"btcp",expectedLength:26,addressTypes:{prod:["1325","13af"],testnet:["1957","19e0"]},validator:a},{name:"Hush",symbol:"hush",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"SnowGem",symbol:"sng",expectedLength:26,addressTypes:{prod:["1c28","1c2d"],testnet:["1d25","1cba"]},validator:a},{name:"ZCash",symbol:"zec",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"ZClassic",symbol:"zcl",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"ZenCash",symbol:"zen",expectedLength:26,addressTypes:{prod:["2089","2096"],testnet:["2092","2098"]},validator:a},{name:"VoteCoin",symbol:"vot",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"Decred",symbol:"dcr",addressTypes:{prod:["073f","071a"],testnet:["0f21","0efc"]},hashFunction:"blake256",expectedLength:26,validator:a},{name:"GameCredits",symbol:"game",addressTypes:{prod:["26","05"],testnet:[]},validator:f},{name:"PIVX",symbol:"pivx",addressTypes:{prod:["1e","0d"],testnet:[]},validator:a},{name:"SolarCoin",symbol:"slr",addressTypes:{prod:["12","05"],testnet:[]},validator:a},{name:"MonaCoin",symbol:"mona",addressTypes:{prod:["32","37"],testnet:[]},validator:a},{name:"DigiByte",symbol:"dgb",addressTypes:{prod:["1e","3f"],testnet:[]},bech32Hrp:{prod:["dgb","S"],testnet:[]},validator:a},{name:"Tether",symbol:"usdt",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:y},{name:"Ripple",symbol:"xrp",validator:n},{name:"Dash",symbol:"dash",addressTypes:{prod:["4c","10"],testnet:["8c","13"]},validator:a},{name:"Neo",symbol:"neo",addressTypes:{prod:["17"],testnet:[]},validator:a},{name:"NeoGas",symbol:"gas",addressTypes:{prod:["17"],testnet:[]},validator:a},{name:"Qtum",symbol:"qtum",addressTypes:{prod:["3a","32"],testnet:["78","6e"]},validator:a},{name:"Waves",symbol:"waves",addressTypes:{prod:["0157"],testnet:["0154"]},expectedLength:26,hashFunction:"blake256keccak256",regex:/^[a-zA-Z0-9]{35}$/,validator:a},{name:"Ethereum",symbol:"eth",validator:f},{name:"EtherZero",symbol:"etz",validator:f},{name:"EthereumClassic",symbol:"etc",validator:f},{name:"Callisto",symbol:"clo",validator:f},{name:"Bankex",symbol:"bkx",validator:f},{name:"Cardano",symbol:"ada",bech32Hrp:{prod:["addr"],testnet:["addr"]},validator:i},{name:"Monero",symbol:"xmr",addressTypes:{prod:["18","42"],testnet:["53","63"],stagenet:["24"]},iAddressTypes:{prod:["19"],testnet:["54"],stagenet:["25"]},validator:o},{name:"Aragon",symbol:"ant",validator:f},{name:"Basic Attention Token",symbol:"bat",validator:f},{name:"Bancor",symbol:"bnt",validator:f},{name:"Civic",symbol:"cvc",validator:f},{name:"District0x",symbol:"dnt",validator:f},{name:"Gnosis",symbol:"gno",validator:f},{name:"Golem (GNT)",symbol:"gnt",validator:f},{name:"Golem",symbol:"glm",validator:f},{name:"Matchpool",symbol:"gup",validator:f},{name:"Melon",symbol:"mln",validator:f},{name:"Numeraire",symbol:"nmr",validator:f},{name:"OmiseGO",symbol:"omg",validator:f},{name:"TenX",symbol:"pay",validator:f},{name:"Ripio Credit Network",symbol:"rcn",validator:f},{name:"Augur",symbol:"rep",validator:f},{name:"iExec RLC",symbol:"rlc",validator:f},{name:"Salt",symbol:"salt",validator:f},{name:"Status",symbol:"snt",validator:f},{name:"Storj",symbol:"storj",validator:f},{name:"Swarm City",symbol:"swt",validator:f},{name:"TrueUSD",symbol:"tusd",validator:f},{name:"Wings",symbol:"wings",validator:f},{name:"0x",symbol:"zrx",validator:f},{name:"Expanse",symbol:"exp",validator:f},{name:"Viberate",symbol:"vib",validator:f},{name:"Odyssey",symbol:"ocn",validator:f},{name:"Polymath",symbol:"poly",validator:f},{name:"Storm",symbol:"storm",validator:f},{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:o},{name:"LBRY Credits",symbol:"lbc",addressTypes:{prod:["55"],testnet:[]},validator:a},{name:"Tron",symbol:"trx",addressTypes:{prod:[65],testnet:[160]},validator:u},{name:"Nem",symbol:"xem",validator:d},{name:"Lisk",symbol:"lsk",validator:l},{name:"Stellar",symbol:"xlm",validator:p},{name:"BTU Protocol",symbol:"btu",validator:f},{name:"Crypto.com Coin",symbol:"cro",bech32Hrp:{prod:["cro"],testnet:["tcro"]},validator:r(248)},{name:"Multi-collateral DAI",symbol:"dai",validator:f},{name:"Enjin Coin",symbol:"enj",validator:f},{name:"HedgeTrade",symbol:"hedg",validator:f},{name:"Cred",symbol:"lba",validator:f},{name:"Chainlink",symbol:"link",validator:f},{name:"Loom Network",symbol:"loom",validator:f},{name:"Maker",symbol:"mkr",validator:f},{name:"Metal",symbol:"mtl",validator:f},{name:"Ocean Protocol",symbol:"ocean",validator:f},{name:"Quant",symbol:"qnt",validator:f},{name:"Synthetix Network",symbol:"snx",validator:f},{name:"SOLVE",symbol:"solve",validator:f},{name:"Spendcoin",symbol:"spnd",validator:f},{name:"TEMCO",symbol:"temco",validator:f},{name:"EOS",symbol:"eos",validator:b},{name:"Tezos",symbol:"xtz",validator:m},{name:"VeChain",symbol:"vet",validator:f},{name:"StormX",symbol:"stmx",validator:f},{name:"AugurV2",symbol:"repv2",validator:f},{name:"FirmaChain",symbol:"fct",validator:f},{name:"BlockTrade",symbol:"btt",validator:f},{name:"Quantum Resistant Ledger",symbol:"qrl",validator:f},{name:"Serve",symbol:"serv",validator:f},{name:"Tap",symbol:"xtp",validator:f},{name:"Compound",symbol:"comp",validator:f},{name:"Paxos",symbol:"pax",validator:f},{name:"USD Coin",symbol:"usdc",validator:f},{name:"CUSD",symbol:"cusd",validator:f},{name:"Algorand",symbol:"algo",validator:g},{name:"Polkadot",symbol:"dot",validator:v},{name:"Uniswap Coin",symbol:"uni",validator:f},{name:"Aave Coin",symbol:"aave",validator:f},{name:"Matic",symbol:"matic",validator:f},{name:"Decentraland",symbol:"mana",validator:f}];e.exports={getByNameOrSymbol:function(e){var t=e.toLowerCase();return w.find((function(e){return e.name.toLowerCase()===t||e.symbol.toLowerCase()===t}))},getAll:function(){return w}}},function(e,t,r){var n=r(30),f="rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",a=r(147)(f),i=new RegExp("^r["+f+"]{27,35}$");e.exports={isValidAddress:function(e){return!!i.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=a.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(f){function a(e,t,r){var n,f,a,i,o,b,m,y,g,v=0,w=[],_=0,E=!1,A=[],T=[],x=!1,S=!1,C=-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)o=512,b=U,m=q,i=160,y=function(e){return e.slice()};else if(0===e.lastIndexOf("SHA-",0))if(b=function(t,r){return H(t,r,e)},m=function(t,r,n,f){var a,i;if("SHA-224"===e||"SHA-256"===e)a=15+(r+65>>>9<<4),i=16;else{if("SHA-384"!==e&&"SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");a=31+(r+129>>>10<<5),i=32}for(;t.length<=a;)t.push(0);for(t[r>>>5]|=128<<24-r%32,r+=n,t[a]=4294967295&r,t[a-1]=r/4294967296|0,n=t.length,r=0;r<n;r+=i)f=H(t.slice(r,r+i),f,e);if("SHA-224"===e)t=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===e)t=f;else if("SHA-384"===e)t=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b];else{if("SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");t=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b,f[6].a,f[6].b,f[7].a,f[7].b]}return t},y=function(e){return e.slice()},"SHA-224"===e)o=512,i=224;else if("SHA-256"===e)o=512,i=256;else if("SHA-384"===e)o=1024,i=384;else{if("SHA-512"!==e)throw Error("Chosen SHA variant is not supported");o=1024,i=512}else{if(0!==e.lastIndexOf("SHA3-",0)&&0!==e.lastIndexOf("SHAKE",0))throw Error("Chosen SHA variant is not supported");var O=6;if(b=z,y=function(e){var t,r=[];for(t=0;5>t;t+=1)r[t]=e[t].slice();return r},C=1,"SHA3-224"===e)o=1152,i=224;else if("SHA3-256"===e)o=1088,i=256;else if("SHA3-384"===e)o=832,i=384;else if("SHA3-512"===e)o=576,i=512;else if("SHAKE128"===e)o=1344,i=-1,O=31,S=!0;else{if("SHAKE256"!==e)throw Error("Chosen SHA variant is not supported");o=1088,i=-1,O=31,S=!0}m=function(e,t,r,n,f){var a,i=O,s=[],c=(r=o)>>>5,u=0,d=t>>>5;for(a=0;a<d&&t>=r;a+=c)n=z(e.slice(a,a+c),n),t-=r;for(e=e.slice(a),t%=r;e.length<c;)e.push(0);for(e[(a=t>>>3)>>2]^=i<<a%4*8,e[c-1]^=2147483648,n=z(e,n);32*s.length<f&&(e=n[u%5][u/5|0],s.push(e.b),!(32*s.length>=f));)s.push(e.a),0==64*(u+=1)%r&&(z(null,n),u=0);return s}}a=p(t,n,C),f=L(e),this.setHMACKey=function(t,r,a){var s;if(!0===E)throw Error("HMAC key already set");if(!0===x)throw Error("Cannot set HMAC key after calling update");if(!0===S)throw Error("SHAKE is not supported for HMAC");for(t=(r=p(r,n=(a||{}).encoding||"UTF8",C)(t)).binLen,r=r.value,a=(s=o>>>3)/4-1,s<t/8&&(r=m(r,t,0,L(e),i));r.length<=a;)r.push(0);for(t=0;t<=a;t+=1)A[t]=909522486^r[t],T[t]=1549556828^r[t];f=b(A,f),v=o,E=!0},this.update=function(e){var t,r,n,i=0,s=o>>>5;for(e=(t=a(e,w,_)).binLen,r=t.value,t=e>>>5,n=0;n<t;n+=s)i+o<=e&&(f=b(r.slice(n,n+s),f),i+=o);v+=i,w=r.slice(i>>>5),_=e%o,x=!0},this.getHash=function(t,r){var n,a,o,p;if(!0===E)throw Error("Cannot call getHash after setting HMAC key");if(o=h(r),!0===S){if(-1===o.shakeLen)throw Error("shakeLen must be specified in options");i=o.shakeLen}switch(t){case"HEX":n=function(e){return s(e,i,C,o)};break;case"B64":n=function(e){return c(e,i,C,o)};break;case"BYTES":n=function(e){return u(e,i,C)};break;case"ARRAYBUFFER":try{a=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return d(e,i,C)};break;case"UINT8ARRAY":try{a=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return l(e,i,C)};break;default:throw Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}for(p=m(w.slice(),_,v,y(f),i),a=1;a<g;a+=1)!0===S&&0!=i%32&&(p[p.length-1]&=16777215>>>24-i%32),p=m(p,i,0,L(e),i);return n(p)},this.getHMAC=function(t,r){var n,a,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,i,C,p)};break;case"B64":n=function(e){return c(e,i,C,p)};break;case"BYTES":n=function(e){return u(e,i,C)};break;case"ARRAYBUFFER":try{n=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return d(e,i,C)};break;case"UINT8ARRAY":try{n=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return l(e,i,C)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}return a=m(w.slice(),_,v,y(f),i),g=b(T,L(e)),n(g=m(a,i,o,g,i))}}function i(e,t){this.a=e,this.b=t}function o(e,t,r,n){var f,a,i,o,s;for(t=t||[0],a=(r=r||0)>>>3,s=-1===n?3:0,f=0;f<e.length;f+=1)i=(o=f+a)>>>2,t.length<=i&&t.push(0),t[i]|=e[f]<<8*(s+o%4*n);return{value:t,binLen:8*e.length+r}}function s(e,t,r,n){var f,a,i,o="";for(t/=8,i=-1===r?3:0,f=0;f<t;f+=1)a=e[f>>>2]>>>8*(i+f%4*r),o+="0123456789abcdef".charAt(a>>>4&15)+"0123456789abcdef".charAt(15&a);return n.outputUpper?o.toUpperCase():o}function c(e,t,r,n){var f,a,i,o,s="",c=t/8;for(o=-1===r?3:0,f=0;f<c;f+=3)for(a=f+1<c?e[f+1>>>2]:0,i=f+2<c?e[f+2>>>2]:0,i=(e[f>>>2]>>>8*(o+f%4*r)&255)<<16|(a>>>8*(o+(f+1)%4*r)&255)<<8|i>>>8*(o+(f+2)%4*r)&255,a=0;4>a;a+=1)s+=8*f+6*a<=t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i>>>6*(3-a)&63):n.b64Pad;return s}function u(e,t,r){var n,f,a,i="";for(t/=8,a=-1===r?3:0,n=0;n<t;n+=1)f=e[n>>>2]>>>8*(a+n%4*r)&255,i+=String.fromCharCode(f);return i}function d(e,t,r){t/=8;var n,f,a,i=new ArrayBuffer(t);for(a=new Uint8Array(i),f=-1===r?3:0,n=0;n<t;n+=1)a[n]=e[n>>>2]>>>8*(f+n%4*r)&255;return i}function l(e,t,r){t/=8;var n,f,a=new Uint8Array(t);for(f=-1===r?3:0,n=0;n<t;n+=1)a[n]=e[n>>>2]>>>8*(f+n%4*r)&255;return a}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 f,a,i,o,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,f=0;f<u;f+=2){if(a=parseInt(e.substr(f,2),16),isNaN(a))throw Error("String of HEX type contains invalid characters");for(i=(o=(f>>>1)+s)>>>2;t.length<=i;)t.push(0);t[i]|=a<<8*(c+o%4*r)}return{value:t,binLen:4*u+n}};break;case"TEXT":e=function(e,n,f){var a,i,o,s,c,u,d,l,h=0;if(n=n||[0],c=(f=f||0)>>>3,"UTF8"===t)for(l=-1===r?3:0,o=0;o<e.length;o+=1)for(i=[],128>(a=e.charCodeAt(o))?i.push(a):2048>a?(i.push(192|a>>>6),i.push(128|63&a)):55296>a||57344<=a?i.push(224|a>>>12,128|a>>>6&63,128|63&a):(o+=1,a=65536+((1023&a)<<10|1023&e.charCodeAt(o)),i.push(240|a>>>18,128|a>>>12&63,128|a>>>6&63,128|63&a)),s=0;s<i.length;s+=1){for(u=(d=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=i[s]<<8*(l+d%4*r),h+=1}else if("UTF16BE"===t||"UTF16LE"===t)for(l=-1===r?2:0,i="UTF16LE"===t&&1!==r||"UTF16LE"!==t&&1===r,o=0;o<e.length;o+=1){for(a=e.charCodeAt(o),!0===i&&(a=(s=255&a)<<8|a>>>8),u=(d=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=a<<8*(l+d%4*r),h+=2}return{value:n,binLen:8*h+f}};break;case"B64":e=function(e,t,n){var f,a,i,o,s,c,u,d,l=0;if(-1===e.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");if(a=e.indexOf("="),e=e.replace(/\=/g,""),-1!==a&&a<e.length)throw Error("Invalid '=' found in base-64 string");for(t=t||[0],c=(n=n||0)>>>3,d=-1===r?3:0,a=0;a<e.length;a+=4){for(s=e.substr(a,4),i=o=0;i<s.length;i+=1)o|=(f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(s.charAt(i)))<<18-6*i;for(i=0;i<s.length-1;i+=1){for(f=(u=l+c)>>>2;t.length<=f;)t.push(0);t[f]|=(o>>>16-8*i&255)<<8*(d+u%4*r),l+=1}}return{value:t,binLen:8*l+n}};break;case"BYTES":e=function(e,t,n){var f,a,i,o,s,c;for(t=t||[0],i=(n=n||0)>>>3,c=-1===r?3:0,a=0;a<e.length;a+=1)f=e.charCodeAt(a),o=(s=a+i)>>>2,t.length<=o&&t.push(0),t[o]|=f<<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 o(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 o(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 m(e,t){return 32<t?(t-=32,new i(e.b<<t|e.a>>>32-t,e.a<<t|e.b>>>32-t)):0!==t?new i(e.a<<t|e.b>>>32-t,e.b<<t|e.a>>>32-t):e}function y(e,t){return e>>>t|e<<32-t}function g(e,t){var r=null;r=new i(e.a,e.b);return 32>=t?new i(r.a>>>t|r.b<<32-t&4294967295,r.b>>>t|r.a<<32-t&4294967295):new i(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 i(e.a>>>t,e.b>>>t|e.a<<32-t&4294967295):new i(0,e.a>>>t-32)}function w(e,t,r){return e&t^~e&r}function _(e,t,r){return new i(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 i(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 T(e){return y(e,2)^y(e,13)^y(e,22)}function x(e){var t=g(e,28),r=g(e,34);return e=g(e,39),new i(t.a^r.a^e.a,t.b^r.b^e.b)}function S(e){return y(e,6)^y(e,11)^y(e,25)}function C(e){var t=g(e,14),r=g(e,18);return e=g(e,41),new i(t.a^r.a^e.a,t.b^r.b^e.b)}function O(e){return y(e,7)^y(e,18)^e>>>3}function k(e){var t=g(e,1),r=g(e,8);return e=v(e,7),new i(t.a^r.a^e.a,t.b^r.b^e.b)}function P(e){return y(e,17)^y(e,19)^e>>>10}function R(e){var t=g(e,19),r=g(e,61);return e=v(e,6),new i(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 D(e,t,r,n){var f=(65535&e)+(65535&t)+(65535&r)+(65535&n);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(f>>>16)&65535)<<16|65535&f}function N(e,t,r,n,f){var a=(65535&e)+(65535&t)+(65535&r)+(65535&n)+(65535&f);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(f>>>16)+(a>>>16)&65535)<<16|65535&a}function B(e,t){var r,n,f;return r=(65535&e.b)+(65535&t.b),f=(65535&(n=(e.b>>>16)+(t.b>>>16)+(r>>>16)))<<16|65535&r,r=(65535&e.a)+(65535&t.a)+(n>>>16),new i((65535&(n=(e.a>>>16)+(t.a>>>16)+(r>>>16)))<<16|65535&r,f)}function I(e,t,r,n){var f,a,o;return f=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b),o=(65535&(a=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(f>>>16)))<<16|65535&f,f=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(a>>>16),new i((65535&(a=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(f>>>16)))<<16|65535&f,o)}function F(e,t,r,n,f){var a,o,s;return a=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b)+(65535&f.b),s=(65535&(o=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(f.b>>>16)+(a>>>16)))<<16|65535&a,a=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(65535&f.a)+(o>>>16),new i((65535&(o=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(f.a>>>16)+(a>>>16)))<<16|65535&a,s)}function j(e,t){return new i(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 i(3418070365,r[0]),new i(1654270250,r[1]),new i(2438529370,r[2]),new i(355462360,r[3]),new i(1731405415,r[4]),new i(41048885895,r[5]),new i(3675008525,r[6]),new i(1203062813,r[7])];break;case"SHA-512":r=[new i(t[0],4089235720),new i(t[1],2227873595),new i(t[2],4271175723),new i(t[3],1595750129),new i(t[4],2917565137),new i(t[5],725511199),new i(t[6],4215389547),new i(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 i(0,0),new i(0,0),new i(0,0),new i(0,0),new i(0,0)]}return r}function U(e,t){var r,n,f,a,i,o,s,c=[];for(r=t[0],n=t[1],f=t[2],a=t[3],i=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),o=20>s?N(b(r,5),n&f^~n&a,i,1518500249,c[s]):40>s?N(b(r,5),n^f^a,i,1859775393,c[s]):60>s?N(b(r,5),E(n,f,a),i,2400959708,c[s]):N(b(r,5),n^f^a,i,3395469782,c[s]),i=a,a=f,f=b(n,30),n=r,r=o;return t[0]=M(r,t[0]),t[1]=M(n,t[1]),t[2]=M(f,t[2]),t[3]=M(a,t[3]),t[4]=M(i,t[4]),t}function q(e,t,r,n){var f;for(f=15+(t+65>>>9<<4);e.length<=f;)e.push(0);for(e[t>>>5]|=128<<24-t%32,t+=r,e[f]=4294967295&t,e[f-1]=t/4294967296|0,t=e.length,f=0;f<t;f+=16)n=U(e.slice(f,f+16),n);return n}function H(e,t,r){var n,f,a,o,s,c,u,d,l,h,p,b,m,y,g,v,j,L,U,q,H,z,G,$=[];if("SHA-224"===r||"SHA-256"===r)h=64,b=1,z=Number,m=M,y=D,g=N,v=O,j=P,L=T,U=S,H=E,q=w,G=V;else{if("SHA-384"!==r&&"SHA-512"!==r)throw Error("Unexpected error in SHA-2 implementation");h=80,b=2,z=i,m=B,y=I,g=F,v=k,j=R,L=x,U=C,H=A,q=_,G=K}for(r=t[0],n=t[1],f=t[2],a=t[3],o=t[4],s=t[5],c=t[6],u=t[7],p=0;p<h;p+=1)16>p?(l=p*b,d=e.length<=l?0:e[l],l=e.length<=l+1?0:e[l+1],$[p]=new z(d,l)):$[p]=y(j($[p-2]),$[p-7],v($[p-15]),$[p-16]),d=g(u,U(o),q(o,s,c),G[p],$[p]),l=m(L(r),H(r,n,f)),u=c,c=s,s=o,o=m(a,d),a=f,f=n,n=r,r=m(d,l);return t[0]=m(r,t[0]),t[1]=m(n,t[1]),t[2]=m(f,t[2]),t[3]=m(a,t[3]),t[4]=m(o,t[4]),t[5]=m(s,t[5]),t[6]=m(c,t[6]),t[7]=m(u,t[7]),t}function z(e,t){var r,n,f,a,o=[],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 i(e[n+1],e[n]));for(r=0;24>r;r+=1){for(a=L("SHA3-"),n=0;5>n;n+=1){f=t[n][0];var c=t[n][1],u=t[n][2],d=t[n][3],l=t[n][4];o[n]=new i(f.a^c.a^u.a^d.a^l.a,f.b^c.b^u.b^d.b^l.b)}for(n=0;5>n;n+=1)s[n]=j(o[(n+4)%5],m(o[(n+1)%5],1));for(n=0;5>n;n+=1)for(f=0;5>f;f+=1)t[n][f]=j(t[n][f],s[n]);for(n=0;5>n;n+=1)for(f=0;5>f;f+=1)a[f][(2*n+3*f)%5]=m(t[n][f],G[n][f]);for(n=0;5>n;n+=1)for(f=0;5>f;f+=1)t[n][f]=j(a[n][f],new i(~a[(n+1)%5][f].a&a[(n+2)%5][f].a,~a[(n+1)%5][f].b&a[(n+2)%5][f].b));t[0][0]=j(t[0][0],$[r])}return t}var V,K,G,$;K=[new i((V=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298])[0],3609767458),new i(V[1],602891725),new i(V[2],3964484399),new i(V[3],2173295548),new i(V[4],4081628472),new i(V[5],3053834265),new i(V[6],2937671579),new i(V[7],3664609560),new i(V[8],2734883394),new i(V[9],1164996542),new i(V[10],1323610764),new i(V[11],3590304994),new i(V[12],4068182383),new i(V[13],991336113),new i(V[14],633803317),new i(V[15],3479774868),new i(V[16],2666613458),new i(V[17],944711139),new i(V[18],2341262773),new i(V[19],2007800933),new i(V[20],1495990901),new i(V[21],1856431235),new i(V[22],3175218132),new i(V[23],2198950837),new i(V[24],3999719339),new i(V[25],766784016),new i(V[26],2566594879),new i(V[27],3203337956),new i(V[28],1034457026),new i(V[29],2466948901),new i(V[30],3758326383),new i(V[31],168717936),new i(V[32],1188179964),new i(V[33],1546045734),new i(V[34],1522805485),new i(V[35],2643833823),new i(V[36],2343527390),new i(V[37],1014477480),new i(V[38],1206759142),new i(V[39],344077627),new i(V[40],1290863460),new i(V[41],3158454273),new i(V[42],3505952657),new i(V[43],106217008),new i(V[44],3606008344),new i(V[45],1432725776),new i(V[46],1467031594),new i(V[47],851169720),new i(V[48],3100823752),new i(V[49],1363258195),new i(V[50],3750685593),new i(V[51],3785050280),new i(V[52],3318307427),new i(V[53],3812723403),new i(V[54],2003034995),new i(V[55],3602036899),new i(V[56],1575990012),new i(V[57],1125592928),new i(V[58],2716904306),new i(V[59],442776044),new i(V[60],593698344),new i(V[61],3733110249),new i(V[62],2999351573),new i(V[63],3815920427),new i(3391569614,3928383900),new i(3515267271,566280711),new i(3940187606,3454069534),new i(4118630271,4000239992),new i(116418474,1914138554),new i(174292421,2731055270),new i(289380356,3203993006),new i(460393269,320620315),new i(685471733,587496836),new i(852142971,1086792851),new i(1017036298,365543100),new i(1126000580,2618297676),new i(1288033470,3409855158),new i(1501505948,4234509866),new i(1607167915,987167468),new i(1816402316,1246189591)],$=[new i(0,1),new i(0,32898),new i(2147483648,32906),new i(2147483648,2147516416),new i(0,32907),new i(0,2147483649),new i(2147483648,2147516545),new i(2147483648,32777),new i(0,138),new i(0,136),new i(0,2147516425),new i(0,2147483658),new i(0,2147516555),new i(2147483648,139),new i(2147483648,32905),new i(2147483648,32771),new i(2147483648,32770),new i(2147483648,128),new i(0,32778),new i(2147483648,2147483658),new i(2147483648,2147516545),new i(2147483648,32896),new i(0,2147483649),new i(2147483648,2147516424)],G=[[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 a}.call(t,r,t,e))||(e.exports=n)}()},function(e,t,r){(function(t,n){var f;!function(){"use strict";var a="input is invalid type",i="object"==typeof window,o=i?window:{};o.JS_SHA512_NO_WINDOW&&(i=!1);var s=!i&&"object"==typeof self;!o.JS_SHA512_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?o=n:s&&(o=self);var c=!o.JS_SHA512_NO_COMMON_JS&&"object"==typeof e&&e.exports,u=r(170),d=!o.JS_SHA512_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,l="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],m=["hex","array","digest","arrayBuffer"],y=[];!o.JS_SHA512_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!d||!o.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<m.length;++r){var n=m[r];t[n]=g(n,e)}return t},w=function(e,t){return function(r,n){return new A(r,t,!0).update(n)[e]()}},_=function(e){var t=w("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<m.length;++r){var n=m[r];t[n]=w(n,e)}return t};function E(e,t){t?(y[0]=y[1]=y[2]=y[3]=y[4]=y[5]=y[6]=y[7]=y[8]=y[9]=y[10]=y[11]=y[12]=y[13]=y[14]=y[15]=y[16]=y[17]=y[18]=y[19]=y[20]=y[21]=y[22]=y[23]=y[24]=y[25]=y[26]=y[27]=y[28]=y[29]=y[30]=y[31]=y[32]=0,this.blocks=y):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,f=typeof e;if("string"!==f){if("object"!==f)throw new Error(a);if(null===e)throw new Error(a);if(d&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||d&&ArrayBuffer.isView(e)))throw new Error(a);n=!0}var i=e.length;if(!n){for(var o,s=[],c=(i=e.length,0),u=0;u<i;++u)(o=e.charCodeAt(u))<128?s[c++]=o:o<2048?(s[c++]=192|o>>6,s[c++]=128|63&o):o<55296||o>=57344?(s[c++]=224|o>>12,s[c++]=128|o>>6&63,s[c++]=128|63&o):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++u)),s[c++]=240|o>>18,s[c++]=128|o>>12&63,s[c++]=128|o>>6&63,s[c++]=128|63&o);e=s}e.length>128&&(e=new E(t,!0).update(e).array());var l=[],h=[];for(u=0;u<128;++u){var p=e[u]||0;l[u]=92^p,h[u]=54^p}E.call(this,t,r),this.update(h),this.oKeyPad=l,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(a);if(null===e)throw new Error(a);if(d&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||d&&ArrayBuffer.isView(e)))throw new Error(a);t=!0}for(var n,f,i=0,o=e.length,s=this.blocks;i<o;){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(f=this.start;i<o&&f<128;++i)s[f>>2]|=e[i]<<p[3&f++];else for(f=this.start;i<o&&f<128;++i)(n=e.charCodeAt(i))<128?s[f>>2]|=n<<p[3&f++]:n<2048?(s[f>>2]|=(192|n>>6)<<p[3&f++],s[f>>2]|=(128|63&n)<<p[3&f++]):n<55296||n>=57344?(s[f>>2]|=(224|n>>12)<<p[3&f++],s[f>>2]|=(128|n>>6&63)<<p[3&f++],s[f>>2]|=(128|63&n)<<p[3&f++]):(n=65536+((1023&n)<<10|1023&e.charCodeAt(++i)),s[f>>2]|=(240|n>>18)<<p[3&f++],s[f>>2]|=(128|n>>12&63)<<p[3&f++],s[f>>2]|=(128|n>>6&63)<<p[3&f++],s[f>>2]|=(128|63&n)<<p[3&f++]);this.lastByteIndex=f,this.bytes+=f-this.start,f>=128?(this.block=s[32],this.start=f-128,this.hash(),this.hashed=!0):this.start=f}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,f,a,i,o,s,c,u,d,l,h,p,m,y,g,v,w,_,E,A,T,x,S=this.h0h,C=this.h0l,O=this.h1h,k=this.h1l,P=this.h2h,R=this.h2l,M=this.h3h,D=this.h3l,N=this.h4h,B=this.h4l,I=this.h5h,F=this.h5l,j=this.h6h,L=this.h6l,U=this.h7h,q=this.h7l,H=this.blocks;for(e=32;e<160;e+=2)t=((w=H[e-30])>>>1|(_=H[e-29])<<31)^(w>>>8|_<<24)^w>>>7,r=(_>>>1|w<<31)^(_>>>8|w<<24)^(_>>>7|w<<25),n=((w=H[e-4])>>>19|(_=H[e-3])<<13)^(_>>>29|w<<3)^w>>>6,f=(_>>>19|w<<13)^(w>>>29|_<<3)^(_>>>6|w<<26),w=H[e-32],_=H[e-31],s=((E=H[e-14])>>>16)+(w>>>16)+(t>>>16)+(n>>>16)+((o=(65535&E)+(65535&w)+(65535&t)+(65535&n)+((i=((A=H[e-13])>>>16)+(_>>>16)+(r>>>16)+(f>>>16)+((a=(65535&A)+(65535&_)+(65535&r)+(65535&f))>>>16))>>>16))>>>16),H[e]=s<<16|65535&o,H[e+1]=i<<16|65535&a;var z=S,V=C,K=O,G=k,$=P,W=R,Y=M,J=D,X=N,Z=B,Q=I,ee=F,te=j,re=L,ne=U,fe=q;for(m=K&$,y=G&W,e=0;e<160;e+=8)t=(z>>>28|V<<4)^(V>>>2|z<<30)^(V>>>7|z<<25),r=(V>>>28|z<<4)^(z>>>2|V<<30)^(z>>>7|V<<25),n=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),f=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),g=(c=z&K)^z&$^m,v=(u=V&G)^V&W^y,T=X&Q^~X&te,x=Z&ee^~Z&re,w=H[e],_=H[e+1],w=(s=((E=b[e])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(ne>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&ne)+((i=((A=b[e+1])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(fe>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&fe))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,ne=(s=(Y>>>16)+(w>>>16)+((o=(65535&Y)+(65535&w)+((i=(J>>>16)+(_>>>16)+((a=(65535&J)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,fe=i<<16|65535&a,t=((Y=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o)>>>28|(J=i<<16|65535&a)<<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|fe<<18)^(ne>>>18|fe<<14)^(fe>>>9|ne<<23),f=(fe>>>14|ne<<18)^(fe>>>18|ne<<14)^(ne>>>9|fe<<23),g=(d=Y&z)^Y&K^c,v=(l=J&V)^J&G^u,T=ne&X^~ne&Q,x=fe&Z^~fe&ee,w=H[e+2],_=H[e+3],w=(s=((E=b[e+2])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(te>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&te)+((i=((A=b[e+3])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(re>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&re))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,te=(s=($>>>16)+(w>>>16)+((o=(65535&$)+(65535&w)+((i=(W>>>16)+(_>>>16)+((a=(65535&W)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,re=i<<16|65535&a,t=(($=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o)>>>28|(W=i<<16|65535&a)<<4)^(W>>>2|$<<30)^(W>>>7|$<<25),r=(W>>>28|$<<4)^($>>>2|W<<30)^($>>>7|W<<25),n=(te>>>14|re<<18)^(te>>>18|re<<14)^(re>>>9|te<<23),f=(re>>>14|te<<18)^(re>>>18|te<<14)^(te>>>9|re<<23),g=(h=$&Y)^$&z^d,v=(p=W&J)^W&V^l,T=te&ne^~te&X,x=re&fe^~re&Z,w=H[e+4],_=H[e+5],w=(s=((E=b[e+4])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(Q>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&Q)+((i=((A=b[e+5])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(ee>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&ee))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,Q=(s=(K>>>16)+(w>>>16)+((o=(65535&K)+(65535&w)+((i=(G>>>16)+(_>>>16)+((a=(65535&G)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,ee=i<<16|65535&a,t=((K=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o)>>>28|(G=i<<16|65535&a)<<4)^(G>>>2|K<<30)^(G>>>7|K<<25),r=(G>>>28|K<<4)^(K>>>2|G<<30)^(K>>>7|G<<25),n=(Q>>>14|ee<<18)^(Q>>>18|ee<<14)^(ee>>>9|Q<<23),f=(ee>>>14|Q<<18)^(ee>>>18|Q<<14)^(Q>>>9|ee<<23),g=(m=K&$)^K&Y^h,v=(y=G&W)^G&J^p,T=Q&te^~Q&ne,x=ee&re^~ee&fe,w=H[e+6],_=H[e+7],w=(s=((E=b[e+6])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(X>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&X)+((i=((A=b[e+7])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(Z>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&Z))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,X=(s=(z>>>16)+(w>>>16)+((o=(65535&z)+(65535&w)+((i=(V>>>16)+(_>>>16)+((a=(65535&V)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,Z=i<<16|65535&a,z=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,V=i<<16|65535&a;s=(S>>>16)+(z>>>16)+((o=(65535&S)+(65535&z)+((i=(C>>>16)+(V>>>16)+((a=(65535&C)+(65535&V))>>>16))>>>16))>>>16),this.h0h=s<<16|65535&o,this.h0l=i<<16|65535&a,s=(O>>>16)+(K>>>16)+((o=(65535&O)+(65535&K)+((i=(k>>>16)+(G>>>16)+((a=(65535&k)+(65535&G))>>>16))>>>16))>>>16),this.h1h=s<<16|65535&o,this.h1l=i<<16|65535&a,s=(P>>>16)+($>>>16)+((o=(65535&P)+(65535&$)+((i=(R>>>16)+(W>>>16)+((a=(65535&R)+(65535&W))>>>16))>>>16))>>>16),this.h2h=s<<16|65535&o,this.h2l=i<<16|65535&a,s=(M>>>16)+(Y>>>16)+((o=(65535&M)+(65535&Y)+((i=(D>>>16)+(J>>>16)+((a=(65535&D)+(65535&J))>>>16))>>>16))>>>16),this.h3h=s<<16|65535&o,this.h3l=i<<16|65535&a,s=(N>>>16)+(X>>>16)+((o=(65535&N)+(65535&X)+((i=(B>>>16)+(Z>>>16)+((a=(65535&B)+(65535&Z))>>>16))>>>16))>>>16),this.h4h=s<<16|65535&o,this.h4l=i<<16|65535&a,s=(I>>>16)+(Q>>>16)+((o=(65535&I)+(65535&Q)+((i=(F>>>16)+(ee>>>16)+((a=(65535&F)+(65535&ee))>>>16))>>>16))>>>16),this.h5h=s<<16|65535&o,this.h5l=i<<16|65535&a,s=(j>>>16)+(te>>>16)+((o=(65535&j)+(65535&te)+((i=(L>>>16)+(re>>>16)+((a=(65535&L)+(65535&re))>>>16))>>>16))>>>16),this.h6h=s<<16|65535&o,this.h6l=i<<16|65535&a,s=(U>>>16)+(ne>>>16)+((o=(65535&U)+(65535&ne)+((i=(q>>>16)+(fe>>>16)+((a=(65535&q)+(65535&fe))>>>16))>>>16))>>>16),this.h7h=s<<16|65535&o,this.h7l=i<<16|65535&a},E.prototype.hex=function(){this.finalize();var e=this.h0h,t=this.h0l,r=this.h1h,n=this.h1l,f=this.h2h,a=this.h2l,i=this.h3h,o=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,d=this.h5l,h=this.h6h,p=this.h6l,b=this.h7h,m=this.h7l,y=this.bits,g=l[e>>28&15]+l[e>>24&15]+l[e>>20&15]+l[e>>16&15]+l[e>>12&15]+l[e>>8&15]+l[e>>4&15]+l[15&e]+l[t>>28&15]+l[t>>24&15]+l[t>>20&15]+l[t>>16&15]+l[t>>12&15]+l[t>>8&15]+l[t>>4&15]+l[15&t]+l[r>>28&15]+l[r>>24&15]+l[r>>20&15]+l[r>>16&15]+l[r>>12&15]+l[r>>8&15]+l[r>>4&15]+l[15&r]+l[n>>28&15]+l[n>>24&15]+l[n>>20&15]+l[n>>16&15]+l[n>>12&15]+l[n>>8&15]+l[n>>4&15]+l[15&n]+l[f>>28&15]+l[f>>24&15]+l[f>>20&15]+l[f>>16&15]+l[f>>12&15]+l[f>>8&15]+l[f>>4&15]+l[15&f]+l[a>>28&15]+l[a>>24&15]+l[a>>20&15]+l[a>>16&15]+l[a>>12&15]+l[a>>8&15]+l[a>>4&15]+l[15&a]+l[i>>28&15]+l[i>>24&15]+l[i>>20&15]+l[i>>16&15]+l[i>>12&15]+l[i>>8&15]+l[i>>4&15]+l[15&i];return y>=256&&(g+=l[o>>28&15]+l[o>>24&15]+l[o>>20&15]+l[o>>16&15]+l[o>>12&15]+l[o>>8&15]+l[o>>4&15]+l[15&o]),y>=384&&(g+=l[s>>28&15]+l[s>>24&15]+l[s>>20&15]+l[s>>16&15]+l[s>>12&15]+l[s>>8&15]+l[s>>4&15]+l[15&s]+l[c>>28&15]+l[c>>24&15]+l[c>>20&15]+l[c>>16&15]+l[c>>12&15]+l[c>>8&15]+l[c>>4&15]+l[15&c]+l[u>>28&15]+l[u>>24&15]+l[u>>20&15]+l[u>>16&15]+l[u>>12&15]+l[u>>8&15]+l[u>>4&15]+l[15&u]+l[d>>28&15]+l[d>>24&15]+l[d>>20&15]+l[d>>16&15]+l[d>>12&15]+l[d>>8&15]+l[d>>4&15]+l[15&d]),512==y&&(g+=l[h>>28&15]+l[h>>24&15]+l[h>>20&15]+l[h>>16&15]+l[h>>12&15]+l[h>>8&15]+l[h>>4&15]+l[15&h]+l[p>>28&15]+l[p>>24&15]+l[p>>20&15]+l[p>>16&15]+l[p>>12&15]+l[p>>8&15]+l[p>>4&15]+l[15&p]+l[b>>28&15]+l[b>>24&15]+l[b>>20&15]+l[b>>16&15]+l[b>>12&15]+l[b>>8&15]+l[b>>4&15]+l[15&b]+l[m>>28&15]+l[m>>24&15]+l[m>>20&15]+l[m>>16&15]+l[m>>12&15]+l[m>>8&15]+l[m>>4&15]+l[15&m]),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,f=this.h2h,a=this.h2l,i=this.h3h,o=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,d=this.h5l,l=this.h6h,h=this.h6l,p=this.h7h,b=this.h7l,m=this.bits,y=[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,f>>24&255,f>>16&255,f>>8&255,255&f,a>>24&255,a>>16&255,a>>8&255,255&a,i>>24&255,i>>16&255,i>>8&255,255&i];return m>=256&&y.push(o>>24&255,o>>16&255,o>>8&255,255&o),m>=384&&y.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,d>>24&255,d>>16&255,d>>8&255,255&d),512==m&&y.push(l>>24&255,l>>16&255,l>>8&255,255&l,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),y},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 T=v(512);T.sha512=T,T.sha384=v(384),T.sha512_256=v(256),T.sha512_224=v(224),T.sha512.hmac=_(512),T.sha384.hmac=_(384),T.sha512_256.hmac=_(256),T.sha512_224.hmac=_(224),c?e.exports=T:(o.sha512=T.sha512,o.sha384=T.sha384,o.sha512_256=T.sha512_256,o.sha512_224=T.sha512_224,u&&(void 0===(f=function(){return T}.call(T,r,T,e))||(e.exports=f)))}()}).call(this,r(15),r(21))},function(e,t,r){"use strict";(function(t){i.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]],i.u256=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479],i.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]),i.prototype._length_carry=function(e){for(var t=0;t<e.length&&!(e[t]<4294967296);++t)e[t]-=4294967296,e[t+1]+=1},i.prototype.update=function(e,r){e=t.from(e,r);for(var n=this._block,f=0;this._blockOffset+e.length-f>=n.length;){for(var a=this._blockOffset;a<n.length;)n[a++]=e[f++];this._length[0]+=8*n.length,this._length_carry(this._length),this._compress(),this._blockOffset=0}for(;f<e.length;)n[this._blockOffset++]=e[f++];return this};var r=t.from([1]),n=t.from([129]);function f(e,t){return(e<<32-t|e>>>t)>>>0}function a(e,t,r,n,a,o,s,c){var u=i.sigma,d=i.u256;e[n]=e[n]+((t[u[r][c]]^d[u[r][c+1]])>>>0)+e[a]>>>0,e[s]=f(e[s]^e[n],16),e[o]=e[o]+e[s]>>>0,e[a]=f(e[a]^e[o],12),e[n]=e[n]+((t[u[r][c+1]]^d[u[r][c]])>>>0)+e[a]>>>0,e[s]=f(e[s]^e[n],8),e[o]=e[o]+e[s]>>>0,e[a]=f(e[a]^e[o],7)}function i(){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}i.prototype._compress=function(){var e,t=i.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)a(r,n,e,0,4,8,12,0),a(r,n,e,1,5,9,13,2),a(r,n,e,2,6,10,14,4),a(r,n,e,3,7,11,15,6),a(r,n,e,0,5,10,15,8),a(r,n,e,1,6,11,12,10),a(r,n,e,2,7,8,13,12),a(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},i.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(i.padding.slice(0,55-this._blockOffset))):(this._length[0]-=8*(64-this._blockOffset),this.update(i.padding.slice(0,64-this._blockOffset)),this._length[0]-=440,this.update(i.padding.slice(1,56)),this._nullt=!0),this.update(this._zo),this._length[0]-=8),this._length[0]-=64,this.update(n)},i.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=i}).call(this,r(6).Buffer)},function(e,t,r){"use strict";(function(t,r){var n="input is invalid type",f="object"==typeof window,a=f?window:{};a.JS_SHA3_NO_WINDOW&&(f=!1);var i=!f&&"object"==typeof self;!a.JS_SHA3_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?a=r:i&&(a=self);var o=!a.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],d=[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],l=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!a.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!a.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 m=function(e,t,r){return function(n){return new R(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,f){return new R(e,t,f).update(n)[r]()}},g=function(e,t,r){return function(t,n,f,a){return A["cshake"+e].update(t,n,f,a)[r]()}},v=function(e,t,r){return function(t,n,f,a){return A["kmac"+e].update(t,n,f,a)[r]()}},w=function(e,t,r,n){for(var f=0;f<p.length;++f){var a=p[f];e[a]=t(r,n,a)}return e},_=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new R(e,t,e)},r.update=function(e){return r.create().update(e)},w(r,m,e,t)},E=[{name:"keccak",padding:[1,256,65536,16777216],bits:l,createMethod:_},{name:"sha3",padding:[6,1536,393216,100663296],bits:l,createMethod:_},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new R(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},w(r,y,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,f,a){return f||a?new R(e,t,n).bytepad([f,a],r):A["shake"+e].create(n)},n.update=function(e,t,r,f){return n.create(t,r,f).update(e)},w(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,f,a){return new M(e,t,f).bytepad(["KMAC",a],r).bytepad([n],r)},n.update=function(e,t,r,f){return n.create(e,r,f).update(t)},w(n,v,e,t)}}],A={},T=[],x=0;x<E.length;++x)for(var S=E[x],C=S.bits,O=0;O<C.length;++O){var k=S.name+"_"+C[O];if(T.push(k),A[k]=S.createMethod(C[O],S.padding),"sha3"!==S.name){var P=S.name+C[O];T.push(P),A[P]=A[k]}}function R(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){R.call(this,e,t,r)}R.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(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw n;t=!0}for(var f,a,i=this.blocks,s=this.byteCount,c=e.length,d=this.blockCount,l=0,h=this.s;l<c;){if(this.reset)for(this.reset=!1,i[0]=this.block,f=1;f<d+1;++f)i[f]=0;if(t)for(f=this.start;l<c&&f<s;++l)i[f>>2]|=e[l]<<u[3&f++];else for(f=this.start;l<c&&f<s;++l)(a=e.charCodeAt(l))<128?i[f>>2]|=a<<u[3&f++]:a<2048?(i[f>>2]|=(192|a>>6)<<u[3&f++],i[f>>2]|=(128|63&a)<<u[3&f++]):a<55296||a>=57344?(i[f>>2]|=(224|a>>12)<<u[3&f++],i[f>>2]|=(128|a>>6&63)<<u[3&f++],i[f>>2]|=(128|63&a)<<u[3&f++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++l)),i[f>>2]|=(240|a>>18)<<u[3&f++],i[f>>2]|=(128|a>>12&63)<<u[3&f++],i[f>>2]|=(128|a>>6&63)<<u[3&f++],i[f>>2]|=(128|63&a)<<u[3&f++]);if(this.lastByteIndex=f,f>=s){for(this.start=f-s,this.block=i[d],f=0;f<d;++f)h[f]^=i[f];D(h),this.reset=!0}else this.start=f}return this}},R.prototype.encode=function(e,t){var r=255&e,n=1,f=[r];for(r=255&(e>>=8);r>0;)f.unshift(r),r=255&(e>>=8),++n;return t?f.push(n):f.unshift(n),this.update(f),f.length},R.prototype.encodeString=function(e){var t,r=typeof e;if("string"!==r){if("object"!==r)throw n;if(null===e)throw n;if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw n;t=!0}var f=0,a=e.length;if(t)f=a;else for(var i=0;i<e.length;++i){var s=e.charCodeAt(i);s<128?f+=1:s<2048?f+=2:s<55296||s>=57344?f+=3:(s=65536+((1023&s)<<10|1023&e.charCodeAt(++i)),f+=4)}return f+=this.encode(8*f),this.update(e),f},R.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var f=t-r%t,a=[];return a.length=f,this.update(a),this},R.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];D(n)}},R.prototype.toString=R.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,f=this.extraBytes,a=0,i=0,o="";i<n;){for(a=0;a<t&&i<n;++a,++i)e=r[a],o+=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];i%t==0&&(D(r),a=0)}return f&&(e=r[a],o+=s[e>>4&15]+s[15&e],f>1&&(o+=s[e>>12&15]+s[e>>8&15]),f>2&&(o+=s[e>>20&15]+s[e>>16&15])),o},R.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,f=this.extraBytes,a=0,i=0,o=this.outputBits>>3;e=f?new ArrayBuffer(n+1<<2):new ArrayBuffer(o);for(var s=new Uint32Array(e);i<n;){for(a=0;a<t&&i<n;++a,++i)s[i]=r[a];i%t==0&&D(r)}return f&&(s[a]=r[a],e=e.slice(0,o)),e},R.prototype.buffer=R.prototype.arrayBuffer,R.prototype.digest=R.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,f=this.outputBlocks,a=this.extraBytes,i=0,o=0,s=[];o<f;){for(i=0;i<r&&o<f;++i,++o)e=o<<2,t=n[i],s[e]=255&t,s[e+1]=t>>8&255,s[e+2]=t>>16&255,s[e+3]=t>>24&255;o%r==0&&D(n)}return a&&(e=o<<2,t=n[i],s[e]=255&t,a>1&&(s[e+1]=t>>8&255),a>2&&(s[e+2]=t>>16&255)),s},M.prototype=new R,M.prototype.finalize=function(){return this.encode(this.outputBits,!0),R.prototype.finalize.call(this)};var D=function(e){var t,r,n,f,a,i,o,s,c,u,l,h,p,b,m,y,g,v,w,_,E,A,T,x,S,C,O,k,P,R,M,D,N,B,I,F,j,L,U,q,H,z,V,K,G,$,W,Y,J,X,Z,Q,ee,te,re,ne,fe,ae,ie,oe,se,ce,ue;for(n=0;n<48;n+=2)f=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],i=e[2]^e[12]^e[22]^e[32]^e[42],o=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],l=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(i<<1|o>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(o<<1|i>>>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=f^(s<<1|c>>>31),r=a^(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=i^(u<<1|l>>>31),r=o^(l<<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^(f<<1|a>>>31),r=l^(a<<1|f>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],$=e[11]<<4|e[10]>>>28,W=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,P=e[21]<<3|e[20]>>>29,oe=e[31]<<9|e[30]>>>23,se=e[30]<<9|e[31]>>>23,z=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,I=e[3]<<1|e[2]>>>31,y=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,R=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,w=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,D=e[45]<<29|e[44]>>>3,N=e[44]<<29|e[45]>>>3,x=e[6]<<28|e[7]>>>4,S=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,fe=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,_=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,K=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,ie=e[28]<<7|e[29]>>>25,q=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,T=e[49]<<14|e[48]>>>18,e[0]=b^~y&v,e[1]=m^~g&w,e[10]=x^~C&k,e[11]=S^~O&P,e[20]=B^~F&L,e[21]=I^~j&U,e[30]=K^~$&Y,e[31]=G^~W&J,e[40]=te^~ne&ae,e[41]=re^~fe&ie,e[2]=y^~v&_,e[3]=g^~w&E,e[12]=C^~k&R,e[13]=O^~P&M,e[22]=F^~L&q,e[23]=j^~U&H,e[32]=$^~Y&X,e[33]=W^~J&Z,e[42]=ne^~ae&oe,e[43]=fe^~ie&se,e[4]=v^~_&A,e[5]=w^~E&T,e[14]=k^~R&D,e[15]=P^~M&N,e[24]=L^~q&z,e[25]=U^~H&V,e[34]=Y^~X&Q,e[35]=J^~Z&ee,e[44]=ae^~oe&ce,e[45]=ie^~se&ue,e[6]=_^~A&b,e[7]=E^~T&m,e[16]=R^~D&x,e[17]=M^~N&S,e[26]=q^~z&B,e[27]=H^~V&I,e[36]=X^~Q&K,e[37]=Z^~ee&G,e[46]=oe^~ce&te,e[47]=se^~ue&re,e[8]=A^~b&y,e[9]=T^~m&g,e[18]=D^~x&C,e[19]=N^~S&O,e[28]=z^~B&F,e[29]=V^~I&j,e[38]=Q^~K&$,e[39]=ee^~G&W,e[48]=ce^~te&ne,e[49]=ue^~re&fe,e[0]^=d[n],e[1]^=d[n+1]};e.exports=A}).call(this,r(15),r(21))},function(e,t,r){"use strict";function n(e,t,r){var n=e[t]+e[r],f=e[t+1]+e[r+1];n>=4294967296&&f++,e[t]=n,e[t+1]=f}function f(e,t,r,n){var f=e[t]+r;r<0&&(f+=4294967296);var a=e[t+1]+n;f>=4294967296&&a++,e[t]=f,e[t+1]=a}function a(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function i(e,t,r,a,i,o){var s=u[i],d=u[i+1],l=u[o],h=u[o+1];n(c,e,t),f(c,e,s,d);var p=c[a]^c[e],b=c[a+1]^c[e+1];c[a]=b,c[a+1]=p,n(c,r,a),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),f(c,e,l,h),p=c[a]^c[e],b=c[a+1]^c[e+1],c[a]=p>>>16^b<<16,c[a+1]=b>>>16^p<<16,n(c,r,a),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 o=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 d(e,t){var r=0;for(r=0;r<16;r++)c[r]=e.h[r],c[r+16]=o[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]=a(e.b,4*r);for(r=0;r<12;r++)i(0,8,16,24,s[16*r+0],s[16*r+1]),i(2,10,18,26,s[16*r+2],s[16*r+3]),i(4,12,20,28,s[16*r+4],s[16*r+5]),i(6,14,22,30,s[16*r+6],s[16*r+7]),i(0,10,20,30,s[16*r+8],s[16*r+9]),i(2,12,22,24,s[16*r+10],s[16*r+11]),i(4,14,16,26,s[16*r+12],s[16*r+13]),i(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 l=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){l.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,l[0]=e,t&&(l[1]=t.length),l[2]=1,l[3]=1,r&&l.set(r,32),n&&l.set(n,48);for(var f=0;f<16;f++)this.h[f]=o[f]^a(l,4*f);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,d(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;d(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),f=0;f<e.length/8;f++){for(var a=[0,0,0,0,0,0,0,0],i=0;i<8;++i)a[i]=r.indexOf(e[8*f+i]);i=0;n[5*f+0]=a[i+0]<<3|a[i+1]>>2,n[5*f+1]=(3&a[i+1])<<6|a[i+2]<<1|a[i+3]>>4,n[5*f+2]=(15&a[i+3])<<4|a[i+4]>>1,n[5*f+3]=(1&a[i+4])<<7|a[i+5]<<2|a[i+6]>>3,n[5*f+4]=(7&a[i+6])<<5|a[i+7]}return n},b32encode:function(e){var t=[],n=Math.floor(e.length/5),f=e.length%5;if(0!=f){for(var a=0;a<5-f;a++)e+="\0";n+=1}for(a=0;a<n;a++)t.push(r.charAt(e.charCodeAt(5*a)>>3)),t.push(r.charAt((7&e.charCodeAt(5*a))<<2|e.charCodeAt(5*a+1)>>6)),t.push(r.charAt((63&e.charCodeAt(5*a+1))>>1)),t.push(r.charAt((1&e.charCodeAt(5*a+1))<<4|e.charCodeAt(5*a+2)>>4)),t.push(r.charAt((15&e.charCodeAt(5*a+2))<<1|e.charCodeAt(5*a+3)>>7)),t.push(r.charAt((127&e.charCodeAt(5*a+3))>>2)),t.push(r.charAt((3&e.charCodeAt(5*a+3))<<3|e.charCodeAt(5*a+4)>>5)),t.push(r.charAt(31&e.charCodeAt(5*a+4)));var i=0;1==f?i=6:2==f?i=4:3==f?i=3:4==f&&(i=1);for(a=0;a<i;a++)t.pop();for(a=0;a<i;a++)t.push("=");return t.join("")}}},function(e,t,r){(function(t){var r,n=1e9,f=1e6,a=20,i=4,o=-7,s=21,c=-n,u=n,d=!0,l=parseInt,h=v.prototype,p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",b=0,m=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,y=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=v(1);function v(e,t){var n,f,o,s,l,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=(o="number"==typeof e||"[object Number]"==Object.prototype.toString.call(e))&&0===e&&1/e<0?"-0":e+""),h=e,t===n&&m.test(e))g.s="-"==e.charAt(0)?(e=e.slice(1),-1):1;else{if(10==t)return x(e,a,i);if(e=y.call(e).replace(/^\+(?!-)/,""),g.s="-"==e.charAt(0)?(e=e.replace(/^-(?!-)/,""),-1):1,null!=t?t!=(0|t)&&d||(r=!(t>=2&&t<65))?(w(t,2),l=m.test(e)):(s="["+p.slice(0,t|=0)+"]+",e=e.replace(/\.$/,"").replace(/^\./,"0."),(l=new RegExp("^"+s+"(?:\\."+s+")?$",t<37?"i":"").test(e))?(o&&(e.replace(/^0\.0*|\./,"").length>15&&w(h,0),o=!o),e=_(e,10,t,g.s)):"Infinity"!=e&&"NaN"!=e&&(w(h,1,t),e="NaN")):l=m.test(e),!l)return g.c=g.e=null,"Infinity"!=e&&("NaN"!=e&&w(h,3),g.s=null),void(b=0)}for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(f=e.search(/e/i))>0?(n<0&&(n=f),n+=+e.slice(f+1),e=e.substring(0,f)):n<0&&(n=e.length),f=0;"0"==e.charAt(f);f++);if(t=e.length,o&&t>15&&e.slice(f).length>15&&w(h,0),b=0,(n-=f+1)>u)g.c=g.e=null;else if(f==t||n<c)g.c=[g.e=0];else{for(;"0"==e.charAt(--t););for(g.e=n,g.c=[],n=0;f<=t;g.c[n++]=+e.charAt(f++));}}function w(e,t,n,f,a,i){if(d){var o,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"+(a?" 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+(i?" not a boolean or binary digit":c+(f?" or not ["+(r?" negative, positive":" integer, integer")+" ]":"")))+": "+e,r=b=0,(o=new Error(c)).name="BigNumber Error",o}}function _(e,t,r,n){var f,a,i,o,s,c;function u(e,n){var f,a,i=0,o=e.length,s=[0];for(n=n||r;i<o;i++){for(a=s.length,f=0;f<a;s[f]*=n,f++);for(s[0]+=p.indexOf(e.charAt(i)),f=0;f<s.length;f++)s[f]>t-1&&(null==s[f+1]&&(s[f+1]=0),s[f+1]+=s[f]/t^0,s[f]%=t)}return s.reverse()}function d(e){for(var t=0,r=e.length,n="";t<r;n+=p.charAt(e[t++]));return n}if(r<37&&(e=e.toLowerCase()),(f=e.indexOf("."))>-1)if(f=e.length-f-1,a=u(new v(r).pow(f).toF(),10),i=u((o=e.split("."))[1]),o=u(o[0]),s=(c=E(i,a,i.length-a.length,n,t,1&o[o.length-1])).c,f=c.e){for(;++f;s.unshift(0));e=d(o)+"."+d(s)}else s[0]?o[f=o.length-1]<t-1?(++o[f],e=d(o)):e=new v(d(o),t).plus(g).toS(t):e=d(o);else e=d(u(e));return e}function E(e,t,r,n,f,i){var o,s,d,l,h,p=t.slice(),b=o=t.length,m=e.length,y=e.slice(0,o),w=y.length,_=new v(g),E=_.c=[],A=0,x=a+(_.e=r)+1;for(_.s=n,n=x<0?0:x;w++<o;y.push(0));p.unshift(0);do{for(d=0;d<f;d++){if(o!=(w=y.length))l=o>w?1:-1;else for(h=-1,l=0;++h<o;)if(t[h]!=y[h]){l=t[h]>y[h]?1:-1;break}if(!(l<0))break;for(s=w==o?t:p;w;){if(y[--w]<s[w]){for(h=w;h&&!y[--h];y[h]=f-1);--y[h],y[w]+=f}y[w]-=s[w]}for(;!y[0];y.shift());}E[A++]=l?d:++d,y[0]&&l?y[w]=e[b]||0:y=[e[b]]}while((b++<m||null!=y[0])&&n--);return E[0]||1==A||(--_.e,E.shift()),A>x&&T(_,a,f,i,null!=y[0]),_.e>u?_.c=_.e=null:_.e<c&&(_.c=[_.e=0]),_}function A(e,t,r){var n=t-(e=new v(e)).e,f=e.c;if(!f)return e.toS();for(f.length>++t&&T(e,n,10),n=0==f[0]?n+1:r?t:e.e+n+1;f.length<n;f.push(0));return n=e.e,1==r||2==r&&(--t<n||n<=o)?(e.s<0&&f[0]?"-":"")+(f.length>1?(f.splice(1,0,"."),f.join("")):f[0])+(n<0?"e":"e+")+n:e.toS()}function T(e,t,r,n,f){var a=e.c,o=e.s<0,s=r/2,c=e.e+t+1,u=a[c],d=f||c<0||null!=a[c+1];if(f=i<4?(null!=u||d)&&(0==i||2==i&&!o||3==i&&o):u>s||u==s&&(4==i||d||6==i&&(1&a[c-1]||!t&&n)||7==i&&!o||8==i&&o),c<1||!a[0])return a.length=0,a.push(0),f?(a[0]=1,e.e=-t):e.e=0,e;if(a.length=c--,f)for(--r;++a[c]>r;)a[c]=0,c--||(++e.e,a.unshift(1));for(c=a.length;!a[--c];a.pop());return e}function x(e,t,r){var n=i;return i=r,(e=new v(e)).c&&T(e,t,10),i=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 f=[],a=0;a<e.length;a+=n){for(var i=[],o=0;o<n;o++)i.push(e[a+("big"===r?o:n-o-1)]);f.push(i.map((function(e){return(e<16?"0":"")+e.toString(16)})).join(""))}return v(f.join(""),16)},v.config=function(){var e,t,f=0,h={},p=arguments,m=p[0],y="config",g=function(e,t,n){return!((r=e<t||e>n)||l(e)!=e&&0!==e)},v=m&&"object"==typeof m?function(){if(m.hasOwnProperty(t))return null!=(e=m[t])}:function(){if(p.length>f)return null!=(e=p[f++])};return v(t="DECIMAL_PLACES")&&(g(e,0,n)?a=0|e:w(e,t,y)),h[t]=a,v(t="ROUNDING_MODE")&&(g(e,0,8)?i=0|e:w(e,t,y)),h[t]=i,v(t="EXPONENTIAL_AT")&&(g(e,-n,n)?o=-(s=~~(e<0?-e:+e)):!r&&e&&g(e[0],-n,0)&&g(e[1],0,n)?(o=~~e[0],s=~~e[1]):w(e,t,y,1)),h[t]=[o,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]):w(e,t,y,1,1)),h[t]=[c,u],v(t="ERRORS")&&(e===!!e||1===e||0===e?(r=b=0,l=(d=!!e)?parseInt:parseFloat):w(e,t,y,0,0,1)),h[t]=d,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 x(this,0,2)},h.comparedTo=h.cmp=function(e,t){var r,n=this,f=n.c,a=(b=-b,e=new v(e,t)).c,i=n.s,o=e.s,s=n.e,c=e.e;if(!i||!o)return null;if(r=f&&!f[0],t=a&&!a[0],r||t)return r?t?0:-o:i;if(i!=o)return i;if(r=i<0,t=s==c,!f||!a)return t?0:!f^r?1:-1;if(!t)return s>c^r?1:-1;for(i=-1,o=(s=f.length)<(c=a.length)?s:c;++i<o;)if(f[i]!=a[i])return f[i]>a[i]^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,f=this.s,a=(b=2,e=new v(e,t)).c,i=e.e,o=e.s,s=f==o?1:-1;return(n||r&&r[0])&&(i||a&&a[0])?E(r,a,n-i,s,10):new v(f&&o&&(r?!a||r[0]!=a[0]:a)?r&&0==r[0]||!a?0*s:s/0:NaN)},h.equals=h.eq=function(e,t){return b=3,0===this.cmp(e,t)},h.floor=function(){return x(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,f,a,o=this,s=o.s;if(t=(b=8,e=new v(e,t)).s,!s||!t)return new v(NaN);if(s!=t)return e.s=-t,o.plus(e);var u=o.c,d=o.e,l=e.c,h=e.e;if(!d||!h){if(!u||!l)return u?(e.s=-t,e):new v(l?o:NaN);if(!u[0]||!l[0])return l[0]?(e.s=-t,e):new v(u[0]?o:3==i?-0:0)}if(u=u.slice(),s=d-h){for((r=(a=s<0)?(s=-s,u):(h=d,l)).reverse(),t=s;t--;r.push(0));r.reverse()}else for(f=((a=u.length<l.length)?u:l).length,s=t=0;t<f;t++)if(u[t]!=l[t]){a=u[t]<l[t];break}if(a&&(r=u,u=l,l=r,e.s=-e.s),(t=-((f=u.length)-l.length))>0)for(;t--;u[f++]=0);for(t=l.length;t>s;){if(u[--t]<l[t]){for(n=t;n&&!u[--n];u[n]=9);--u[n],u[t]+=10}u[t]-=l[t]}for(;0==u[--f];u.pop());for(;0==u[0];u.shift(),--h);return(h<c||!u[0])&&(u[0]||(e.s=3==i?-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,f=(b=9,e=new v(e,t)).c,o=r.s,s=e.s;return(t=!o||!s||f&&!f[0])||n&&!n[0]?new v(t?NaN:r):(r.s=e.s=1,t=1==e.cmp(r),r.s=o,e.s=s,t?new v(r):(o=a,s=i,a=0,i=1,r=r.div(e),a=o,i=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,f=n.s;if(t=(b=10,e=new v(e,t)).s,!f||!t)return new v(NaN);if(f!=t)return e.s=-t,n.minus(e);var a=n.e,i=n.c,o=e.e,s=e.c;if(!a||!o){if(!i||!s)return new v(f/0);if(!i[0]||!s[0])return s[0]?e:new v(i[0]?n:0*f)}if(i=i.slice(),f=a-o){for((r=f>0?(o=a,s):(f=-f,i)).reverse();f--;r.push(0));r.reverse()}for(i.length-s.length<0&&(r=s,s=i,i=r),f=s.length,t=0;f;t=(i[--f]=i[f]+s[f]+t)/10^0,i[f]%=10);for(t&&(i.unshift(t),++o>u&&(i=o=null)),f=i.length;0==i[--f];i.pop());return e.c=i,e.e=o,e},h.toPower=h.pow=function(e){var t=0*e==0?0|e:e,n=new v(this),a=new v(g);if(((r=e<-1e6||e>f)&&(t=1*e/0)||l(e)!=e&&0!==e&&!(t=NaN))&&!w(e,"exponent","pow")||!t)return new v(Math.pow(n.toS(),t));for(t=t<0?-t:t;1&t&&(a=a.times(n)),t>>=1;)n=n.times(n);return e<0?g.div(a):a},h.powm=function(e,t){return this.pow(e).mod(t)},h.round=function(e,t){return x(this,e=null==e||((r=e<0||e>n)||l(e)!=e)&&!w(e,"decimal places","round")?0:0|e,t=null==t||((r=t<0||t>8)||l(t)!=t&&0!==t)&&!w(t,"mode","round")?i:0|t)},h.squareRoot=h.sqrt=function(){var e,t,r,n,f=this,o=f.c,s=f.s,c=f.e,u=a,d=i,l=new v("0.5");if(1!==s||!o||!o[0])return new v(!s||s<0&&(!o||o[0])?NaN:o?f:1/0);for(s=Math.sqrt(f.toS()),i=1,0==s||s==1/0?((e=o.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)+(a+=4))<3&&(s=0),c=s;;)if(n=t,t=l.times(n.plus(f.div(n))),n.c.slice(0,s).join("")===t.c.slice(0,s).join("")){if(9!=(o=t.c)[s-=e&&t.e<r]||9!=o[s-1]||9!=o[s-2]||!(9==o[s-3]||e&&4==o[s-3])){if(!(o[c]||o[c-1]||o[c-2]||o[c-3]&&5!=o[c-3]||(o.length>c-2&&(o.length=c-2),t.times(t).eq(f)))){for(;o.length<c-3;)o.push(0);o[c-3]++}return i=d,T(t,a=u,10),t}if(e&&9==o[s-3]&&(n=t.round(u,0)).times(n).eq(f))return i=d,a=u,n;a+=4,s+=4,e=""}},h.times=h.mul=function(e,t){var r,n=this,f=n.c,a=(b=11,e=new v(e,t)).c,i=n.e,o=e.e,s=n.s;if(e.s=s==(t=e.s)?1:-1,!((i||f&&f[0])&&(o||a&&a[0])))return new v(!s||!t||f&&!f[0]&&!a||a&&!a[0]&&!f?NaN:f&&a?0*e.s:e.s/0);for(e.e=i+o,(s=f.length)<(t=a.length)&&(r=f,f=a,a=r,o=s,s=t,t=o),o=s+t,r=[];o--;r.push(0));for(i=t-1;i>-1;i--){for(t=0,o=s+i;o>i;t=r[o]+a[i]*f[o-i-1]+t,r[o--]=t%10|0,t=t/10|0);t&&(r[o]=(r[o]+t)%10)}for(t&&++e.e,!r[0]&&r.shift(),o=r.length;!r[--o];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 f=new t(4+n);n>0&&u.copy(f,4+(128&u[0]?1:0)),128&u[0]&&(f[4]=0),f[0]=n&255<<24,f[1]=n&255<<16,f[2]=65280&n,f[3]=255&n;var a=this.lt(0);if(a)for(var i=4;i<f.length;i++)f[i]=255-f[i];return f[4]=127&f[4]|(a?128:0),a&&f[f.length-1]++,f}e||(e={});var o={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"===o?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)||l(e)!=e&&0!==e)&&!w(e,"decimal places","toE"))&&this.c?this.c.length-1:0|e,1)},h.toFixed=h.toF=function(e){var t,f,a,i=this;return null==e||((r=e<0||e>n)||l(e)!=e&&0!==e)&&!w(e,"decimal places","toF")||(a=i.e+(0|e)),t=o,e=s,o=-(s=1/0),a==f?f=i.toS():(f=A(i,a),i.s<0&&i.c&&(i.c[0]?f.indexOf("-")<0&&(f="-"+f):f=f.replace(/^-/,""))),o=t,s=e,f},h.toFraction=h.toFr=function(e){var t,n,f,o,s,c,l,h=o=new v(g),p=f=new v("0"),m=this,y=m.c,_=u,E=a,A=i,T=new v(g);if(!y)return m.toS();for(l=T.e=y.length-m.e-1,(null==e||(!(b=12,c=new v(e)).s||(r=c.cmp(h)<0||!c.c)||d&&c.e<c.c.length-1)&&!w(e,"max denominator","toFr")||(e=c).cmp(T)>0)&&(e=l>0?T:h),u=1/0,c=new v(y.join("")),a=0,i=1;t=c.div(T),1!=(s=o.plus(t.times(p))).cmp(e);)o=p,p=s,h=f.plus(t.times(s=h)),f=s,T=c.minus(t.times(s=T)),c=s;return s=e.minus(o).div(p),f=f.plus(s.times(h)),o=o.plus(s.times(p)),f.s=h.s=m.s,a=2*l,i=A,n=h.div(p).minus(m).abs().cmp(f.div(o).minus(m).abs())<1?[h.toS(),p.toS()]:[f.toS(),o.toS()],u=_,a=E,n},h.toPrecision=h.toP=function(e){return null==e||((r=e<1||e>n)||l(e)!=e)&&!w(e,"precision","toP")?this.toS():A(this,0|--e,2)},h.toString=h.toS=function(e){var t,n,f,a=this,i=a.e;if(null===i)n=a.s?"Infinity":"NaN";else{if(e===t&&(i<=o||i>=s))return A(a,a.c.length-1,1);if(n=a.c.join(""),i<0){for(;++i;n="0"+n);n="0."+n}else if(f=n.length,i>0)if(++i>f)for(i-=f;i--;n+="0");else i<f&&(n=n.slice(0,i)+"."+n.slice(i));else if(t=n.charAt(0),f>1)n=t+"."+n.slice(1);else if("0"==t)return t;if(null!=e)if((r=!(e>=2&&e<65))||e!=(0|e)&&d)w(e,"base","toS");else if("0"==(n=_(n,0|e,10,a.s)))return n}return a.s<0?"-"+n:n},h.valueOf=function(){return this.toS()},e.exports=v}).call(this,r(6).Buffer)},function(e,t,r){var n=r(149);function f(e,t,r,n){for(var f=0,a=0,i=[],o=(1<<r)-1,s=0;s<e.length;++s){var c=e[s];if(c<0||c>>t!=0)return null;for(f=f<<t|c,a+=t;a>=r;)a-=r,i.push(f>>a&o)}if(n)a>0&&i.push(f<<r-a&o);else if(a>=t||f<<r-a&o)return null;return i}function a(e,t){var r=!1,a=n.decode(t,n.encodings.BECH32);if(null===a&&(a=n.decode(t,n.encodings.BECH32M),r=!0),null===a||a.hrp!==e||a.data.length<1||a.data[0]>16)return null;var i=f(a.data.slice(1),5,8,!1);return null===i||i.length<2||i.length>40||0===a.data[0]&&20!==i.length&&32!==i.length||0===a.data[0]&&r?null:0===a.data[0]||r?{version:a.data[0],program:i}:null}function i(e,t,r){var i=n.encodings.BECH32;t>0&&(i=n.encodings.BECH32M);var o=n.encode(e,[t].concat(f(r,8,5,!0)),i);return null===a(e,o)?null:o}var o="prod";e.exports={encode:i,decode:a,isValidAddress:function(e,t,r={}){if(!t.bech32Hrp||0===t.bech32Hrp.length)return!1;const{networkType:n=o}=r;var f;if("prod"===n||"testnet"===n)f=t.bech32Hrp[n];else{if(!t.bech32Hrp)return!1;f=t.bech32Hrp.prod.concat(t.bech32Hrp.testnet)}for(var s of f){var c=a(s,e);if(c)return i(s,c.version,c.program)===e.toLowerCase()}return!1}}},function(e,t,r){var n=r(532),f=r(286),a=r(107),i=r(248);function o(e){var t=function(e){try{var t=a.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],i=t[1];return"number"==typeof i&&f.crc32(r)==i}e.exports={isValidAddress:function(e,t,r={}){return o(e)||function(e,t,r){return i.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){var n,f;!function(a,i){"use strict";var o=Math.pow(2,-24),s=Math.pow(2,32),c=Math.pow(2,53);(f="function"==typeof(n={encode:function(e){var t,r=new ArrayBuffer(256),n=new DataView(r),f=0;function a(e){for(var a=r.byteLength,i=f+e;a<i;)a*=2;if(a!==r.byteLength){var o=n;r=new ArrayBuffer(a),n=new DataView(r);for(var s=f+3>>2,c=0;c<s;++c)n.setUint32(4*c,o.getUint32(4*c))}return t=e,n}function o(){f+=t}function u(e){o(a(1).setUint8(f,e))}function d(e){for(var t=a(e.length),r=0;r<e.length;++r)t.setUint8(f+r,e[r]);o()}function l(e,t){t<24?u(e<<5|t):t<256?(u(e<<5|24),u(t)):t<65536?(u(e<<5|25),function(e){o(a(2).setUint16(f,e))}(t)):t<4294967296?(u(e<<5|26),function(e){o(a(4).setUint32(f,e))}(t)):(u(e<<5|27),function(e){var t=e%s,r=(e-t)/s,n=a(8);n.setUint32(f,r),n.setUint32(f+4,t),o()}(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===i)return u(247);switch(typeof t){case"number":if(Math.floor(t)===t){if(0<=t&&t<=c)return l(0,t);if(-c<=t&&t<0)return l(1,-(t+1))}return u(251),function(e){o(a(8).setFloat64(f,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 l(3,n.length),d(n);default:var h;if(Array.isArray(t))for(l(4,h=t.length),r=0;r<h;++r)e(t[r]);else if(t instanceof Uint8Array)l(2,t.length),d(t);else{var p=Object.keys(t);for(l(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,f);for(var h=new ArrayBuffer(f),p=new DataView(h),b=0;b<f;++b)p.setUint8(b,n.getUint8(b));return h},decode:function(e,t,r){var n=new DataView(e),f=0;function a(e,t){return f+=t,e}function c(t){return a(new Uint8Array(e,f,t),t)}function u(){return a(n.getUint8(f),1)}function d(){return a(n.getUint16(f),2)}function l(){return a(n.getUint32(f),4)}function h(){return 255===n.getUint8(f)&&(f+=1,!0)}function p(e){if(e<24)return e;if(24===e)return u();if(25===e)return d();if(26===e)return l();if(27===e)return l()*s+l();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 m(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 i});var y=function e(){var s,l,y=u(),g=y>>5,v=31&y;if(7===g)switch(v){case 25:return function(){var e=new ArrayBuffer(4),t=new DataView(e),r=d(),n=32768&r,f=31744&r,a=1023&r;if(31744===f)f=261120;else if(0!==f)f+=114688;else if(0!==a)return a*o;return t.setUint32(0,n<<16|f<<13|a<<13),t.getFloat32(0)}();case 26:return a(n.getFloat32(f),4);case 27:return a(n.getFloat64(f),8)}if((l=p(v))<0&&(g<2||6<g))throw"Invalid length";switch(g){case 0:return l;case 1:return-1-l;case 2:if(l<0){for(var w=[],_=0;(l=b(g))>=0;)_+=l,w.push(c(l));var E=new Uint8Array(_),A=0;for(s=0;s<w.length;++s)E.set(w[s],A),A+=w[s].length;return E}return c(l);case 3:var T=[];if(l<0)for(;(l=b(g))>=0;)m(T,l);else m(T,l);return String.fromCharCode.apply(null,T);case 4:var x;if(l<0)for(x=[];!h();)x.push(e());else for(x=new Array(l),s=0;s<l;++s)x[s]=e();return x;case 5:var S={};for(s=0;s<l||l<0&&!h();++s){S[e()]=e()}return S;case 6:return t(e(),l);case 7:switch(l){case 20:return!1;case 21:return!0;case 22:return null;case 23:return i;default:return r(l)}}}();if(f!==e.byteLength)throw"Remaining bytes";return y}})?n.call(t,r,t,e):n)===i||(e.exports=f)}()},function(e,t,r){var n=r(30),f=r(534),a="prod",i=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95}$"),o=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{106}$");e.exports={isValidAddress:function(e,t,r={}){const{networkType:s=a}=r;var c="standard";if(!i.test(e)){if(!o.test(e))return!1;c="integrated"}var u=f.decode(e);return!!u&&(!!function(e,t,r,n){var f=t.addressTypes;"integrated"==n&&(f=t.iAddressTypes);var a=parseInt(e.substr(0,2),16).toString();switch(r){case"prod":return f.prod.indexOf(a)>=0;case"testnet":return f.testnet.indexOf(a)>=0;case"stagenet":return f.stagenet.indexOf(a)>=0;case"both":return f.prod.indexOf(a)>=0||f.testnet.indexOf(a)>=0||f.stagenet.indexOf(a)>=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(535).JSBigInt,f=function(){for(var e={},t="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",r=[],f=0;f<t.length;f++)r.push(t.charCodeAt(f));var a=[0,2,3,5,6,7,9,10,11],i=r.length,o=11,s=new n(2).pow(64);return e.encode_block=function(e,t,f){if(e.length<1||e.length>o)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),f=0;switch(9-e.length){case 1:t=t.add(e[f++]);case 2:t=t.multiply(r).add(e[f++]);case 3:t=t.multiply(r).add(e[f++]);case 4:t=t.multiply(r).add(e[f++]);case 5:t=t.multiply(r).add(e[f++]);case 6:t=t.multiply(r).add(e[f++]);case 7:t=t.multiply(r).add(e[f++]);case 8:t=t.multiply(r).add(e[f++]);break;default:throw"Impossible condition"}return t}(e),c=a[e.length]-1;1===s.compare(0);){var u=s.divRem(i),d=u[1];s=u[0],t[f+c]=r[d.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 f,i=Math.floor(n.length/8),s=n.length%8,c=i*o+a[s],u=new Uint8Array(c);for(f=0;f<c;++f)u[f]=r[0];for(f=0;f<i;f++)u=e.encode_block(n.subarray(8*f,8*f+8),u,f*o);return s>0&&(u=e.encode_block(n.subarray(8*i,8*i+s),u,i*o)),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,f){if(e.length<1||e.length>o)throw"Invalid block length: "+e.length;var c=a.indexOf(e.length);if(c<=0)throw"Invalid block size";for(var u=new n(0),d=new n(1),l=e.length-1;l>=0;l--){var h=r.indexOf(e[l]);if(h<0)throw"Invalid symbol";var p=d.multiply(h).add(u);if(1===p.compare(s))throw"Overflow";u=p,d=d.multiply(i)}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 f=new n(2).pow(8),a=t-1;a>=0;a--)r[a]=e.remainder(f).toJSValue(),e=e.divide(f);return r}(u,c),f),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/o),n=t.length%o,f=a.indexOf(n);if(f<0)throw"Invalid encoded length";for(var i=new Uint8Array(8*r+f),s=0;s<r;s++)i=e.decode_block(t.subarray(s*o,s*o+o),i,8*s);return n>0&&(i=e.decode_block(t.subarray(r*o,r*o+n),i,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("")}(i)},e}();e.exports=f},function(e,t,r){!function(e){"use strict";var t={};function r(e,n,a){if(a!==t)return e instanceof r?e:void 0===e?f: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 f=new r([],0,t);r.ZERO=f;var a=new r([1],1,t);r.ONE=a;var i=new r(a._d,-1,t);r.M_ONE=i,r._0=f,r._1=a,r.small=[f,a,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 f=this._d[n].toString();f.length<7;)f="0"+f;t+=f}return t}var a=r.digits;e=r.small[e];for(var i,o=this._s,s=this.abs(),c=[];0!==s._s;){var u=s.divRem(e);s=u[0],i=u[1],c.push(a[i.valueOf()])}return(o<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 a;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,f){var a=(f=+f)<0,i=r.length+f;e=(a?r:n).length,f=(f=Math.abs(f))>=e?f-e+a:0;var o=new Array(f+1).join("0"),s=r+n;return(t||"")+(a?s=o+s:s+=o).substr(0,i+=a?o.length:0)+(i<s.length?"."+s.substr(i):"")}))),a=void 0===n?"0[xcb]":16==n?"0x":8==n?"0c":2==n?"0b":"";var i=new RegExp("^([+\\-]?)("+a+")?([0-9a-z]*)(?:\\.\\d*)?$","i").exec(e);if(i){var o=i[1]||"+",s=i[2]||"",c=i[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 f;if(o="-"===o?-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,o,t)}u=f;n=r.small[n];for(var d=r.small,l=0;l<c.length;l++)u=u.multiply(n).add(d[parseInt(c[l],36)]);return new r(u._d,o,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 f,a=this._d,i=e._d,o=a.length,s=i.length,c=new Array(Math.max(o,s)+1),u=Math.min(o,s),d=0,l=0;l<u;l++)f=a[l]+i[l]+d,c[l]=f%n,d=f/n|0;for(s>o&&(a=i,o=s),l=u;d&&l<o;l++)f=a[l]+d,c[l]=f%n,d=f/n|0;for(d&&(c[l]=d);l<o;l++)c[l]=a[l];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 a=this;this._s<0&&(a=new r(e._d,1,t),e=new r(this._d,1,t));var i=a.compareAbs(e);if(0===i)return f;if(i<0){var o=e;e=a,a=o}var s,c,u=a._d,d=e._d,l=u.length,h=d.length,p=new Array(l),b=0;for(s=0;s<h;s++)(c=u[s]-b-d[s])<0?(c+=n,b=1):b=0,p[s]=c;for(s=h;s<l;s++){if(!((c=u[s]-b)<0)){p[s++]=c;break}c+=n,p[s]=c}for(;s<l;s++)p[s]=u[s];return new r(p,i,t)},function(){function e(e,f){for(var a=e._d,i=a.slice(),o=0;;){var s=(a[o]||0)+1;if(i[o]=s%n,s<=9999999)break;++o}return new r(i,f,t)}function f(e,f){for(var a=e._d,i=a.slice(),o=0;;){var s=(a[o]||0)-1;if(!(s<0)){i[o]=s;break}i[o]=s+n,++o}return new r(i,f,t)}r.prototype.next=function(){switch(this._s){case 0:return a;case-1:return f(this,-1);default:return e(this,1)}},r.prototype.prev=function(){switch(this._s){case 0:return i;case-1:return e(this,-1);default:return f(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 f=this._d,a=e._d,i=t-1;i>=0;i--)if(f[i]!==a[i])return f[i]<a[i]?-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===a||this===i||1===this._d.length&&1===this._d[0]},r.prototype.multiply=function(e){if(0===this._s)return f;if(0===(e=r(e))._s)return f;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 a,i=this._d.length>=e._d.length,o=(i?this:e)._d,s=(i?e:this)._d,c=o.length,u=s.length,d=c+u,l=new Array(d);for(a=0;a<d;a++)l[a]=0;for(a=0;a<u;a++){for(var h,p=0,b=s[a],m=c+a,y=a;y<m;y++)p=(h=l[y]+b*o[y-a]+p)/n|0,l[y]=h%n|0;p&&(p=(h=l[y]+p)/n|0,l[y]=h%n)}return new r(l,this._s*e._s,t)},r.prototype.multiplySingleDigit=function(e){if(0===e||0===this._s)return f;if(1===e)return this;var a;if(1===this._d.length)return new r((a=this._d[0]*e)>=n?[a%n|0,a/n|0]:[a],1,t);if(2===e)return this.add(this);if(this.isUnit())return new r([e],1,t);for(var i=this._d,o=i.length,s=o+1,c=new Array(s),u=0;u<s;u++)c[u]=0;for(var d=0,l=0;l<o;l++)d=(a=e*i[l]+d)/n|0,c[l]=a%n|0;return d&&(c[l]=d),new r(c,1,t)},r.prototype.square=function(){if(0===this._s)return f;if(this.isUnit())return a;var e,i,o,s,c=this._d,u=c.length,d=new Array(u+u+1);for(s=0;s<u;s++)o=2*s,i=(e=c[s]*c[s])/n|0,d[o]=e%n,d[o+1]=i;for(s=0;s<u;s++){i=0,o=2*s+1;for(var l=s+1;l<u;l++,o++)i=(e=c[l]*c[s]*2+d[o]+i)/n|0,d[o]=e%n;var h=i+d[o=u+s];i=h/n|0,d[o]=h%n,d[o+1]+=i}return new r(d,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[f,f];if(1===e._d.length)return this.divRemSmall(e._s*e._d[0]);switch(this.compareAbs(e)){case 0:return[this._s===e._s?a:i,f];case-1:return[f,this]}for(var o,s=this._s*e._s,c=e.abs(),u=this._d,d=u.length,l=(e._d.length,[]),h=new r([],0,t);d;)if(h._d.unshift(u[--d]),(h=new r(h._d,1,t)).compareAbs(e)<0)l.push(0);else{if(0===h._s)o=0;else{var p=h._d.length,b=c._d.length,m=h._d[p-1]*n+h._d[p-2],y=c._d[b-1]*n+c._d[b-2];h._d.length>c._d.length&&(m=(m+1)*n),o=Math.ceil(m/y)}do{var g=c.multiplySingleDigit(o);if(g.compareAbs(h)<=0)break;o--}while(o);if(l.push(o),o){var v=h.subtract(g);h._d=v._d.slice()}}return[new r(l.reverse(),s,t),new r(h._d,this._s,t)]},r.prototype.divRemSmall=function(e){var a;if(0===(e=+e))throw new Error("Divide by zero");var i=e<0?-1:1,o=this._s*i;if((e=Math.abs(e))<1||e>=n)throw new Error("Argument out of range");if(0===this._s)return[f,f];if(1===e||-1===e)return[1===o?this.abs():new r(this._d,o,t),f];if(1===this._d.length){var s=new r([this._d[0]/e|0],1,t);return a=new r([this._d[0]%e|0],1,t),o<0&&(s=s.negate()),this._s<0&&(a=a.negate()),[s,a]}for(var c,u=this._d.slice(),d=new Array(u.length),l=0,h=0,p=0;u.length;){if((l=l*n+u[u.length-1])<e)d[p++]=0,u.pop(),h=n*h+l;else h=l-e*(c=0===l?0:l/e|0),d[p++]=c,c?(u.pop(),l=h):u.pop()}return a=new r([h],1,t),this._s<0&&(a=a.negate()),[new r(d.reverse(),o,t),a]},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(o))throw new Error("exponent too large in BigInteger.exp10");if(0===this._s)return f;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 f;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 a;if(e._s<0){if(0===this._s)throw new Error("Divide by zero");return f}if(0===this._s)return f;if(e.isUnit())return this;if(e.compareAbs(o)>0)throw new Error("exponent too large in BigInteger.pow");for(var t=this,n=a,i=r.small[2];e.isPositive();){if(e.isOdd()&&(n=n.multiply(t),e.isUnit()))return n;t=t.square(),e=e.quotient(i)}return n},r.prototype.modPow=function(e,t){for(var n=a,f=this;e.isPositive();)e.isOdd()&&(n=n.multiply(f).remainder(t)),(e=e.quotient(r.small[2])).isPositive()&&(f=f.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 f=Math.ceil(30/7),a=this._d.slice(e-f);return Math.log(new r(a,1,t).valueOf())+(e-f)*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 o=r(2147483647);r.MAX_EXP=o,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,f){return e.call(r(t),r(n),r(f))}}!function(){var f,a,i="toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(","),o="compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(","),s=["modPow"];for(f=0;f<i.length;f++)r[a=i[f]]=e(r.prototype[a]);for(f=0;f<o.length;f++)r[a=o[f]]=t(r.prototype[a]);for(f=0;f<s.length;f++)r[a=s[f]]=n(r.prototype[a]);r.exp10=function(e,t){return r(e).exp10(t)}}()}(),e.JSBigInt=r}(t)},function(e,t,r){var n=r(30),f="13456789abcdefghijkmnopqrstuwxyz",a=r(147)(f),i=new RegExp("^(xrb|nano)_(["+f+"]{60})$");e.exports={isValidAddress:function(e){return!!i.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=a.decode(i.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(30),f=r(538);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),a=n.blake2b(t,32).slice(0,12);return!!f(a,r)}}},function(e,t,r){(function(e,r){var n="__lodash_hash_undefined__",f=9007199254740991,a="[object Arguments]",i="[object Array]",o="[object Boolean]",s="[object Date]",c="[object Error]",u="[object Function]",d="[object Map]",l="[object Number]",h="[object Object]",p="[object Promise]",b="[object RegExp]",m="[object Set]",y="[object String]",g="[object Symbol]",v="[object WeakMap]",w="[object ArrayBuffer]",_="[object DataView]",E=/^\[object .+?Constructor\]$/,A=/^(?:0|[1-9]\d*)$/,T={};T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T[a]=T[i]=T[w]=T[o]=T[_]=T[s]=T[c]=T[u]=T[d]=T[l]=T[h]=T[b]=T[m]=T[y]=T[v]=!1;var x="object"==typeof e&&e&&e.Object===Object&&e,S="object"==typeof self&&self&&self.Object===Object&&self,C=x||S||Function("return this")(),O=t&&!t.nodeType&&t,k=O&&"object"==typeof r&&r&&!r.nodeType&&r,P=k&&k.exports===O,R=P&&x.process,M=function(){try{return R&&R.binding&&R.binding("util")}catch(e){}}(),D=M&&M.isTypedArray;function N(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 B(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function I(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,H=Object.prototype,z=C["__core-js_shared__"],V=q.toString,K=H.hasOwnProperty,G=(F=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||""))?"Symbol(src)_1."+F:"",$=H.toString,W=RegExp("^"+V.call(K).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Y=P?C.Buffer:void 0,J=C.Symbol,X=C.Uint8Array,Z=H.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))}),fe=Me(C,"DataView"),ae=Me(C,"Map"),ie=Me(C,"Promise"),oe=Me(C,"Set"),se=Me(C,"WeakMap"),ce=Me(Object,"create"),ue=Ie(fe),de=Ie(ae),le=Ie(ie),he=Ie(oe),pe=Ie(se),be=J?J.prototype:void 0,me=be?be.valueOf:void 0;function ye(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 we(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new ve;++t<r;)this.add(e[t])}function _e(e){var t=this.__data__=new ge(e);this.size=t.size}function Ee(e,t){var r=Le(e),n=!r&&je(e),f=!r&&!n&&Ue(e),a=!r&&!n&&!f&&Ke(e),i=r||n||f||a,o=i?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],s=o.length;for(var c in e)!t&&!K.call(e,c)||i&&("length"==c||f&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Be(c,s))||o.push(c);return o}function Ae(e,t){for(var r=e.length;r--;)if(Fe(e[r][0],t))return r;return-1}function Te(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ee&&ee in Object(e)?function(e){var t=K.call(e,ee),r=e[ee];try{e[ee]=void 0;var n=!0}catch(e){}var f=$.call(e);n&&(t?e[ee]=r:delete e[ee]);return f}(e):function(e){return $.call(e)}(e)}function xe(e){return Ve(e)&&Te(e)==a}function Se(e,t,r,n,f){return e===t||(null==e||null==t||!Ve(e)&&!Ve(t)?e!=e&&t!=t:function(e,t,r,n,f,u){var p=Le(e),v=Le(t),E=p?i:Ne(e),A=v?i:Ne(t),T=(E=E==a?h:E)==h,x=(A=A==a?h:A)==h,S=E==A;if(S&&Ue(e)){if(!Ue(t))return!1;p=!0,T=!1}if(S&&!T)return u||(u=new _e),p||Ke(e)?ke(e,t,r,n,f,u):function(e,t,r,n,f,a,i){switch(r){case _:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!a(new X(e),new X(t)));case o:case s:case l:return Fe(+e,+t);case c:return e.name==t.name&&e.message==t.message;case b:case y:return e==t+"";case d:var u=B;case m:var h=1&n;if(u||(u=I),e.size!=t.size&&!h)return!1;var p=i.get(e);if(p)return p==t;n|=2,i.set(e,t);var v=ke(u(e),u(t),n,f,a,i);return i.delete(e),v;case g:if(me)return me.call(e)==me.call(t)}return!1}(e,t,E,r,n,f,u);if(!(1&r)){var C=T&&K.call(e,"__wrapped__"),O=x&&K.call(t,"__wrapped__");if(C||O){var k=C?e.value():e,P=O?t.value():t;return u||(u=new _e),f(k,P,r,n,u)}}if(!S)return!1;return u||(u=new _e),function(e,t,r,n,f,a){var i=1&r,o=Pe(e),s=o.length,c=Pe(t).length;if(s!=c&&!i)return!1;var u=s;for(;u--;){var d=o[u];if(!(i?d in t:K.call(t,d)))return!1}var l=a.get(e);if(l&&a.get(t))return l==t;var h=!0;a.set(e,t),a.set(t,e);var p=i;for(;++u<s;){var b=e[d=o[u]],m=t[d];if(n)var y=i?n(m,b,d,t,e,a):n(b,m,d,e,t,a);if(!(void 0===y?b===m||f(b,m,r,n,a):y)){h=!1;break}p||(p="constructor"==d)}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 a.delete(e),a.delete(t),h}(e,t,r,n,f,u)}(e,t,r,n,Se,f))}function Ce(e){return!(!ze(e)||function(e){return!!G&&G in e}(e))&&(qe(e)?W:E).test(Ie(e))}function Oe(e){if(r=(t=e)&&t.constructor,n="function"==typeof r&&r.prototype||H,t!==n)return ne(e);var t,r,n,f=[];for(var a in Object(e))K.call(e,a)&&"constructor"!=a&&f.push(a);return f}function ke(e,t,r,n,f,a){var i=1&r,o=e.length,s=t.length;if(o!=s&&!(i&&s>o))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var u=-1,d=!0,l=2&r?new we:void 0;for(a.set(e,t),a.set(t,e);++u<o;){var h=e[u],p=t[u];if(n)var b=i?n(p,h,u,t,e,a):n(h,p,u,e,t,a);if(void 0!==b){if(b)continue;d=!1;break}if(l){if(!N(t,(function(e,t){if(i=t,!l.has(i)&&(h===e||f(h,e,r,n,a)))return l.push(t);var i}))){d=!1;break}}else if(h!==p&&!f(h,p,r,n,a)){d=!1;break}}return a.delete(e),a.delete(t),d}function Pe(e){return function(e,t,r){var n=t(e);return Le(e)?n:function(e,t){for(var r=-1,n=t.length,f=e.length;++r<n;)e[f+r]=t[r];return e}(n,r(e))}(e,Ge,De)}function Re(e,t){var r,n,f=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?f["string"==typeof t?"string":"hash"]:f.map}function Me(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return Ce(r)?r:void 0}ye.prototype.clear=function(){this.__data__=ce?ce(null):{},this.size=0},ye.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ye.prototype.get=function(e){var t=this.__data__;if(ce){var r=t[e];return r===n?void 0:r}return K.call(t,e)?t[e]:void 0},ye.prototype.has=function(e){var t=this.__data__;return ce?void 0!==t[e]:K.call(t,e)},ye.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 ye,map:new(ae||ge),string:new ye}},ve.prototype.delete=function(e){var t=Re(this,e).delete(e);return this.size-=t?1:0,t},ve.prototype.get=function(e){return Re(this,e).get(e)},ve.prototype.has=function(e){return Re(this,e).has(e)},ve.prototype.set=function(e,t){var r=Re(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},we.prototype.add=we.prototype.push=function(e){return this.__data__.set(e,n),this},we.prototype.has=function(e){return this.__data__.has(e)},_e.prototype.clear=function(){this.__data__=new ge,this.size=0},_e.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},_e.prototype.get=function(e){return this.__data__.get(e)},_e.prototype.has=function(e){return this.__data__.has(e)},_e.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ge){var n=r.__data__;if(!ae||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 De=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,f=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[f++]=i)}return a}(te(e),(function(t){return Z.call(e,t)})))}:function(){return[]},Ne=Te;function Be(e,t){return!!(t=null==t?f:t)&&("number"==typeof e||A.test(e))&&e>-1&&e%1==0&&e<t}function Ie(e){if(null!=e){try{return V.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fe(e,t){return e===t||e!=e&&t!=t}(fe&&Ne(new fe(new ArrayBuffer(1)))!=_||ae&&Ne(new ae)!=d||ie&&Ne(ie.resolve())!=p||oe&&Ne(new oe)!=m||se&&Ne(new se)!=v)&&(Ne=function(e){var t=Te(e),r=t==h?e.constructor:void 0,n=r?Ie(r):"";if(n)switch(n){case ue:return _;case de:return d;case le:return p;case he:return m;case pe:return v}return t});var je=xe(function(){return arguments}())?xe:function(e){return Ve(e)&&K.call(e,"callee")&&!Z.call(e,"callee")},Le=Array.isArray;var Ue=re||function(){return!1};function qe(e){if(!ze(e))return!1;var t=Te(e);return t==u||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function He(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=f}function ze(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ve(e){return null!=e&&"object"==typeof e}var Ke=D?function(e){return function(t){return e(t)}}(D):function(e){return Ve(e)&&He(e.length)&&!!T[Te(e)]};function Ge(e){return null!=(t=e)&&He(t.length)&&!qe(t)?Ee(e):Oe(e);var t}r.exports=function(e,t){return Se(e,t)}}).call(this,r(21),r(97)(e))},function(e,t,r){var n=r(30);e.exports={isValidAddress:function(e,t,r){var f=r?r.networkType:"",a=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,f=t.slice(r);t=t.slice(0,r);var a=n.sha256(n.byteArray2hexStr(t)),i=n.hexStr2byteArray(n.sha256(a)).slice(0,4);return f[0]===i[0]&&f[1]===i[1]&&f[2]===i[2]&&f[3]===i[3]&&t}(e);return!!a&&(21===a.length&&function(e,t){var r=t||"prod";return"prod"!==r&&"testnet"!==r&&(r="prod"),e.addressTypes[r][0]}(t,f)===a[0])}}},function(e,t,r){(function(t){var n=r(30);e.exports={isValidAddress:function(e){var r=e.toString().toUpperCase().replace(/-/g,"");if(!r||40!==r.length)return!1;var f=n.toHex(n.base32.b32decode(r));return n.keccak256Checksum(t.from(f.slice(0,42),"hex"))===f.slice(42)}}}).call(this,r(6).Buffer)},function(e,t,r){(function(t){var n=r(30),f=new RegExp("^[0-9]{1,20}L$");e.exports={isValidAddress:function(e){return!!f.test(e)&&this.verifyAddress(e)},verifyAddress:function(e){var r=e.substring(0,e.length-1),f=n.bigNumberToBuffer(r);return t.from(f).slice(0,8).equals(f)}}}).call(this,r(6).Buffer)},function(e,t,r){var n=r(30),f=r(149),a=r(148);e.exports={isValidAddress:function(e,t,r){return function(e,t,r){var a,i=r?r.networkType:"",o="bitcoincash",s=new RegExp(t.regexp),c=e.split(":");if(1===c.length)a=e;else{if("bitcoincash"!==c[0])return!1;a=c[1]}if(!s.test(a))return!1;if(a.toLowerCase()!=a&&a.toUpperCase()!=a)return!1;var u=n.base32.b32decode(a);"testnet"===i&&(o="bchtest");try{if(f.verifyChecksum(o,u,f.encodings.BECH32))return!1}catch(e){return!1}return!0}(e,t,r)||a.isValidAddress(e,t,r)}}},function(e,t,r){var n=r(147),f=r(286),a=r(30),i="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",o=n(i),s=new RegExp("^["+i+"]{56}$");e.exports={isValidAddress:function(e){return!!s.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t,r=o.decode(e);return 48===r[0]&&a.numberToHex((255&(t=f.crc16xmodem(r.slice(0,-2))))<<8|t>>8&255,4)===a.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(107),f=r(30),a=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=f.hexStr2byteArray(f.sha256x2(f.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(a.length),!0)}catch(e){return!1}}}},function(e,t,r){var n=r(148),f=r(247);e.exports={isValidAddress:function(e,t,r){if(r){if("erc20"===r.chainType)return f.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)||f.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){const n=r(30);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),f=n.byteArray2hexStr(t.slice(-4)).toString("HEX");return n.sha512_256(n.byteArray2hexStr(r)).substr(-8)===f}}}},function(e,t,r){const n=r(30),f=[{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),a=n.byteArray2hexStr(r.slice(0,1)),i=r.slice(1),o=f.find((e=>e.addressLength===i.length));if(!o)throw new Erorr("Invalid address length");const s=n.byteArray2hexStr(i.slice(0,o.accountIndexLength)),c=n.byteArray2hexStr(i.slice(-o.checkSumLength));return n.blake2b(t+a+s,64).substr(0,2*o.checkSumLength).toUpperCase()==c}catch(e){return!1}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=[{code:"AED",number:"784",digits:2,currency:"UAE Dirham",countries:["United Arab Emirates (The)"]},{code:"AFN",number:"971",digits:2,currency:"Afghani",countries:["Afghanistan"]},{code:"ALL",number:"008",digits:2,currency:"Lek",countries:["Albania"]},{code:"AMD",number:"051",digits:2,currency:"Armenian Dram",countries:["Armenia"]},{code:"ANG",number:"532",digits:2,currency:"Netherlands Antillean Guilder",countries:["Curaçao","Sint Maarten (Dutch Part)"]},{code:"AOA",number:"973",digits:2,currency:"Kwanza",countries:["Angola"]},{code:"ARS",number:"032",digits:2,currency:"Argentine Peso",countries:["Argentina"]},{code:"AUD",number:"036",digits:2,currency:"Australian Dollar",countries:["Australia","Christmas Island","Cocos (Keeling) Islands (The)","Heard Island and Mcdonald Islands","Kiribati","Nauru","Norfolk Island","Tuvalu"]},{code:"AWG",number:"533",digits:2,currency:"Aruban Florin",countries:["Aruba"]},{code:"AZN",number:"944",digits:2,currency:"Azerbaijan Manat",countries:["Azerbaijan"]},{code:"BAM",number:"977",digits:2,currency:"Convertible Mark",countries:["Bosnia and Herzegovina"]},{code:"BBD",number:"052",digits:2,currency:"Barbados Dollar",countries:["Barbados"]},{code:"BDT",number:"050",digits:2,currency:"Taka",countries:["Bangladesh"]},{code:"BGN",number:"975",digits:2,currency:"Bulgarian Lev",countries:["Bulgaria"]},{code:"BHD",number:"048",digits:3,currency:"Bahraini Dinar",countries:["Bahrain"]},{code:"BIF",number:"108",digits:0,currency:"Burundi Franc",countries:["Burundi"]},{code:"BMD",number:"060",digits:2,currency:"Bermudian Dollar",countries:["Bermuda"]},{code:"BND",number:"096",digits:2,currency:"Brunei Dollar",countries:["Brunei Darussalam"]},{code:"BOB",number:"068",digits:2,currency:"Boliviano",countries:["Bolivia (Plurinational State Of)"]},{code:"BOV",number:"984",digits:2,currency:"Mvdol",countries:["Bolivia (Plurinational State Of)"]},{code:"BRL",number:"986",digits:2,currency:"Brazilian Real",countries:["Brazil"]},{code:"BSD",number:"044",digits:2,currency:"Bahamian Dollar",countries:["Bahamas (The)"]},{code:"BTN",number:"064",digits:2,currency:"Ngultrum",countries:["Bhutan"]},{code:"BWP",number:"072",digits:2,currency:"Pula",countries:["Botswana"]},{code:"BYN",number:"933",digits:2,currency:"Belarusian Ruble",countries:["Belarus"]},{code:"BZD",number:"084",digits:2,currency:"Belize Dollar",countries:["Belize"]},{code:"CAD",number:"124",digits:2,currency:"Canadian Dollar",countries:["Canada"]},{code:"CDF",number:"976",digits:2,currency:"Congolese Franc",countries:["Congo (The Democratic Republic of The)"]},{code:"CHE",number:"947",digits:2,currency:"WIR Euro",countries:["Switzerland"]},{code:"CHF",number:"756",digits:2,currency:"Swiss Franc",countries:["Liechtenstein","Switzerland"]},{code:"CHW",number:"948",digits:2,currency:"WIR Franc",countries:["Switzerland"]},{code:"CLF",number:"990",digits:4,currency:"Unidad de Fomento",countries:["Chile"]},{code:"CLP",number:"152",digits:0,currency:"Chilean Peso",countries:["Chile"]},{code:"CNY",number:"156",digits:2,currency:"Yuan Renminbi",countries:["China"]},{code:"COP",number:"170",digits:2,currency:"Colombian Peso",countries:["Colombia"]},{code:"COU",number:"970",digits:2,currency:"Unidad de Valor Real",countries:["Colombia"]},{code:"CRC",number:"188",digits:2,currency:"Costa Rican Colon",countries:["Costa Rica"]},{code:"CUC",number:"931",digits:2,currency:"Peso Convertible",countries:["Cuba"]},{code:"CUP",number:"192",digits:2,currency:"Cuban Peso",countries:["Cuba"]},{code:"CVE",number:"132",digits:2,currency:"Cabo Verde Escudo",countries:["Cabo Verde"]},{code:"CZK",number:"203",digits:2,currency:"Czech Koruna",countries:["Czechia"]},{code:"DJF",number:"262",digits:0,currency:"Djibouti Franc",countries:["Djibouti"]},{code:"DKK",number:"208",digits:2,currency:"Danish Krone",countries:["Denmark","Faroe Islands (The)","Greenland"]},{code:"DOP",number:"214",digits:2,currency:"Dominican Peso",countries:["Dominican Republic (The)"]},{code:"DZD",number:"012",digits:2,currency:"Algerian Dinar",countries:["Algeria"]},{code:"EGP",number:"818",digits:2,currency:"Egyptian Pound",countries:["Egypt"]},{code:"ERN",number:"232",digits:2,currency:"Nakfa",countries:["Eritrea"]},{code:"ETB",number:"230",digits:2,currency:"Ethiopian Birr",countries:["Ethiopia"]},{code:"EUR",number:"978",digits:2,currency:"Euro",countries:["Åland Islands","Andorra","Austria","Belgium","Cyprus","Estonia","European Union","Finland","France","French Guiana","French Southern Territories (The)","Germany","Greece","Guadeloupe","Holy See (The)","Ireland","Italy","Latvia","Lithuania","Luxembourg","Malta","Martinique","Mayotte","Monaco","Montenegro","Netherlands (The)","Portugal","Réunion","Saint Barthélemy","Saint Martin (French Part)","Saint Pierre and Miquelon","San Marino","Slovakia","Slovenia","Spain"]},{code:"FJD",number:"242",digits:2,currency:"Fiji Dollar",countries:["Fiji"]},{code:"FKP",number:"238",digits:2,currency:"Falkland Islands Pound",countries:["Falkland Islands (The) [Malvinas]"]},{code:"GBP",number:"826",digits:2,currency:"Pound Sterling",countries:["Guernsey","Isle of Man","Jersey","United Kingdom of Great Britain and Northern Ireland (The)"]},{code:"GEL",number:"981",digits:2,currency:"Lari",countries:["Georgia"]},{code:"GHS",number:"936",digits:2,currency:"Ghana Cedi",countries:["Ghana"]},{code:"GIP",number:"292",digits:2,currency:"Gibraltar Pound",countries:["Gibraltar"]},{code:"GMD",number:"270",digits:2,currency:"Dalasi",countries:["Gambia (The)"]},{code:"GNF",number:"324",digits:0,currency:"Guinean Franc",countries:["Guinea"]},{code:"GTQ",number:"320",digits:2,currency:"Quetzal",countries:["Guatemala"]},{code:"GYD",number:"328",digits:2,currency:"Guyana Dollar",countries:["Guyana"]},{code:"HKD",number:"344",digits:2,currency:"Hong Kong Dollar",countries:["Hong Kong"]},{code:"HNL",number:"340",digits:2,currency:"Lempira",countries:["Honduras"]},{code:"HRK",number:"191",digits:2,currency:"Kuna",countries:["Croatia"]},{code:"HTG",number:"332",digits:2,currency:"Gourde",countries:["Haiti"]},{code:"HUF",number:"348",digits:2,currency:"Forint",countries:["Hungary"]},{code:"IDR",number:"360",digits:2,currency:"Rupiah",countries:["Indonesia"]},{code:"ILS",number:"376",digits:2,currency:"New Israeli Sheqel",countries:["Israel"]},{code:"INR",number:"356",digits:2,currency:"Indian Rupee",countries:["Bhutan","India"]},{code:"IQD",number:"368",digits:3,currency:"Iraqi Dinar",countries:["Iraq"]},{code:"IRR",number:"364",digits:2,currency:"Iranian Rial",countries:["Iran (Islamic Republic Of)"]},{code:"ISK",number:"352",digits:0,currency:"Iceland Krona",countries:["Iceland"]},{code:"JMD",number:"388",digits:2,currency:"Jamaican Dollar",countries:["Jamaica"]},{code:"JOD",number:"400",digits:3,currency:"Jordanian Dinar",countries:["Jordan"]},{code:"JPY",number:"392",digits:0,currency:"Yen",countries:["Japan"]},{code:"KES",number:"404",digits:2,currency:"Kenyan Shilling",countries:["Kenya"]},{code:"KGS",number:"417",digits:2,currency:"Som",countries:["Kyrgyzstan"]},{code:"KHR",number:"116",digits:2,currency:"Riel",countries:["Cambodia"]},{code:"KMF",number:"174",digits:0,currency:"Comorian Franc ",countries:["Comoros (The)"]},{code:"KPW",number:"408",digits:2,currency:"North Korean Won",countries:["Korea (The Democratic People’s Republic Of)"]},{code:"KRW",number:"410",digits:0,currency:"Won",countries:["Korea (The Republic Of)"]},{code:"KWD",number:"414",digits:3,currency:"Kuwaiti Dinar",countries:["Kuwait"]},{code:"KYD",number:"136",digits:2,currency:"Cayman Islands Dollar",countries:["Cayman Islands (The)"]},{code:"KZT",number:"398",digits:2,currency:"Tenge",countries:["Kazakhstan"]},{code:"LAK",number:"418",digits:2,currency:"Lao Kip",countries:["Lao People’s Democratic Republic (The)"]},{code:"LBP",number:"422",digits:2,currency:"Lebanese Pound",countries:["Lebanon"]},{code:"LKR",number:"144",digits:2,currency:"Sri Lanka Rupee",countries:["Sri Lanka"]},{code:"LRD",number:"430",digits:2,currency:"Liberian Dollar",countries:["Liberia"]},{code:"LSL",number:"426",digits:2,currency:"Loti",countries:["Lesotho"]},{code:"LYD",number:"434",digits:3,currency:"Libyan Dinar",countries:["Libya"]},{code:"MAD",number:"504",digits:2,currency:"Moroccan Dirham",countries:["Morocco","Western Sahara"]},{code:"MDL",number:"498",digits:2,currency:"Moldovan Leu",countries:["Moldova (The Republic Of)"]},{code:"MGA",number:"969",digits:2,currency:"Malagasy Ariary",countries:["Madagascar"]},{code:"MKD",number:"807",digits:2,currency:"Denar",countries:["Macedonia (The Former Yugoslav Republic Of)"]},{code:"MMK",number:"104",digits:2,currency:"Kyat",countries:["Myanmar"]},{code:"MNT",number:"496",digits:2,currency:"Tugrik",countries:["Mongolia"]},{code:"MOP",number:"446",digits:2,currency:"Pataca",countries:["Macao"]},{code:"MRU",number:"929",digits:2,currency:"Ouguiya",countries:["Mauritania"]},{code:"MUR",number:"480",digits:2,currency:"Mauritius Rupee",countries:["Mauritius"]},{code:"MVR",number:"462",digits:2,currency:"Rufiyaa",countries:["Maldives"]},{code:"MWK",number:"454",digits:2,currency:"Malawi Kwacha",countries:["Malawi"]},{code:"MXN",number:"484",digits:2,currency:"Mexican Peso",countries:["Mexico"]},{code:"MXV",number:"979",digits:2,currency:"Mexican Unidad de Inversion (UDI)",countries:["Mexico"]},{code:"MYR",number:"458",digits:2,currency:"Malaysian Ringgit",countries:["Malaysia"]},{code:"MZN",number:"943",digits:2,currency:"Mozambique Metical",countries:["Mozambique"]},{code:"NAD",number:"516",digits:2,currency:"Namibia Dollar",countries:["Namibia"]},{code:"NGN",number:"566",digits:2,currency:"Naira",countries:["Nigeria"]},{code:"NIO",number:"558",digits:2,currency:"Cordoba Oro",countries:["Nicaragua"]},{code:"NOK",number:"578",digits:2,currency:"Norwegian Krone",countries:["Bouvet Island","Norway","Svalbard and Jan Mayen"]},{code:"NPR",number:"524",digits:2,currency:"Nepalese Rupee",countries:["Nepal"]},{code:"NZD",number:"554",digits:2,currency:"New Zealand Dollar",countries:["Cook Islands (The)","New Zealand","Niue","Pitcairn","Tokelau"]},{code:"OMR",number:"512",digits:3,currency:"Rial Omani",countries:["Oman"]},{code:"PAB",number:"590",digits:2,currency:"Balboa",countries:["Panama"]},{code:"PEN",number:"604",digits:2,currency:"Sol",countries:["Peru"]},{code:"PGK",number:"598",digits:2,currency:"Kina",countries:["Papua New Guinea"]},{code:"PHP",number:"608",digits:2,currency:"Philippine Peso",countries:["Philippines (The)"]},{code:"PKR",number:"586",digits:2,currency:"Pakistan Rupee",countries:["Pakistan"]},{code:"PLN",number:"985",digits:2,currency:"Zloty",countries:["Poland"]},{code:"PYG",number:"600",digits:0,currency:"Guarani",countries:["Paraguay"]},{code:"QAR",number:"634",digits:2,currency:"Qatari Rial",countries:["Qatar"]},{code:"RON",number:"946",digits:2,currency:"Romanian Leu",countries:["Romania"]},{code:"RSD",number:"941",digits:2,currency:"Serbian Dinar",countries:["Serbia"]},{code:"RUB",number:"643",digits:2,currency:"Russian Ruble",countries:["Russian Federation (The)"]},{code:"RWF",number:"646",digits:0,currency:"Rwanda Franc",countries:["Rwanda"]},{code:"SAR",number:"682",digits:2,currency:"Saudi Riyal",countries:["Saudi Arabia"]},{code:"SBD",number:"090",digits:2,currency:"Solomon Islands Dollar",countries:["Solomon Islands"]},{code:"SCR",number:"690",digits:2,currency:"Seychelles Rupee",countries:["Seychelles"]},{code:"SDG",number:"938",digits:2,currency:"Sudanese Pound",countries:["Sudan (The)"]},{code:"SEK",number:"752",digits:2,currency:"Swedish Krona",countries:["Sweden"]},{code:"SGD",number:"702",digits:2,currency:"Singapore Dollar",countries:["Singapore"]},{code:"SHP",number:"654",digits:2,currency:"Saint Helena Pound",countries:["Saint Helena, Ascension and Tristan Da Cunha"]},{code:"SLL",number:"694",digits:2,currency:"Leone",countries:["Sierra Leone"]},{code:"SOS",number:"706",digits:2,currency:"Somali Shilling",countries:["Somalia"]},{code:"SRD",number:"968",digits:2,currency:"Surinam Dollar",countries:["Suriname"]},{code:"SSP",number:"728",digits:2,currency:"South Sudanese Pound",countries:["South Sudan"]},{code:"STN",number:"930",digits:2,currency:"Dobra",countries:["Sao Tome and Principe"]},{code:"SVC",number:"222",digits:2,currency:"El Salvador Colon",countries:["El Salvador"]},{code:"SYP",number:"760",digits:2,currency:"Syrian Pound",countries:["Syrian Arab Republic"]},{code:"SZL",number:"748",digits:2,currency:"Lilangeni",countries:["Eswatini"]},{code:"THB",number:"764",digits:2,currency:"Baht",countries:["Thailand"]},{code:"TJS",number:"972",digits:2,currency:"Somoni",countries:["Tajikistan"]},{code:"TMT",number:"934",digits:2,currency:"Turkmenistan New Manat",countries:["Turkmenistan"]},{code:"TND",number:"788",digits:3,currency:"Tunisian Dinar",countries:["Tunisia"]},{code:"TOP",number:"776",digits:2,currency:"Pa’anga",countries:["Tonga"]},{code:"TRY",number:"949",digits:2,currency:"Turkish Lira",countries:["Turkey"]},{code:"TTD",number:"780",digits:2,currency:"Trinidad and Tobago Dollar",countries:["Trinidad and Tobago"]},{code:"TWD",number:"901",digits:2,currency:"New Taiwan Dollar",countries:["Taiwan (Province of China)"]},{code:"TZS",number:"834",digits:2,currency:"Tanzanian Shilling",countries:["Tanzania, United Republic Of"]},{code:"UAH",number:"980",digits:2,currency:"Hryvnia",countries:["Ukraine"]},{code:"UGX",number:"800",digits:0,currency:"Uganda Shilling",countries:["Uganda"]},{code:"USD",number:"840",digits:2,currency:"US Dollar",countries:["American Samoa","Bonaire, Sint Eustatius and Saba","British Indian Ocean Territory (The)","Ecuador","El Salvador","Guam","Haiti","Marshall Islands (The)","Micronesia (Federated States Of)","Northern Mariana Islands (The)","Palau","Panama","Puerto Rico","Timor-Leste","Turks and Caicos Islands (The)","United States Minor Outlying Islands (The)","United States of America (The)","Virgin Islands (British)","Virgin Islands (U.S.)"]},{code:"USN",number:"997",digits:2,currency:"US Dollar (Next day)",countries:["United States of America (The)"]},{code:"UYI",number:"940",digits:0,currency:"Uruguay Peso en Unidades Indexadas (UI)",countries:["Uruguay"]},{code:"UYU",number:"858",digits:2,currency:"Peso Uruguayo",countries:["Uruguay"]},{code:"UYW",number:"927",digits:4,currency:"Unidad Previsional",countries:["Uruguay"]},{code:"UZS",number:"860",digits:2,currency:"Uzbekistan Sum",countries:["Uzbekistan"]},{code:"VES",number:"928",digits:2,currency:"Bolívar Soberano",countries:["Venezuela (Bolivarian Republic Of)"]},{code:"VND",number:"704",digits:0,currency:"Dong",countries:["Viet Nam"]},{code:"VUV",number:"548",digits:0,currency:"Vatu",countries:["Vanuatu"]},{code:"WST",number:"882",digits:2,currency:"Tala",countries:["Samoa"]},{code:"XAF",number:"950",digits:0,currency:"CFA Franc BEAC",countries:["Cameroon","Central African Republic (The)","Chad","Congo (The)","Equatorial Guinea","Gabon"]},{code:"XAG",number:"961",digits:0,currency:"Silver",countries:["Zz11_silver"]},{code:"XAU",number:"959",digits:0,currency:"Gold",countries:["Zz08_gold"]},{code:"XBA",number:"955",digits:0,currency:"Bond Markets Unit European Composite Unit (EURCO)",countries:["Zz01_bond Markets Unit European_eurco"]},{code:"XBB",number:"956",digits:0,currency:"Bond Markets Unit European Monetary Unit (E.M.U.-6)",countries:["Zz02_bond Markets Unit European_emu-6"]},{code:"XBC",number:"957",digits:0,currency:"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)",countries:["Zz03_bond Markets Unit European_eua-9"]},{code:"XBD",number:"958",digits:0,currency:"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)",countries:["Zz04_bond Markets Unit European_eua-17"]},{code:"XCD",number:"951",digits:2,currency:"East Caribbean Dollar",countries:["Anguilla","Antigua and Barbuda","Dominica","Grenada","Montserrat","Saint Kitts and Nevis","Saint Lucia","Saint Vincent and the Grenadines"]},{code:"XDR",number:"960",digits:0,currency:"SDR (Special Drawing Right)",countries:["International Monetary Fund (Imf) "]},{code:"XOF",number:"952",digits:0,currency:"CFA Franc BCEAO",countries:["Benin","Burkina Faso","Côte d'Ivoire","Guinea-Bissau","Mali","Niger (The)","Senegal","Togo"]},{code:"XPD",number:"964",digits:0,currency:"Palladium",countries:["Zz09_palladium"]},{code:"XPF",number:"953",digits:0,currency:"CFP Franc",countries:["French Polynesia","New Caledonia","Wallis and Futuna"]},{code:"XPT",number:"962",digits:0,currency:"Platinum",countries:["Zz10_platinum"]},{code:"XSU",number:"994",digits:0,currency:"Sucre",countries:["Sistema Unitario De Compensacion Regional De Pagos 'Sucre'"]},{code:"XTS",number:"963",digits:0,currency:"Codes specifically reserved for testing purposes",countries:["Zz06_testing_code"]},{code:"XUA",number:"965",digits:0,currency:"ADB Unit of Account",countries:["Member Countries of the African Development Bank Group"]},{code:"XXX",number:"999",digits:0,currency:"The codes assigned for transactions where no currency is involved",countries:["Zz07_no_currency"]},{code:"YER",number:"886",digits:2,currency:"Yemeni Rial",countries:["Yemen"]},{code:"ZAR",number:"710",digits:2,currency:"Rand",countries:["Lesotho","Namibia","South Africa"]},{code:"ZMW",number:"967",digits:2,currency:"Zambian Kwacha",countries:["Zambia"]},{code:"ZWL",number:"932",digits:2,currency:"Zimbabwe Dollar",countries:["Zimbabwe"]}]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nativeCurrencies=void 0;const n=r(3);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"},{symbol:"ARETH",decimals:18,name:"Arbitrum Testnet",network:"arbitrum-rinkeby"},{symbol:"AETH",decimals:18,name:"Arbitrum Ether",network:"arbitrum-one"},{symbol:"AVAX",decimals:18,name:"AVAX",network:"avalanche"}],[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})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnsupportedCurrencyError=void 0;class n extends Error{constructor(e){const{symbol:t,network:r}=(e=>{if("string"==typeof e){const[t,r]=e.split("-");return{symbol:t,network:r}}const{value:t,network:r}=e;return{symbol:t,network:r}})(e);super(`The currency '${t}'${r?` on ${r}`:""} is unknown or not supported.`),this.symbol=t,this.network=r}}t.UnsupportedCurrencyError=n},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.GnosisSafeProxy__factory=t.EtherPaymentFallback__factory=t.BytesUtilsMock__factory=t.AggregatorMock__factory=t.StorageFeeCollector__factory=t.RequestOpenHashSubmitter__factory=t.RequestHashStorage__factory=t.RequestDeployer__factory=t.Migrations__factory=t.WhitelistedRole__factory=t.WhitelistAdminRole__factory=t.IERC20ConversionProxy__factory=t.IEthereumFeeProxy__factory=t.IERC20FeeProxy__factory=t.FakeSwapRouter__factory=t.EthereumProxy__factory=t.EthereumFeeProxy__factory=t.EthConversionProxy__factory=t.IUniswapV2Router02__factory=t.ERC20SwapToPay__factory=t.ISwapRouter__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.BatchPayments__factory=t.UpgradedStandardToken__factory=t.StandardToken__factory=t.ERC20Basic__factory=t.BlackList__factory=t.BasicToken__factory=t.BadERC20__factory=t.IERC1820Implementer__factory=t.ERC1820Implementer__factory=t.IERC20__factory=t.IERC20Metadata__factory=t.ERC20__factory=t.Pausable__factory=t.Ownable__factory=void 0;var n=r(554);Object.defineProperty(t,"Ownable__factory",{enumerable:!0,get:function(){return n.Ownable__factory}});var f=r(555);Object.defineProperty(t,"Pausable__factory",{enumerable:!0,get:function(){return f.Pausable__factory}});var a=r(556);Object.defineProperty(t,"ERC20__factory",{enumerable:!0,get:function(){return a.ERC20__factory}});var i=r(557);Object.defineProperty(t,"IERC20Metadata__factory",{enumerable:!0,get:function(){return i.IERC20Metadata__factory}});var o=r(558);Object.defineProperty(t,"IERC20__factory",{enumerable:!0,get:function(){return o.IERC20__factory}});var s=r(559);Object.defineProperty(t,"ERC1820Implementer__factory",{enumerable:!0,get:function(){return s.ERC1820Implementer__factory}});var c=r(560);Object.defineProperty(t,"IERC1820Implementer__factory",{enumerable:!0,get:function(){return c.IERC1820Implementer__factory}});var u=r(561);Object.defineProperty(t,"BadERC20__factory",{enumerable:!0,get:function(){return u.BadERC20__factory}});var d=r(562);Object.defineProperty(t,"BasicToken__factory",{enumerable:!0,get:function(){return d.BasicToken__factory}});var l=r(563);Object.defineProperty(t,"BlackList__factory",{enumerable:!0,get:function(){return l.BlackList__factory}});var h=r(564);Object.defineProperty(t,"ERC20Basic__factory",{enumerable:!0,get:function(){return h.ERC20Basic__factory}});var p=r(565);Object.defineProperty(t,"StandardToken__factory",{enumerable:!0,get:function(){return p.StandardToken__factory}});var b=r(566);Object.defineProperty(t,"UpgradedStandardToken__factory",{enumerable:!0,get:function(){return b.UpgradedStandardToken__factory}});var m=r(567);Object.defineProperty(t,"BatchPayments__factory",{enumerable:!0,get:function(){return m.BatchPayments__factory}});var y=r(568);Object.defineProperty(t,"AggregatorFraction__factory",{enumerable:!0,get:function(){return y.AggregatorFraction__factory}});var g=r(569);Object.defineProperty(t,"ChainlinkConversionPath__factory",{enumerable:!0,get:function(){return g.ChainlinkConversionPath__factory}});var v=r(570);Object.defineProperty(t,"ERC20fraction__factory",{enumerable:!0,get:function(){return v.ERC20fraction__factory}});var w=r(571);Object.defineProperty(t,"Erc20ConversionProxy__factory",{enumerable:!0,get:function(){return w.Erc20ConversionProxy__factory}});var _=r(572);Object.defineProperty(t,"ERC20EscrowToPay__factory",{enumerable:!0,get:function(){return _.ERC20EscrowToPay__factory}});var E=r(573);Object.defineProperty(t,"ERC20FeeProxy__factory",{enumerable:!0,get:function(){return E.ERC20FeeProxy__factory}});var A=r(574);Object.defineProperty(t,"ERC20Proxy__factory",{enumerable:!0,get:function(){return A.ERC20Proxy__factory}});var T=r(575);Object.defineProperty(t,"ERC20SwapToConversion__factory",{enumerable:!0,get:function(){return T.ERC20SwapToConversion__factory}});var x=r(576);Object.defineProperty(t,"ISwapRouter__factory",{enumerable:!0,get:function(){return x.ISwapRouter__factory}});var S=r(577);Object.defineProperty(t,"ERC20SwapToPay__factory",{enumerable:!0,get:function(){return S.ERC20SwapToPay__factory}});var C=r(578);Object.defineProperty(t,"IUniswapV2Router02__factory",{enumerable:!0,get:function(){return C.IUniswapV2Router02__factory}});var O=r(579);Object.defineProperty(t,"EthConversionProxy__factory",{enumerable:!0,get:function(){return O.EthConversionProxy__factory}});var k=r(580);Object.defineProperty(t,"EthereumFeeProxy__factory",{enumerable:!0,get:function(){return k.EthereumFeeProxy__factory}});var P=r(581);Object.defineProperty(t,"EthereumProxy__factory",{enumerable:!0,get:function(){return P.EthereumProxy__factory}});var R=r(582);Object.defineProperty(t,"FakeSwapRouter__factory",{enumerable:!0,get:function(){return R.FakeSwapRouter__factory}});var M=r(583);Object.defineProperty(t,"IERC20FeeProxy__factory",{enumerable:!0,get:function(){return M.IERC20FeeProxy__factory}});var D=r(584);Object.defineProperty(t,"IEthereumFeeProxy__factory",{enumerable:!0,get:function(){return D.IEthereumFeeProxy__factory}});var N=r(585);Object.defineProperty(t,"IERC20ConversionProxy__factory",{enumerable:!0,get:function(){return N.IERC20ConversionProxy__factory}});var B=r(586);Object.defineProperty(t,"WhitelistAdminRole__factory",{enumerable:!0,get:function(){return B.WhitelistAdminRole__factory}});var I=r(587);Object.defineProperty(t,"WhitelistedRole__factory",{enumerable:!0,get:function(){return I.WhitelistedRole__factory}});var F=r(588);Object.defineProperty(t,"Migrations__factory",{enumerable:!0,get:function(){return F.Migrations__factory}});var j=r(589);Object.defineProperty(t,"RequestDeployer__factory",{enumerable:!0,get:function(){return j.RequestDeployer__factory}});var L=r(590);Object.defineProperty(t,"RequestHashStorage__factory",{enumerable:!0,get:function(){return L.RequestHashStorage__factory}});var U=r(591);Object.defineProperty(t,"RequestOpenHashSubmitter__factory",{enumerable:!0,get:function(){return U.RequestOpenHashSubmitter__factory}});var q=r(592);Object.defineProperty(t,"StorageFeeCollector__factory",{enumerable:!0,get:function(){return q.StorageFeeCollector__factory}});var H=r(593);Object.defineProperty(t,"AggregatorMock__factory",{enumerable:!0,get:function(){return H.AggregatorMock__factory}});var z=r(594);Object.defineProperty(t,"BytesUtilsMock__factory",{enumerable:!0,get:function(){return z.BytesUtilsMock__factory}});var V=r(595);Object.defineProperty(t,"EtherPaymentFallback__factory",{enumerable:!0,get:function(){return V.EtherPaymentFallback__factory}});var K=r(596);Object.defineProperty(t,"GnosisSafeProxy__factory",{enumerable:!0,get:function(){return K.GnosisSafeProxy__factory}});var G=r(597);Object.defineProperty(t,"UsdtFake__factory",{enumerable:!0,get:function(){return G.UsdtFake__factory}});var $=r(598);Object.defineProperty(t,"ERC20Alpha__factory",{enumerable:!0,get:function(){return $.ERC20Alpha__factory}});var W=r(599);Object.defineProperty(t,"ERC20False__factory",{enumerable:!0,get:function(){return W.ERC20False__factory}});var Y=r(600);Object.defineProperty(t,"ERC20NoReturn__factory",{enumerable:!0,get:function(){return Y.ERC20NoReturn__factory}});var J=r(601);Object.defineProperty(t,"ERC20Revert__factory",{enumerable:!0,get:function(){return J.ERC20Revert__factory}});var X=r(602);Object.defineProperty(t,"ERC20True__factory",{enumerable:!0,get:function(){return X.ERC20True__factory}});var Z=r(603);Object.defineProperty(t,"TestERC20__factory",{enumerable:!0,get:function(){return Z.TestERC20__factory}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Ownable__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Ownable__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Pausable__factory=void 0;const n=r(4),f=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Pausable__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20Metadata__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20Metadata__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC1820Implementer__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"bytes32",name:"interfaceHash",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"canImplementInterfaceForAddress",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"}],a="0x608060405234801561001057600080fd5b5061022f806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063249cb3fa14610030575b600080fd5b61004a6004803603810190610045919061018f565b610060565b60405161005791906101de565b60405180910390f35b600080600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166100cc576000801b6100ee565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b905092915050565b600080fd5b6000819050919050565b61010e816100fb565b811461011957600080fd5b50565b60008135905061012b81610105565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061015c82610131565b9050919050565b61016c81610151565b811461017757600080fd5b50565b60008135905061018981610163565b92915050565b600080604083850312156101a6576101a56100f6565b5b60006101b48582860161011c565b92505060206101c58582860161017a565b9150509250929050565b6101d8816100fb565b82525050565b60006020820190506101f360008301846101cf565b9291505056fea26469706673582212200435afd8e1118415b91d8baf1ae8a7f465704298d05a42bc3ef694af903a059064736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC1820Implementer__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC1820Implementer__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"bytes32",name:"interfaceHash",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"canImplementInterfaceForAddress",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC1820Implementer__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BadERC20__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405260008060146101000a81548160ff021916908315150217905550600060035560006004553480156200003557600080fd5b50604051620037eb380380620037eb83398181016040528101906200005b9190620004b0565b6200007b6200006f6200013360201b60201c565b6200013b60201b60201c565b8360018190555082600790805190602001906200009a92919062000228565b508160089080519060200190620000b392919062000228565b50806009819055508360026000620000d0620001ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60146101000a81548160ff02191690831515021790555050505050620005c5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000236906200058f565b90600052602060002090601f0160209004810192826200025a5760008555620002a6565b82601f106200027557805160ff1916838001178555620002a6565b82800160010185558215620002a6579182015b82811115620002a557825182559160200191906001019062000288565b5b509050620002b59190620002b9565b5090565b5b80821115620002d4576000816000905550600101620002ba565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6200030181620002ec565b81146200030d57600080fd5b50565b6000815190506200032181620002f6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200037c8262000331565b810181811067ffffffffffffffff821117156200039e576200039d62000342565b5b80604052505050565b6000620003b3620002d8565b9050620003c1828262000371565b919050565b600067ffffffffffffffff821115620003e457620003e362000342565b5b620003ef8262000331565b9050602081019050919050565b60005b838110156200041c578082015181840152602081019050620003ff565b838111156200042c576000848401525b50505050565b6000620004496200044384620003c6565b620003a7565b9050828152602081018484840111156200046857620004676200032c565b5b62000475848285620003fc565b509392505050565b600082601f83011262000495576200049462000327565b5b8151620004a784826020860162000432565b91505092915050565b60008060008060808587031215620004cd57620004cc620002e2565b5b6000620004dd8782880162000310565b945050602085015167ffffffffffffffff811115620005015762000500620002e7565b5b6200050f878288016200047d565b935050604085015167ffffffffffffffff811115620005335762000532620002e7565b5b62000541878288016200047d565b9250506060620005548782880162000310565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005a857607f821691505b60208210811415620005bf57620005be62000560565b5b50919050565b61321680620005d56000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063cc872b66116100ad578063e47d60601161007c578063e47d606014610556578063e4997dc514610586578063e5b5019a146105a2578063f2fde38b146105c0578063f3bdc228146105dc576101fb565b8063cc872b66146104d0578063db006a75146104ec578063dd62ed3e14610508578063dd644f7214610538576101fb565b80638da5cb5b116100e95780638da5cb5b1461045c57806395d89b411461047a578063a9059cbb14610498578063c0324c77146104b4576101fb565b806370a08231146103fa578063715018a61461042a5780638456cb5914610434578063893d20e81461043e576101fb565b806327e235e3116101925780633f4ba83a116101615780633f4ba83a1461037257806359bf1abe1461037c5780635c658165146103ac5780635c975abb146103dc576101fb565b806327e235e3146102e8578063313ce5671461031857806335390714146103365780633eaaf86b14610354576101fb565b80630ecb93c0116101ce5780630ecb93c01461027457806318160ddd1461029057806323b872dd146102ae57806326976e3f146102ca576101fb565b806306fdde03146102005780630753c30c1461021e578063095ea7b31461023a5780630e136b1914610256575b600080fd5b6102086105f8565b604051610215919061295f565b60405180910390f35b610238600480360381019061023391906129e4565b610686565b005b610254600480360381019061024f9190612a47565b610798565b005b61025e6108a8565b60405161026b9190612aa2565b60405180910390f35b61028e600480360381019061028991906129e4565b6108bb565b005b6102986109c9565b6040516102a59190612acc565b60405180910390f35b6102c860048036038101906102c39190612ae7565b610a90565b005b6102d2610c2b565b6040516102df9190612b49565b60405180910390f35b61030260048036038101906102fd91906129e4565b610c51565b60405161030f9190612acc565b60405180910390f35b610320610c69565b60405161032d9190612acc565b60405180910390f35b61033e610c6f565b60405161034b9190612acc565b60405180910390f35b61035c610c75565b6040516103699190612acc565b60405180910390f35b61037a610c7b565b005b610396600480360381019061039191906129e4565b610d8e565b6040516103a39190612aa2565b60405180910390f35b6103c660048036038101906103c19190612b64565b610de4565b6040516103d39190612acc565b60405180910390f35b6103e4610e09565b6040516103f19190612aa2565b60405180910390f35b610414600480360381019061040f91906129e4565b610e1c565b6040516104219190612acc565b60405180910390f35b610432610ef6565b005b61043c610f7e565b005b610446611093565b6040516104539190612b49565b60405180910390f35b6104646110a2565b6040516104719190612b49565b60405180910390f35b6104826110cb565b60405161048f919061295f565b60405180910390f35b6104b260048036038101906104ad9190612a47565b611159565b005b6104ce60048036038101906104c99190612ba4565b6112f0565b005b6104ea60048036038101906104e59190612be4565b61145a565b005b61050660048036038101906105019190612be4565b6116b0565b005b610522600480360381019061051d9190612b64565b6118aa565b60405161052f9190612acc565b60405180910390f35b610540611988565b60405161054d9190612acc565b60405180910390f35b610570600480360381019061056b91906129e4565b61198e565b60405161057d9190612aa2565b60405180910390f35b6105a0600480360381019061059b91906129e4565b6119ae565b005b6105aa611abc565b6040516105b79190612acc565b60405180910390f35b6105da60048036038101906105d591906129e4565b611ae0565b005b6105f660048036038101906105f191906129e4565b611bd8565b005b6007805461060590612c40565b80601f016020809104026020016040519081016040528092919081815260200182805461063190612c40565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b61068e611d88565b73ffffffffffffffffffffffffffffffffffffffff166106ac6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612cbe565b60405180910390fd5b6001600a60146101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e8160405161078d9190612b49565b60405180910390a150565b60406004816107a79190612d0d565b600036905010156107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612d89565b60405180910390fd5b600a60149054906101000a900460ff161561089857600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b815260040161086193929190612da9565b600060405180830381600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506108a3565b6108a28383611d90565b5b505050565b600a60149054906101000a900460ff1681565b6108c3611d88565b73ffffffffffffffffffffffffffffffffffffffff166108e16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90612cbe565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc816040516109be9190612b49565b60405180910390a150565b6000600a60149054906101000a900460ff1615610a8757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612df5565b9050610a8d565b60015490505b90565b600060149054906101000a900460ff1615610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790612d89565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612d89565b60405180910390fd5b600a60149054906101000a900460ff1615610c1a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff1660e01b8152600401610be39493929190612e22565b600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b50505050610c26565b610c25838383611f9e565b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090505481565b60095481565b60045481565b60015481565b610c83611d88565b73ffffffffffffffffffffffffffffffffffffffff16610ca16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612cbe565b60405180910390fd5b600060149054906101000a900460ff16610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612d89565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b6000600a60149054906101000a900460ff1615610ee557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610e8e9190612b49565b60206040518083038186803b158015610ea657600080fd5b505afa158015610eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ede9190612df5565b9050610ef1565b610eee82612404565b90505b919050565b610efe611d88565b73ffffffffffffffffffffffffffffffffffffffff16610f1c6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612cbe565b60405180910390fd5b610f7c600061244d565b565b610f86611d88565b73ffffffffffffffffffffffffffffffffffffffff16610fa46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612cbe565b60405180910390fd5b600060149054906101000a900460ff161561104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612d89565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600061109d6110a2565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600880546110d890612c40565b80601f016020809104026020016040519081016040528092919081815260200182805461110490612c40565b80156111515780601f1061112657610100808354040283529160200191611151565b820191906000526020600020905b81548152906001019060200180831161113457829003601f168201915b505050505081565b600060149054906101000a900460ff16156111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612d89565b60405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612d89565b60405180910390fd5b600a60149054906101000a900460ff16156112e157600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff1660e01b81526004016112aa93929190612da9565b600060405180830381600087803b1580156112c457600080fd5b505af11580156112d8573d6000803e3d6000fd5b505050506112ec565b6112eb8282612511565b5b5050565b6112f8611d88565b73ffffffffffffffffffffffffffffffffffffffff166113166110a2565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612cbe565b60405180910390fd5b601482106113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612d89565b60405180910390fd5b603281106113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612d89565b60405180910390fd5b81600381905550600954600a6114089190612f9a565b816114139190612fe5565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e60035460045460405161144e92919061303f565b60405180910390a15050565b611462611d88565b73ffffffffffffffffffffffffffffffffffffffff166114806110a2565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612cbe565b60405180910390fd5b600154816001546114e79190612d0d565b11611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612d89565b60405180910390fd5b600260006115336110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816002600061157b6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c09190612d0d565b11611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612d89565b60405180910390fd5b806002600061160d6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116569190612d0d565b92505081905550806001600082825461166f9190612d0d565b925050819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040516116a59190612acc565b60405180910390a150565b6116b8611d88565b73ffffffffffffffffffffffffffffffffffffffff166116d66110a2565b73ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390612cbe565b60405180910390fd5b806001541015611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612d89565b60405180910390fd5b806002600061177e6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612d89565b60405180910390fd5b806001600082825461180c9190613068565b9250508190555080600260006118206110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118699190613068565b925050819055507f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a448160405161189f9190612acc565b60405180910390a150565b6000600a60149054906101000a900460ff161561197557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b815260040161191e92919061309c565b60206040518083038186803b15801561193657600080fd5b505afa15801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e9190612df5565b9050611982565b61197f838361283f565b90505b92915050565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6119b6611d88565b73ffffffffffffffffffffffffffffffffffffffff166119d46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612cbe565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051611ab19190612b49565b60405180910390a150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b611ae8611d88565b73ffffffffffffffffffffffffffffffffffffffff16611b066110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390612cbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390613137565b60405180910390fd5b611bd58161244d565b50565b611be0611d88565b73ffffffffffffffffffffffffffffffffffffffff16611bfe6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b90612cbe565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790612d89565b60405180910390fd5b6000611ceb82610e1c565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060016000828254611d449190613068565b925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051611d7c929190613157565b60405180910390a15050565b600033905090565b6040600481611d9f9190612d0d565b60003690501015611de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddc90612d89565b60405180910390fd5b60008214158015611e7357506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90612d89565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611f919190612acc565b60405180910390a3505050565b6060600481611fad9190612d0d565b60003690501015611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90612d89565b60405180910390fd5b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612710600354856120879190612fe5565b61209191906131af565b90506004548111156120a35760045490505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8210156121585783826120d79190613068565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600081856121669190613068565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b39190613068565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122419190612d0d565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561239657816002600061229a6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122df9190612d0d565b600260006122eb6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123316110a2565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161238d9190612acc565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123f39190612acc565b60405180910390a350505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60406004816125209190612d0d565b60003690501015612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90612d89565b60405180910390fd5b6000612710600354846125799190612fe5565b61258391906131af565b90506004548111156125955760045490505b600081846125a39190613068565b905083600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f09190613068565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267e9190612d0d565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156127d35781600260006126d76110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271c9190612d0d565b600260006127286110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276e6110a2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ca9190612acc565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128309190612acc565b60405180910390a35050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129005780820151818401526020810190506128e5565b8381111561290f576000848401525b50505050565b6000601f19601f8301169050919050565b6000612931826128c6565b61293b81856128d1565b935061294b8185602086016128e2565b61295481612915565b840191505092915050565b600060208201905081810360008301526129798184612926565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129b182612986565b9050919050565b6129c1816129a6565b81146129cc57600080fd5b50565b6000813590506129de816129b8565b92915050565b6000602082840312156129fa576129f9612981565b5b6000612a08848285016129cf565b91505092915050565b6000819050919050565b612a2481612a11565b8114612a2f57600080fd5b50565b600081359050612a4181612a1b565b92915050565b60008060408385031215612a5e57612a5d612981565b5b6000612a6c858286016129cf565b9250506020612a7d85828601612a32565b9150509250929050565b60008115159050919050565b612a9c81612a87565b82525050565b6000602082019050612ab76000830184612a93565b92915050565b612ac681612a11565b82525050565b6000602082019050612ae16000830184612abd565b92915050565b600080600060608486031215612b0057612aff612981565b5b6000612b0e868287016129cf565b9350506020612b1f868287016129cf565b9250506040612b3086828701612a32565b9150509250925092565b612b43816129a6565b82525050565b6000602082019050612b5e6000830184612b3a565b92915050565b60008060408385031215612b7b57612b7a612981565b5b6000612b89858286016129cf565b9250506020612b9a858286016129cf565b9150509250929050565b60008060408385031215612bbb57612bba612981565b5b6000612bc985828601612a32565b9250506020612bda85828601612a32565b9150509250929050565b600060208284031215612bfa57612bf9612981565b5b6000612c0884828501612a32565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c5857607f821691505b60208210811415612c6c57612c6b612c11565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca86020836128d1565b9150612cb382612c72565b602082019050919050565b60006020820190508181036000830152612cd781612c9b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d1882612a11565b9150612d2383612a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d5857612d57612cde565b5b828201905092915050565b50565b6000612d736000836128d1565b9150612d7e82612d63565b600082019050919050565b60006020820190508181036000830152612da281612d66565b9050919050565b6000606082019050612dbe6000830186612b3a565b612dcb6020830185612b3a565b612dd86040830184612abd565b949350505050565b600081519050612def81612a1b565b92915050565b600060208284031215612e0b57612e0a612981565b5b6000612e1984828501612de0565b91505092915050565b6000608082019050612e376000830187612b3a565b612e446020830186612b3a565b612e516040830185612b3a565b612e5e6060830184612abd565b95945050505050565b60008160011c9050919050565b6000808291508390505b6001851115612ebe57808604811115612e9a57612e99612cde565b5b6001851615612ea95780820291505b8081029050612eb785612e67565b9450612e7e565b94509492505050565b600082612ed75760019050612f93565b81612ee55760009050612f93565b8160018114612efb5760028114612f0557612f34565b6001915050612f93565b60ff841115612f1757612f16612cde565b5b8360020a915084821115612f2e57612f2d612cde565b5b50612f93565b5060208310610133831016604e8410600b8410161715612f695782820a905083811115612f6457612f63612cde565b5b612f93565b612f768484846001612e74565b92509050818404811115612f8d57612f8c612cde565b5b81810290505b9392505050565b6000612fa582612a11565b9150612fb083612a11565b9250612fdd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ec7565b905092915050565b6000612ff082612a11565b9150612ffb83612a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561303457613033612cde565b5b828202905092915050565b60006040820190506130546000830185612abd565b6130616020830184612abd565b9392505050565b600061307382612a11565b915061307e83612a11565b92508282101561309157613090612cde565b5b828203905092915050565b60006040820190506130b16000830185612b3a565b6130be6020830184612b3a565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131216026836128d1565b915061312c826130c5565b604082019050919050565b6000602082019050818103600083015261315081613114565b9050919050565b600060408201905061316c6000830185612b3a565b6131796020830184612abd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ba82612a11565b91506131c583612a11565b9250826131d5576131d4613180565b5b82820490509291505056fea2646970667358221220ffcb488de35e4b5d9e0a405ef1f3b00a3ace59778eb6f847f93a52a3923055de64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,e)}deploy(e,t,r,n,f){return super.deploy(e,t,r,n,f||{})}getDeployTransaction(e,t,r,n,f){return super.getDeployTransaction(e,t,r,n,f||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BadERC20__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BasicToken__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BasicToken__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlackList__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BlackList__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Basic__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Basic__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardToken__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.StandardToken__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UpgradedStandardToken__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.UpgradedStandardToken__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchPayments__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_paymentErc20FeeProxy",type:"address"},{internalType:"address",name:"_paymentEthFeeProxy",type:"address"},{internalType:"address",name:"_owner",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:"_tokenAddresses",type:"address[]"},{internalType:"address[]",name:"_recipients",type:"address[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bytes[]",name:"_paymentReferences",type:"bytes[]"},{internalType:"uint256[]",name:"_feeAmounts",type:"uint256[]"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"batchERC20PaymentsMultiTokensWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address[]",name:"_recipients",type:"address[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bytes[]",name:"_paymentReferences",type:"bytes[]"},{internalType:"uint256[]",name:"_feeAmounts",type:"uint256[]"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"batchERC20PaymentsWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_recipients",type:"address[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bytes[]",name:"_paymentReferences",type:"bytes[]"},{internalType:"uint256[]",name:"_feeAmounts",type:"uint256[]"},{internalType:"address payable",name:"_feeAddress",type:"address"}],name:"batchEthPaymentsWithReference",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"batchFee",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:"paymentErc20FeeProxy",outputs:[{internalType:"contract IERC20FeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentEthFeeProxy",outputs:[{internalType:"contract IEthereumFeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_batchFee",type:"uint256"}],name:"setBatchFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentErc20FeeProxy",type:"address"}],name:"setPaymentErc20FeeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentEthFeeProxy",type:"address"}],name:"setPaymentEthFeeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],a="0x60806040523480156200001157600080fd5b506040516200376938038062003769833981810160405281019062000037919062000377565b620000576200004b6200010260201b60201c565b6200010a60201b60201c565b6001808190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000f181620001ce60201b60201c565b6000600481905550505050620004ee565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001de6200010260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000204620002e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200025d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002549062000434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620002d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c790620004cc565b60405180910390fd5b620002e1816200010a60201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200033f8262000312565b9050919050565b620003518162000332565b81146200035d57600080fd5b50565b600081519050620003718162000346565b92915050565b6000806000606084860312156200039357620003926200030d565b5b6000620003a38682870162000360565b9350506020620003b68682870162000360565b9250506040620003c98682870162000360565b9150509250925092565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200041c602083620003d3565b91506200042982620003e4565b602082019050919050565b600060208201905081810360008301526200044f816200040d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620004b4602683620003d3565b9150620004c18262000456565b604082019050919050565b60006020820190508181036000830152620004e781620004a5565b9050919050565b61326b80620004fe6000396000f3fe6080604052600436106100c65760003560e01c8063a09b241d1161007f578063d5073f6f11610059578063d5073f6f1461026d578063f2fde38b14610296578063f8b823e4146102bf578063fa733142146102ea57610110565b8063a09b241d146101f0578063a524679214610219578063c6e6d98b1461024457610110565b806310ed256614610115578063224115091461013e57806356959cf014610169578063715018a61461019257806373535e55146101a95780638da5cb5b146101c557610110565b36610110576000341461010e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101059061200c565b60405180910390fd5b005b600080fd5b34801561012157600080fd5b5061013c60048036038101906101379190612094565b610313565b005b34801561014a57600080fd5b506101536103d3565b6040516101609190612120565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190612094565b6103f9565b005b34801561019e57600080fd5b506101a76104b9565b005b6101c360048036038101906101be919061228a565b610541565b005b3480156101d157600080fd5b506101da61096a565b6040516101e79190612395565b60405180910390f35b3480156101fc57600080fd5b5061021760048036038101906102129190612094565b610993565b005b34801561022557600080fd5b5061022e610a10565b60405161023b91906123d1565b60405180910390f35b34801561025057600080fd5b5061026b600480360381019061026691906123ec565b610a36565b005b34801561027957600080fd5b50610294600480360381019061028f9190612532565b611051565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190612094565b6110d7565b005b3480156102cb57600080fd5b506102d46111cf565b6040516102e1919061256e565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612589565b6111d5565b005b61031b611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661033961096a565b73ffffffffffffffffffffffffffffffffffffffff161461038f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038690612706565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610401611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661041f61096a565b73ffffffffffffffffffffffffffffffffffffffff1614610475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046c90612706565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104c1611bf9565b73ffffffffffffffffffffffffffffffffffffffff166104df61096a565b73ffffffffffffffffffffffffffffffffffffffff1614610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052c90612706565b60405180910390fd5b61053f6000611c01565b565b60026001541415610587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057e90612772565b60405180910390fd5b600260018190555086869050898990501480156105a957508484905089899050145b80156105ba57508282905089899050145b6105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f090612804565b60405180910390fd5b6000805b8a8a90508110156107f85784848281811061061b5761061a612824565b5b9050602002013589898381811061063557610634612824565b5b905060200201356106469190612882565b471015610688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067f90612924565b60405180910390fd5b88888281811061069b5761069a612824565b5b90506020020135826106ad9190612882565b9150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b868980b868684818110610700576106ff612824565b5b905060200201358b8b8581811061071a57610719612824565b5b9050602002013561072b9190612882565b8d8d8581811061073e5761073d612824565b5b90506020020160208101906107539190612094565b8a8a8681811061076657610765612824565b5b90506020028101906107789190612953565b8a8a8881811061078b5761078a612824565b5b90506020020135896040518763ffffffff1660e01b81526004016107b3959493929190612a23565b6000604051808303818588803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b505050505080806107f090612a71565b9150506105fd565b506103e86004548261080a9190612aba565b6108149190612b43565b905080471015610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085090612bc0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561089f573d6000803e3d6000fd5b5060004711156109575760003373ffffffffffffffffffffffffffffffffffffffff16476040516108cf90612c11565b60006040518083038185875af1925050503d806000811461090c576040519150601f19603f3d011682016040523d82523d6000602084013e610911565b606091505b5050905080610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094c90612c98565b60405180910390fd5b505b5060018081905550505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610a0a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611cc59092919063ffffffff16565b50505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8686905089899050148015610a5057508484905089899050145b8015610a6157508282905089899050145b610aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9790612804565b60405180910390fd5b6000805b8a8a9050811015610b0d57848482818110610ac257610ac1612824565b5b90506020020135898983818110610adc57610adb612824565b5b90506020020135610aed9190612882565b82610af89190612882565b91508080610b0590612a71565b915050610aa4565b5060008b9050818173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610b4f929190612cb8565b60206040518083038186803b158015610b6757600080fd5b505afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190612cf6565b1015610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd790612d95565b60405180910390fd5b818173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610c1a9190612395565b60206040518083038186803b158015610c3257600080fd5b505afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612cf6565b1015610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290612924565b60405180910390fd5b610cb68c3084611df9565b610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90612e01565b60405180910390fd5b818173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401610d53929190612cb8565b60206040518083038186803b158015610d6b57600080fd5b505afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da39190612cf6565b1015610db357610db281610993565b5b60005b8b8b9050811015610f1057858582818110610dd457610dd3612824565b5b9050602002013583610de69190612e21565b9250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8e8e8e85818110610e3a57610e39612824565b5b9050602002016020810190610e4f9190612094565b8d8d86818110610e6257610e61612824565b5b905060200201358c8c87818110610e7c57610e7b612824565b5b9050602002810190610e8e9190612953565b8c8c89818110610ea157610ea0612824565b5b905060200201358b6040518863ffffffff1660e01b8152600401610ecb9796959493929190612e55565b600060405180830381600087803b158015610ee557600080fd5b505af1158015610ef9573d6000803e3d6000fd5b505050508080610f0890612a71565b915050610db6565b506103e860045483610f229190612aba565b610f2c9190612b43565b9150818173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610f689190612395565b60206040518083038186803b158015610f8057600080fd5b505afa158015610f94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb89190612cf6565b1015610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090612f31565b60405180910390fd5b6110048c8484611df9565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f9d565b60405180910390fd5b505050505050505050505050565b611059611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661107761096a565b73ffffffffffffffffffffffffffffffffffffffff16146110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490612706565b60405180910390fd5b8060048190555050565b6110df611bf9565b73ffffffffffffffffffffffffffffffffffffffff166110fd61096a565b73ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90612706565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba9061302f565b60405180910390fd5b6111cc81611c01565b50565b60045481565b888890508b8b90501480156111ef5750868690508b8b9050145b80156112005750848490508b8b9050145b80156112115750828290508b8b9050145b611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612804565b60405180910390fd5b60008b8b905067ffffffffffffffff81111561126f5761126e61304f565b5b6040519080825280602002602001820160405280156112a857816020015b611295611f78565b81526020019060019003908161128d5790505b50905060005b8c8c90508110156115b45760005b8d8d90508110156115a0578d8d838181106112da576112d9612824565b5b90506020020160208101906112ef9190612094565b73ffffffffffffffffffffffffffffffffffffffff1683828151811061131857611317612824565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614156114015785858381811061135357611352612824565b5b905060200201358a8a8481811061136d5761136c612824565b5b9050602002013561137e9190612882565b83828151811061139157611390612824565b5b60200260200101516020018181516113a99190612882565b915081815250508989838181106113c3576113c2612824565b5b905060200201358382815181106113dd576113dc612824565b5b60200260200101516040018181516113f59190612882565b915081815250506115a0565b600083828151811061141657611415612824565b5b60200260200101516020015114801561146c5750600086868481811061143f5761143e612824565b5b905060200201358b8b8581811061145957611458612824565b5b9050602002013561146a9190612882565b115b1561158d578d8d8381811061148457611483612824565b5b90506020020160208101906114999190612094565b8382815181106114ac576114ab612824565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508585838181106114fd576114fc612824565b5b905060200201358a8a8481811061151757611516612824565b5b905060200201356115289190612882565b83828151811061153b5761153a612824565b5b6020026020010151602001818152505089898381811061155e5761155d612824565b5b9050602002013583828151811061157857611577612824565b5b602002602001015160400181815250506115a0565b808061159890612a71565b9150506112bc565b5080806115ac90612a71565b9150506112ae565b5060005b8151811080156115e6575060008282815181106115d8576115d7612824565b5b602002602001015160200151115b15611a8c576103e860045483838151811061160457611603612824565b5b60200260200101516040015161161a9190612aba565b6116249190612b43565b82828151811061163757611636612824565b5b60200260200101516040018181525050600082828151811061165c5761165b612824565b5b602002602001015160000151905082828151811061167d5761167c612824565b5b60200260200101516040015183838151811061169c5761169b612824565b5b6020026020010151602001516116b29190612882565b8173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016116ed929190612cb8565b60206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612cf6565b101561177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590612d95565b60405180910390fd5b82828151811061179157611790612824565b5b6020026020010151604001518383815181106117b0576117af612824565b5b6020026020010151602001516117c69190612882565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016117ff9190612395565b60206040518083038186803b15801561181757600080fd5b505afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612cf6565b1015611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790612924565b60405180910390fd5b6118d78383815181106118a6576118a5612824565b5b602002602001015160000151308585815181106118c6576118c5612824565b5b602002602001015160200151611df9565b611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90612e01565b60405180910390fd5b82828151811061192957611928612824565b5b6020026020010151602001518173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611992929190612cb8565b60206040518083038186803b1580156119aa57600080fd5b505afa1580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e29190612cf6565b10156119f2576119f181610993565b5b611a39838381518110611a0857611a07612824565b5b60200260200101516000015185858581518110611a2857611a27612824565b5b602002602001015160400151611df9565b611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90612f9d565b60405180910390fd5b508080611a8490612a71565b9150506115b8565b5060005b8a8a9050811015611bea57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8e8e84818110611aec57611aeb612824565b5b9050602002016020810190611b019190612094565b8d8d85818110611b1457611b13612824565b5b9050602002016020810190611b299190612094565b8c8c86818110611b3c57611b3b612824565b5b905060200201358b8b87818110611b5657611b55612824565b5b9050602002810190611b689190612953565b8b8b89818110611b7b57611b7a612824565b5b905060200201358a6040518863ffffffff1660e01b8152600401611ba59796959493929190612e55565b600060405180830381600087803b158015611bbf57600080fd5b505af1158015611bd3573d6000803e3d6000fd5b505050508080611be290612a71565b915050611a90565b50505050505050505050505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401611cf492919061307e565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d7e9190613116565b6000604051808303816000865af19150503d8060008114611dbb576040519150601f19603f3d011682016040523d82523d6000602084013e611dc0565b606091505b5091509150818015611dee5750600081511480611ded575080806020019051810190611dec9190613165565b5b5b925050509392505050565b6000833b611e0657600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16338585604051602401611e3493929190613192565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ebe9190613116565b6000604051808303816000865af19150503d8060008114611efb576040519150601f19603f3d011682016040523d82523d6000602084013e611f00565b606091505b505090503d60008114611f1a5760208114611f2357600080fd5b60019250611f2f565b60206000803e60005192505b5080611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613215565b60405180910390fd5b509392505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b600082825260208201905092915050565b7f4e6f6e2d70617961626c65000000000000000000000000000000000000000000600082015250565b6000611ff6600b83611faf565b915061200182611fc0565b602082019050919050565b6000602082019050818103600083015261202581611fe9565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061206182612036565b9050919050565b61207181612056565b811461207c57600080fd5b50565b60008135905061208e81612068565b92915050565b6000602082840312156120aa576120a961202c565b5b60006120b88482850161207f565b91505092915050565b6000819050919050565b60006120e66120e16120dc84612036565b6120c1565b612036565b9050919050565b60006120f8826120cb565b9050919050565b600061210a826120ed565b9050919050565b61211a816120ff565b82525050565b60006020820190506121356000830184612111565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121605761215f61213b565b5b8235905067ffffffffffffffff81111561217d5761217c612140565b5b60208301915083602082028301111561219957612198612145565b5b9250929050565b60008083601f8401126121b6576121b561213b565b5b8235905067ffffffffffffffff8111156121d3576121d2612140565b5b6020830191508360208202830111156121ef576121ee612145565b5b9250929050565b60008083601f84011261220c5761220b61213b565b5b8235905067ffffffffffffffff81111561222957612228612140565b5b60208301915083602082028301111561224557612244612145565b5b9250929050565b600061225782612036565b9050919050565b6122678161224c565b811461227257600080fd5b50565b6000813590506122848161225e565b92915050565b600080600080600080600080600060a08a8c0312156122ac576122ab61202c565b5b60008a013567ffffffffffffffff8111156122ca576122c9612031565b5b6122d68c828d0161214a565b995099505060208a013567ffffffffffffffff8111156122f9576122f8612031565b5b6123058c828d016121a0565b975097505060408a013567ffffffffffffffff81111561232857612327612031565b5b6123348c828d016121f6565b955095505060608a013567ffffffffffffffff81111561235757612356612031565b5b6123638c828d016121a0565b935093505060806123768c828d01612275565b9150509295985092959850929598565b61238f81612056565b82525050565b60006020820190506123aa6000830184612386565b92915050565b60006123bb826120ed565b9050919050565b6123cb816123b0565b82525050565b60006020820190506123e660008301846123c2565b92915050565b60008060008060008060008060008060c08b8d03121561240f5761240e61202c565b5b600061241d8d828e0161207f565b9a505060208b013567ffffffffffffffff81111561243e5761243d612031565b5b61244a8d828e0161214a565b995099505060408b013567ffffffffffffffff81111561246d5761246c612031565b5b6124798d828e016121a0565b975097505060608b013567ffffffffffffffff81111561249c5761249b612031565b5b6124a88d828e016121f6565b955095505060808b013567ffffffffffffffff8111156124cb576124ca612031565b5b6124d78d828e016121a0565b935093505060a06124ea8d828e0161207f565b9150509295989b9194979a5092959850565b6000819050919050565b61250f816124fc565b811461251a57600080fd5b50565b60008135905061252c81612506565b92915050565b6000602082840312156125485761254761202c565b5b60006125568482850161251d565b91505092915050565b612568816124fc565b82525050565b6000602082019050612583600083018461255f565b92915050565b600080600080600080600080600080600060c08c8e0312156125ae576125ad61202c565b5b60008c013567ffffffffffffffff8111156125cc576125cb612031565b5b6125d88e828f0161214a565b9b509b505060208c013567ffffffffffffffff8111156125fb576125fa612031565b5b6126078e828f0161214a565b995099505060408c013567ffffffffffffffff81111561262a57612629612031565b5b6126368e828f016121a0565b975097505060608c013567ffffffffffffffff81111561265957612658612031565b5b6126658e828f016121f6565b955095505060808c013567ffffffffffffffff81111561268857612687612031565b5b6126948e828f016121a0565b935093505060a06126a78e828f0161207f565b9150509295989b509295989b9093969950565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126f0602083611faf565b91506126fb826126ba565b602082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061275c601f83611faf565b915061276782612726565b602082019050919050565b6000602082019050818103600083015261278b8161274f565b9050919050565b7f74686520696e70757420617272617973206d757374206861766520746865207360008201527f616d65206c656e67746800000000000000000000000000000000000000000000602082015250565b60006127ee602a83611faf565b91506127f982612792565b604082019050919050565b6000602082019050818103600083015261281d816127e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061288d826124fc565b9150612898836124fc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128cd576128cc612853565b5b828201905092915050565b7f6e6f7420656e6f7567682066756e647300000000000000000000000000000000600082015250565b600061290e601083611faf565b9150612919826128d8565b602082019050919050565b6000602082019050818103600083015261293d81612901565b9050919050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126129705761296f612944565b5b80840192508235915067ffffffffffffffff82111561299257612991612949565b5b6020830192506001820236038313156129ae576129ad61294e565b5b509250929050565b6129bf8161224c565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000612a0283856129c5565b9350612a0f8385846129d6565b612a18836129e5565b840190509392505050565b6000608082019050612a3860008301886129b6565b8181036020830152612a4b8186886129f6565b9050612a5a604083018561255f565b612a6760608301846129b6565b9695505050505050565b6000612a7c826124fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612aaf57612aae612853565b5b600182019050919050565b6000612ac5826124fc565b9150612ad0836124fc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b0957612b08612853565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b4e826124fc565b9150612b59836124fc565b925082612b6957612b68612b14565b5b828204905092915050565b7f6e6f7420656e6f7567682066756e647320666f72206261746368206665650000600082015250565b6000612baa601e83611faf565b9150612bb582612b74565b602082019050919050565b60006020820190508181036000830152612bd981612b9d565b9050919050565b600081905092915050565b50565b6000612bfb600083612be0565b9150612c0682612beb565b600082019050919050565b6000612c1c82612bee565b9150819050919050565b7f436f756c64206e6f742073656e642072656d61696e696e672066756e6473207460008201527f6f20746865207061796572000000000000000000000000000000000000000000602082015250565b6000612c82602b83611faf565b9150612c8d82612c26565b604082019050919050565b60006020820190508181036000830152612cb181612c75565b9050919050565b6000604082019050612ccd6000830185612386565b612cda6020830184612386565b9392505050565b600081519050612cf081612506565b92915050565b600060208284031215612d0c57612d0b61202c565b5b6000612d1a84828501612ce1565b91505092915050565b7f4e6f742073756666696369656e7420616c6c6f77616e636520666f722062617460008201527f636820746f207061790000000000000000000000000000000000000000000000602082015250565b6000612d7f602983611faf565b9150612d8a82612d23565b604082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f7061796d656e74207472616e7366657246726f6d2829206661696c6564000000600082015250565b6000612deb601d83611faf565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b6000612e2c826124fc565b9150612e37836124fc565b925082821015612e4a57612e49612853565b5b828203905092915050565b600060c082019050612e6a600083018a612386565b612e776020830189612386565b612e84604083018861255f565b8181036060830152612e978186886129f6565b9050612ea6608083018561255f565b612eb360a0830184612386565b98975050505050505050565b7f6e6f7420656e6f7567682066756e647320666f7220746865206261746368206660008201527f6565000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1b602283611faf565b9150612f2682612ebf565b604082019050919050565b60006020820190508181036000830152612f4a81612f0e565b9050919050565b7f626174636820666565207472616e7366657246726f6d2829206661696c656400600082015250565b6000612f87601f83611faf565b9150612f9282612f51565b602082019050919050565b60006020820190508181036000830152612fb681612f7a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613019602683611faf565b915061302482612fbd565b604082019050919050565b600060208201905081810360008301526130488161300c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006040820190506130936000830185612386565b6130a0602083018461255f565b9392505050565b600081519050919050565b60005b838110156130d05780820151818401526020810190506130b5565b838111156130df576000848401525b50505050565b60006130f0826130a7565b6130fa8185612be0565b935061310a8185602086016130b2565b80840191505092915050565b600061312282846130e5565b915081905092915050565b60008115159050919050565b6131428161312d565b811461314d57600080fd5b50565b60008151905061315f81613139565b92915050565b60006020828403121561317b5761317a61202c565b5b600061318984828501613150565b91505092915050565b60006060820190506131a76000830186612386565b6131b46020830185612386565b6131c1604083018461255f565b949350505050565b7f7472616e7366657246726f6d282920686173206265656e207265766572746564600082015250565b60006131ff602083611faf565b915061320a826131c9565b602082019050919050565b6000602082019050818103600083015261322e816131f2565b905091905056fea2646970667358221220193d754d631edcfef735dcf3d8fb61e707951cfab1646f74719a2884857025ac64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BatchPayments__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorFraction__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.AggregatorFraction__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChainlinkConversionPath__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_nativeTokenHash",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{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:"nativeTokenHash",outputs:[{internalType:"address",name:"",type:"address"}],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"}],a="0x60806040523480156200001157600080fd5b5060405162002249380380620022498339818101604052810190620000379190620002f0565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200043d565b600033905090565b620000c28160006200010860201b62000ace1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200011a8282620001bb60201b60201c565b156200015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001549062000383565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000226906200041b565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b8826200028b565b9050919050565b620002ca81620002ab565b8114620002d657600080fd5b50565b600081519050620002ea81620002bf565b92915050565b60006020828403121562000309576200030862000286565b5b60006200031984828501620002d9565b91505092915050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b60006200036b601f8362000322565b9150620003788262000333565b602082019050919050565b600060208201905081810360008301526200039e816200035c565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200040360228362000322565b91506200041082620003a5565b604082019050919050565b600060208201905081810360008301526200043681620003f4565b9050919050565b611dfc806200044d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806397edd4fa1161006657806397edd4fa1461010a578063a3d7afa31461013c578063bb5f747b14610158578063d515bb0314610188578063fbd4122a146101a657610093565b806308d5bc58146100985780634b6c8879146100c85780634c5a628c146100e45780637362d9c8146100ee575b600080fd5b6100b260048036038101906100ad919061113a565b6101d7565b6040516100bf9190611189565b60405180910390f35b6100e260048036038101906100dd91906111a4565b610219565b005b6100ec610363565b005b610108600480360381019061010391906111f7565b610375565b005b610124600480360381019061011f919061137d565b6103d0565b604051610133939291906113df565b60405180910390f35b61015660048036038101906101519190611471565b610723565b005b610172600480360381019061016d91906111f7565b610a0c565b60405161017f9190611540565b60405180910390f35b610190610a29565b60405161019d9190611189565b60405180910390f35b6101c060048036038101906101bb9190611587565b610a4f565b6040516101ce9291906115e7565b60405180910390f35b60026020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610229610224610b76565b610a0c565b610268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90611693565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf838383604051610356939291906116b3565b60405180910390a1505050565b61037361036e610b76565b610b7e565b565b610385610380610b76565b610a0c565b6103c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bb90611693565b60405180910390fd5b6103cd81610bd8565b50565b6000806000670de0b6b3a76400009250670de0b6b3a7640000905042915060005b600185516103ff9190611719565b81101561071b576000806000806104568986815181106104225761042161174d565b5b60200260200101518a600188610438919061177c565b815181106104495761044861174d565b5b6020026020010151610c32565b935093509350935060008473ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a657600080fd5b505afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de91906117e7565b9050878110156104ec578097505b60008573ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561053457600080fd5b505afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c919061184a565b905060008673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105b657600080fd5b505afa1580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee91906118b0565b60ff169050848111156106215784816106079190611719565b600a6106139190611a10565b8b61061e9190611a5b565b9a505b8381101561064f5780846106359190611719565b600a6106419190611a10565b8b61064c9190611a5b565b9a505b851561067f578181600a6106639190611a10565b8c61066e9190611a5b565b6106789190611ae4565b9a506106a5565b80600a61068c9190611a10565b828c6106989190611a5b565b6106a29190611ae4565b9a505b848110156106d35780856106b99190611719565b600a6106c59190611a10565b8b6106d09190611ae4565b9a505b838111156107015783816106e79190611719565b600a6106f39190611a10565b8b6106fe9190611ae4565b9a505b50505050505050808061071390611b15565b9150506103f1565b509193909250565b61073361072e610b76565b610a0c565b610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990611693565b60405180910390fd5b8383905086869050146107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190611baa565b60405180910390fd5b818190508686905014610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990611baa565b60405180910390fd5b60005b86869050811015610a03578282828181106108235761082261174d565b5b905060200201602081019061083891906111f7565b6002600089898581811061084f5761084e61174d565b5b905060200201602081019061086491906111f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008787858181106108b3576108b261174d565b5b90506020020160208101906108c891906111f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf8787838181106109745761097361174d565b5b905060200201602081019061098991906111f7565b86868481811061099c5761099b61174d565b5b90506020020160208101906109b191906111f7565b8585858181106109c4576109c361174d565b5b90506020020160208101906109d991906111f7565b6040516109e8939291906116b3565b60405180910390a180806109fb90611b15565b915050610805565b50505050505050565b6000610a22826000610e4390919063ffffffff16565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000610aa1878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506103d0565b925092509250808389610ab49190611a5b565b610abe9190611ae4565b9450819350505050935093915050565b610ad88282610e43565b15610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611c16565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b610b92816000610f0b90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b610bec816000610ace90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b600080600080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935060009250600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610db457600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600192505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b90611c82565b60405180910390fd5b610e2d86610fb2565b9150610e3885610fb2565b905092959194509250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90611d14565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f158282610e43565b610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611da6565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600060089050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561101757601290506110aa565b611020826110af565b156110a9578173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561106b57600080fd5b505afa15801561107f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a391906118b0565b60ff1690505b5b919050565b600080823b905060008163ffffffff1611915050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611107826110dc565b9050919050565b611117816110fc565b811461112257600080fd5b50565b6000813590506111348161110e565b92915050565b60008060408385031215611151576111506110d2565b5b600061115f85828601611125565b925050602061117085828601611125565b9150509250929050565b611183816110fc565b82525050565b600060208201905061119e600083018461117a565b92915050565b6000806000606084860312156111bd576111bc6110d2565b5b60006111cb86828701611125565b93505060206111dc86828701611125565b92505060406111ed86828701611125565b9150509250925092565b60006020828403121561120d5761120c6110d2565b5b600061121b84828501611125565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61127282611229565b810181811067ffffffffffffffff821117156112915761129061123a565b5b80604052505050565b60006112a46110c8565b90506112b08282611269565b919050565b600067ffffffffffffffff8211156112d0576112cf61123a565b5b602082029050602081019050919050565b600080fd5b60006112f96112f4846112b5565b61129a565b9050808382526020820190506020840283018581111561131c5761131b6112e1565b5b835b8181101561134557806113318882611125565b84526020840193505060208101905061131e565b5050509392505050565b600082601f83011261136457611363611224565b5b81356113748482602086016112e6565b91505092915050565b600060208284031215611393576113926110d2565b5b600082013567ffffffffffffffff8111156113b1576113b06110d7565b5b6113bd8482850161134f565b91505092915050565b6000819050919050565b6113d9816113c6565b82525050565b60006060820190506113f460008301866113d0565b61140160208301856113d0565b61140e60408301846113d0565b949350505050565b600080fd5b60008083601f84011261143157611430611224565b5b8235905067ffffffffffffffff81111561144e5761144d611416565b5b60208301915083602082028301111561146a576114696112e1565b5b9250929050565b6000806000806000806060878903121561148e5761148d6110d2565b5b600087013567ffffffffffffffff8111156114ac576114ab6110d7565b5b6114b889828a0161141b565b9650965050602087013567ffffffffffffffff8111156114db576114da6110d7565b5b6114e789828a0161141b565b9450945050604087013567ffffffffffffffff81111561150a576115096110d7565b5b61151689828a0161141b565b92509250509295509295509295565b60008115159050919050565b61153a81611525565b82525050565b60006020820190506115556000830184611531565b92915050565b611564816113c6565b811461156f57600080fd5b50565b6000813590506115818161155b565b92915050565b6000806000604084860312156115a05761159f6110d2565b5b60006115ae86828701611572565b935050602084013567ffffffffffffffff8111156115cf576115ce6110d7565b5b6115db8682870161141b565b92509250509250925092565b60006040820190506115fc60008301856113d0565b61160960208301846113d0565b9392505050565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b600061167d604083611610565b915061168882611621565b604082019050919050565b600060208201905081810360008301526116ac81611670565b9050919050565b60006060820190506116c8600083018661117a565b6116d5602083018561117a565b6116e2604083018461117a565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611724826113c6565b915061172f836113c6565b925082821015611742576117416116ea565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611787826113c6565b9150611792836113c6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117c7576117c66116ea565b5b828201905092915050565b6000815190506117e18161155b565b92915050565b6000602082840312156117fd576117fc6110d2565b5b600061180b848285016117d2565b91505092915050565b6000819050919050565b61182781611814565b811461183257600080fd5b50565b6000815190506118448161181e565b92915050565b6000602082840312156118605761185f6110d2565b5b600061186e84828501611835565b91505092915050565b600060ff82169050919050565b61188d81611877565b811461189857600080fd5b50565b6000815190506118aa81611884565b92915050565b6000602082840312156118c6576118c56110d2565b5b60006118d48482850161189b565b91505092915050565b60008160011c9050919050565b6000808291508390505b6001851115611934578086048111156119105761190f6116ea565b5b600185161561191f5780820291505b808102905061192d856118dd565b94506118f4565b94509492505050565b60008261194d5760019050611a09565b8161195b5760009050611a09565b8160018114611971576002811461197b576119aa565b6001915050611a09565b60ff84111561198d5761198c6116ea565b5b8360020a9150848211156119a4576119a36116ea565b5b50611a09565b5060208310610133831016604e8410600b84101617156119df5782820a9050838111156119da576119d96116ea565b5b611a09565b6119ec84848460016118ea565b92509050818404811115611a0357611a026116ea565b5b81810290505b9392505050565b6000611a1b826113c6565b9150611a26836113c6565b9250611a537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461193d565b905092915050565b6000611a66826113c6565b9150611a71836113c6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611aaa57611aa96116ea565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611aef826113c6565b9150611afa836113c6565b925082611b0a57611b09611ab5565b5b828204905092915050565b6000611b20826113c6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b5357611b526116ea565b5b600182019050919050565b7f617272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b6000611b94602083611610565b9150611b9f82611b5e565b602082019050919050565b60006020820190508181036000830152611bc381611b87565b9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000611c00601f83611610565b9150611c0b82611bca565b602082019050919050565b60006020820190508181036000830152611c2f81611bf3565b9050919050565b7f4e6f2061676772656761746f7220666f756e6400000000000000000000000000600082015250565b6000611c6c601383611610565b9150611c7782611c36565b602082019050919050565b60006020820190508181036000830152611c9b81611c5f565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cfe602283611610565b9150611d0982611ca2565b604082019050919050565b60006020820190508181036000830152611d2d81611cf1565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d90602183611610565b9150611d9b82611d34565b604082019050919050565b60006020820190508181036000830152611dbf81611d83565b905091905056fea26469706673582212200101fcd30f1a7439cac7c137f33ea9e5628909fed79c292b14572dc35e9e146564736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ChainlinkConversionPath__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20fraction__factory=void 0;const n=r(4),f=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20fraction__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Erc20ConversionProxy__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"},{internalType:"address",name:"_owner",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"},{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:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",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"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"}],name:"updateConversionPathAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"updateConversionProxyAddress",outputs:[],stateMutability:"nonpayable",type:"function"}],a="0x60806040523480156200001157600080fd5b506040516200197638038062001976833981810160405281019062000037919062000368565b620000576200004b620000f360201b60201c565b620000fb60201b60201c565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000ea81620001bf60201b60201c565b505050620004df565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001cf620000f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001f5620002d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200024e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002459062000425565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620002c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b890620004bd565b60405180910390fd5b620002d281620000fb60201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003308262000303565b9050919050565b620003428162000323565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b600080600060608486031215620003845762000383620002fe565b5b6000620003948682870162000351565b9350506020620003a78682870162000351565b9250506040620003ba8682870162000351565b9150509250925092565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200040d602083620003c4565b91506200041a82620003d5565b602082019050919050565b600060208201905081810360008301526200044081620003fe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620004a5602683620003c4565b9150620004b28262000447565b604082019050919050565b60006020820190508181036000830152620004d88162000496565b9050919050565b61148780620004ef6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637a38d1cb1161005b5780637a38d1cb146100ed5780638da5cb5b14610109578063946647f114610127578063f2fde38b1461014557610088565b80633af2c0121461008d5780633cd3efef146100a95780635536bcde146100c7578063715018a6146100e3575b600080fd5b6100a760048036038101906100a29190610b15565b610161565b005b6100b161042b565b6040516100be9190610c1b565b60405180910390f35b6100e160048036038101906100dc9190610c36565b610451565b005b6100eb610511565b005b61010760048036038101906101029190610c36565b610599565b005b610111610659565b60405161011e9190610c1b565b60405180910390f35b61012f610682565b60405161013c9190610cc2565b60405180910390f35b61015f600480360381019061015a9190610c36565b6106a8565b005b6000806101b18a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508c88866107a0565b915091508381836101c29190610d0c565b1115610203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fa90610de5565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b8b60018e8e90506102509190610e05565b8181106102605761025f610e39565b5b90506020020160208101906102759190610c36565b8e858c8c878c6040516024016102919796959493929190610ed5565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161031b9190610fb9565b600060405180830381855af49150503d8060008114610356576040519150601f19603f3d011682016040523d82523d6000602084013e61035b565b606091505b505090508061039f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039690611042565b60405180910390fd5b88886040516103af929190611087565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8d8d8d60008181106103ed576103ec610e39565b5b90506020020160208101906104029190610c36565b8a8860405161041494939291906110a0565b60405180910390a250505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6104596108f0565b73ffffffffffffffffffffffffffffffffffffffff16610477610659565b73ffffffffffffffffffffffffffffffffffffffff16146104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c490611131565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6105196108f0565b73ffffffffffffffffffffffffffffffffffffffff16610537610659565b73ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611131565b60405180910390fd5b61059760006108f8565b565b6105a16108f0565b73ffffffffffffffffffffffffffffffffffffffff166105bf610659565b73ffffffffffffffffffffffffffffffffffffffff1614610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611131565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6106b06108f0565b73ffffffffffffffffffffffffffffffffffffffff166106ce610659565b73ffffffffffffffffffffffffffffffffffffffff1614610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611131565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b906111c3565b60405180910390fd5b61079d816108f8565b50565b6000806000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b815260040161080391906112a1565b60606040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085391906112d8565b925092509250600086148061087357508582426108709190610e05565b11155b6108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990611377565b60405180910390fd5b8083896108bf9190611397565b6108c99190611420565b94508083886108d89190611397565b6108e29190611420565b935050505094509492505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109f1826109c6565b9050919050565b610a01816109e6565b8114610a0c57600080fd5b50565b600081359050610a1e816109f8565b92915050565b6000819050919050565b610a3781610a24565b8114610a4257600080fd5b50565b600081359050610a5481610a2e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610a7f57610a7e610a5a565b5b8235905067ffffffffffffffff811115610a9c57610a9b610a5f565b5b602083019150836020820283011115610ab857610ab7610a64565b5b9250929050565b60008083601f840112610ad557610ad4610a5a565b5b8235905067ffffffffffffffff811115610af257610af1610a5f565b5b602083019150836001820283011115610b0e57610b0d610a64565b5b9250929050565b6000806000806000806000806000806101008b8d031215610b3957610b386109bc565b5b6000610b478d828e01610a0f565b9a50506020610b588d828e01610a45565b99505060408b013567ffffffffffffffff811115610b7957610b786109c1565b5b610b858d828e01610a69565b985098505060608b013567ffffffffffffffff811115610ba857610ba76109c1565b5b610bb48d828e01610abf565b96509650506080610bc78d828e01610a45565b94505060a0610bd88d828e01610a0f565b93505060c0610be98d828e01610a45565b92505060e0610bfa8d828e01610a45565b9150509295989b9194979a5092959850565b610c15816109e6565b82525050565b6000602082019050610c306000830184610c0c565b92915050565b600060208284031215610c4c57610c4b6109bc565b5b6000610c5a84828501610a0f565b91505092915050565b6000819050919050565b6000610c88610c83610c7e846109c6565b610c63565b6109c6565b9050919050565b6000610c9a82610c6d565b9050919050565b6000610cac82610c8f565b9050919050565b610cbc81610ca1565b82525050565b6000602082019050610cd76000830184610cb3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d1782610a24565b9150610d2283610a24565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d5757610d56610cdd565b5b828201905092915050565b600082825260208201905092915050565b7f416d6f756e7420746f20706179206973206f766572207468652075736572206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b6000610dcf602483610d62565b9150610dda82610d73565b604082019050919050565b60006020820190508181036000830152610dfe81610dc2565b9050919050565b6000610e1082610a24565b9150610e1b83610a24565b925082821015610e2e57610e2d610cdd565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b610e7181610a24565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610eb48385610e77565b9350610ec1838584610e88565b610eca83610e97565b840190509392505050565b600060c082019050610eea600083018a610c0c565b610ef76020830189610c0c565b610f046040830188610e68565b8181036060830152610f17818688610ea8565b9050610f266080830185610e68565b610f3360a0830184610c0c565b98975050505050505050565b600081519050919050565b600081905092915050565b60005b83811015610f73578082015181840152602081019050610f58565b83811115610f82576000848401525b50505050565b6000610f9382610f3f565b610f9d8185610f4a565b9350610fad818560208601610f55565b80840191505092915050565b6000610fc58284610f88565b915081905092915050565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b600061102c602683610d62565b915061103782610fd0565b604082019050919050565b6000602082019050818103600083015261105b8161101f565b9050919050565b600061106e8385610f4a565b935061107b838584610e88565b82840190509392505050565b6000611094828486611062565b91508190509392505050565b60006080820190506110b56000830187610e68565b6110c26020830186610c0c565b6110cf6040830185610e68565b6110dc6060830184610e68565b95945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061111b602083610d62565b9150611126826110e5565b602082019050919050565b6000602082019050818103600083015261114a8161110e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006111ad602683610d62565b91506111b882611151565b604082019050919050565b600060208201905081810360008301526111dc816111a0565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611218816109e6565b82525050565b600061122a838361120f565b60208301905092915050565b6000602082019050919050565b600061124e826111e3565b61125881856111ee565b9350611263836111ff565b8060005b8381101561129457815161127b888261121e565b975061128683611236565b925050600181019050611267565b5085935050505092915050565b600060208201905081810360008301526112bb8184611243565b905092915050565b6000815190506112d281610a2e565b92915050565b6000806000606084860312156112f1576112f06109bc565b5b60006112ff868287016112c3565b9350506020611310868287016112c3565b9250506040611321868287016112c3565b9150509250925092565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b6000611361601b83610d62565b915061136c8261132b565b602082019050919050565b6000602082019050818103600083015261139081611354565b9050919050565b60006113a282610a24565b91506113ad83610a24565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113e6576113e5610cdd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061142b82610a24565b915061143683610a24565b925082611446576114456113f1565b5b82820490509291505056fea2646970667358221220136f6e6324c27791056dc8f87d2a3d545ec401c6a091b8c4e9402300175ebc4864736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Erc20ConversionProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20EscrowToPay__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_admin",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:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",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:[],name:"emergencyClaimPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"freezeRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"frozenPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"initiateEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",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:[],name:"renounceOwnership",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"},{inputs:[{internalType:"uint256",name:"_emergencyClaimPeriod",type:"uint256"}],name:"setEmergencyClaimPeriod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_frozenPeriod",type:"uint256"}],name:"setFrozenPeriod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],a="0x608060405262dd7c006003556301dfe2006004553480156200002057600080fd5b5060405162003b7238038062003b72833981810160405281019062000046919062000335565b620000666200005a620000c060201b60201c565b620000c860201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000b8816200018c60201b60201c565b505062000497565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200019c620000c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001c2620002a260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200021b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021290620003dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200028e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002859062000475565b60405180910390fd5b6200029f81620000c860201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002fd82620002d0565b9050919050565b6200030f81620002f0565b81146200031b57600080fd5b50565b6000815190506200032f8162000304565b92915050565b600080604083850312156200034f576200034e620002cb565b5b60006200035f858286016200031e565b925050602062000372858286016200031e565b9150509250929050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620003c56020836200037c565b9150620003d2826200038d565b602082019050919050565b60006020820190508181036000830152620003f881620003b6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200045d6026836200037c565b91506200046a82620003ff565b604082019050919050565b6000602082019050818103600083015262000490816200044e565b9050919050565b6136cb80620004a76000396000f3fe6080604052600436106101025760003560e01c80633cd3efef116100955780638da5cb5b116100645780638da5cb5b14610325578063a09b241d14610350578063a58ad6bc14610379578063f0d4b377146103bd578063f2fde38b146103e857610142565b80633cd3efef146102915780636662e1e0146102bc578063715018a6146102e557806382865e9d146102fc57610142565b80632a16f4c3116100d15780632a16f4c3146101eb5780632c77ddfd14610214578063325a00f01461023f5780633a322d451461026857610142565b8063079756081461014757806308e0ae99146101705780631189551b146101995780631a77f53a146101c257610142565b36610142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013990612591565b60405180910390fd5b600080fd5b34801561015357600080fd5b5061016e6004803603810190610169919061270b565b610411565b005b34801561017c57600080fd5b506101976004803603810190610192919061278a565b6106ad565b005b3480156101a557600080fd5b506101c060048036038101906101bb919061278a565b610777565b005b3480156101ce57600080fd5b506101e960048036038101906101e4919061270b565b610841565b005b3480156101f757600080fd5b50610212600480360381019061020d919061270b565b610ab1565b005b34801561022057600080fd5b50610229610d37565b60405161023691906127c6565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061283f565b610d3d565b005b34801561027457600080fd5b5061028f600480360381019061028a919061270b565b6111a7565b005b34801561029d57600080fd5b506102a6611452565b6040516102b39190612947565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de919061270b565b611478565b005b3480156102f157600080fd5b506102fa611789565b005b34801561030857600080fd5b50610323600480360381019061031e919061270b565b611811565b005b34801561033157600080fd5b5061033a611b23565b6040516103479190612971565b60405180910390f35b34801561035c57600080fd5b506103776004803603810190610372919061298c565b611b4c565b005b34801561038557600080fd5b506103a0600480360381019061039b919061270b565b611bc9565b6040516103b49897969594939291906129d4565b60405180910390f35b3480156103c957600080fd5b506103d2611ca1565b6040516103df91906127c6565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a919061298c565b611ca7565b005b806002816040516104229190612acc565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b890612b2f565b60405180910390fd5b8160006002826040516104d49190612acc565b90815260200160405180910390206003015411610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90612b9b565b60405180910390fd5b826002816040516105379190612acc565b908152602001604051809103902060060160019054906101000a900460ff1615610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d90612c07565b60405180910390fd5b6002846040516105a69190612acc565b908152602001604051809103902060060160009054906101000a900460ff16610604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fb90612c73565b60405180910390fd5b60006002856040516106169190612acc565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006002856040516106509190612acc565b908152602001604051809103902060050181905550836040516106739190612acc565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a250505050565b6106b5611d9f565b73ffffffffffffffffffffffffffffffffffffffff166106d3611b23565b73ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090612cdf565b60405180910390fd5b601e81101561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076490612d4b565b60405180910390fd5b8060048190555050565b61077f611d9f565b73ffffffffffffffffffffffffffffffffffffffff1661079d611b23565b73ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea90612cdf565b60405180910390fd5b601e811015610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612db7565b60405180910390fd5b8060038190555050565b8060006002826040516108549190612acc565b908152602001604051809103902060030154116108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d90612b9b565b60405180910390fd5b816002816040516108b79190612acc565b908152602001604051809103902060060160009054906101000a900460ff1615610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090d90612e23565b60405180910390fd5b6002836040516109269190612acc565b908152602001604051809103902060060160019054906101000a900460ff16610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90612e8f565b60405180910390fd5b426002846040516109959190612acc565b90815260200160405180910390206004015411156109e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109df90612efb565b60405180910390fd5b60006002846040516109fa9190612acc565b908152602001604051809103902060060160016101000a81548160ff021916908315150217905550610a6d83600285604051610a369190612acc565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611da7565b610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390612f67565b60405180910390fd5b505050565b80600281604051610ac29190612acc565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612b2f565b60405180910390fd5b816000600282604051610b749190612acc565b90815260200160405180910390206003015411610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612b9b565b60405180910390fd5b82600281604051610bd79190612acc565b908152602001604051809103902060060160009054906101000a900460ff1615610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90612e23565b60405180910390fd5b83600281604051610c479190612acc565b908152602001604051809103902060060160019054906101000a900460ff1615610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612c07565b60405180910390fd5b610cf185600287604051610cba9190612acc565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611da7565b610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612f67565b60405180910390fd5b5050505050565b60045481565b826000600282604051610d509190612acc565b90815260200160405180910390206003015414610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990612fd3565b60405180910390fd5b6000851480610db15750600083145b15610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de89061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e58906130ab565b60405180910390fd5b6040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001868152602001600081526020016000815260200160001515815260200160001515815250600285604051610ef59190612acc565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff0219169083151502179055509050506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1688308888888860405160240161108f96959493929190613115565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111199190612acc565b600060405180830381855af49150503d8060008114611154576040519150601f19603f3d011682016040523d82523d6000602084013e611159565b606091505b505090508061119d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611194906131ef565b60405180910390fd5b5050505050505050565b806002816040516111b89190612acc565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90612b2f565b60405180910390fd5b81600060028260405161126a9190612acc565b908152602001604051809103902060030154116112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b390612b9b565b60405180910390fd5b826002816040516112cd9190612acc565b908152602001604051809103902060060160009054906101000a900460ff161561132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390612e23565b60405180910390fd5b8360028160405161133d9190612acc565b908152602001604051809103902060060160019054906101000a900460ff161561139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390612c07565b60405180910390fd5b600354426113aa919061323e565b6002866040516113ba9190612acc565b90815260200160405180910390206005018190555060016002866040516113e19190612acc565b908152602001604051809103902060060160006101000a81548160ff021916908315150217905550846040516114179190612acc565b60405180910390207f37b4fae7fd90ce3674204f79d686d40c4069a66c402976717d4f30817c0c093960405160405180910390a25050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806002816040516114899190612acc565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90612b2f565b60405180910390fd5b81600060028260405161153b9190612acc565b9081526020016040518091039020600301541161158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612b9b565b60405180910390fd5b8260028160405161159e9190612acc565b908152602001604051809103902060060160019054906101000a900460ff16156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490612c07565b60405180910390fd5b60028460405161160d9190612acc565b908152602001604051809103902060060160009054906101000a900460ff1680156116595750426002856040516116449190612acc565b90815260200160405180910390206005015411155b611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f906132e0565b60405180910390fd5b60006002856040516116aa9190612acc565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006002856040516116e49190612acc565b9081526020016040518091039020600501819055506117448460028660405161170d9190612acc565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611da7565b611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a9061334c565b60405180910390fd5b50505050565b611791611d9f565b73ffffffffffffffffffffffffffffffffffffffff166117af611b23565b73ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc90612cdf565b60405180910390fd5b61180f600061233c565b565b806002816040516118229190612acc565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890612b2f565b60405180910390fd5b8160006002826040516118d49190612acc565b90815260200160405180910390206003015411611926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191d90612b9b565b60405180910390fd5b826002816040516119379190612acc565b908152602001604051809103902060060160019054906101000a900460ff1615611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90612c07565b60405180910390fd5b6002846040516119a69190612acc565b908152602001604051809103902060060160009054906101000a900460ff1615611a6e5760006002856040516119dc9190612acc565b908152602001604051809103902060060160006101000a81548160ff0219169083151502179055506000600285604051611a169190612acc565b90815260200160405180910390206005018190555083604051611a399190612acc565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a25b6001600285604051611a809190612acc565b908152602001604051809103902060060160016101000a81548160ff02191690831515021790555060045442611ab6919061323e565b600285604051611ac69190612acc565b90815260200160405180910390206004018190555083604051611ae99190612acc565b60405180910390207f5e14b9b7c3d9675ce5ecb24ee8181d371561709a08aa9c412acb36627386dba860405160405180910390a250505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050611bc3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166124009092919063ffffffff16565b50505050565b6002818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154908060050154908060060160009054906101000a900460ff16908060060160019054906101000a900460ff16905088565b60035481565b611caf611d9f565b73ffffffffffffffffffffffffffffffffffffffff16611ccd611b23565b73ffffffffffffffffffffffffffffffffffffffff1614611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a90612cdf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a906133de565b60405180910390fd5b611d9c8161233c565b50565b600033905090565b6000826000600282604051611dbc9190612acc565b90815260200160405180910390206003015411611e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0590612b9b565b60405180910390fd5b83600281604051611e1f9190612acc565b908152602001604051809103902060060160009054906101000a900460ff1615611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7590612e23565b60405180910390fd5b84600281604051611e8f9190612acc565b908152602001604051809103902060060160019054906101000a900460ff1615611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590612c07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f559061344a565b60405180910390fd5b6000600287604051611f709190612acc565b90815260200160405180910390206003015411611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb9906134b6565b60405180910390fd5b6000600287604051611fd49190612acc565b908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060028860405161201a9190612acc565b908152602001604051809103902060030154905060006002896040516120409190612acc565b908152602001604051809103902060030181905550808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016120b39291906134d6565b60206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121039190613514565b10156121135761211282611b4c565b5b60006002896040516121259190612acc565b9081526020016040518091039020600301541461214557612144613541565b5b6002886040516121559190612acc565b908152602001604051809103902060060160019054906101000a900460ff161561218257612181613541565b5b6002886040516121929190612acc565b908152602001604051809103902060060160009054906101000a900460ff16156121bf576121be613541565b5b6002886040516121cf9190612acc565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160009055600482016000905560058201600090556006820160006101000a81549060ff02191690556006820160016101000a81549060ff02191690555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8389848c6000806040518763ffffffff1660e01b81526004016122fb969594939291906135ab565b600060405180830381600087803b15801561231557600080fd5b505af1158015612329573d6000803e3d6000fd5b5050505060019550505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008573ffffffffffffffffffffffffffffffffffffffff16858560405160240161242f929190613613565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124b99190612acc565b6000604051808303816000865af19150503d80600081146124f6576040519150601f19603f3d011682016040523d82523d6000602084013e6124fb565b606091505b509150915081801561252957506000815114806125285750808060200190518101906125279190613668565b5b5b925050509392505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b600061257b601383612534565b915061258682612545565b602082019050919050565b600060208201905081810360008301526125aa8161256e565b9050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612618826125cf565b810181811067ffffffffffffffff82111715612637576126366125e0565b5b80604052505050565b600061264a6125b1565b9050612656828261260f565b919050565b600067ffffffffffffffff821115612676576126756125e0565b5b61267f826125cf565b9050602081019050919050565b82818337600083830152505050565b60006126ae6126a98461265b565b612640565b9050828152602081018484840111156126ca576126c96125ca565b5b6126d584828561268c565b509392505050565b600082601f8301126126f2576126f16125c5565b5b813561270284826020860161269b565b91505092915050565b600060208284031215612721576127206125bb565b5b600082013567ffffffffffffffff81111561273f5761273e6125c0565b5b61274b848285016126dd565b91505092915050565b6000819050919050565b61276781612754565b811461277257600080fd5b50565b6000813590506127848161275e565b92915050565b6000602082840312156127a05761279f6125bb565b5b60006127ae84828501612775565b91505092915050565b6127c081612754565b82525050565b60006020820190506127db60008301846127b7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061280c826127e1565b9050919050565b61281c81612801565b811461282757600080fd5b50565b60008135905061283981612813565b92915050565b60008060008060008060c0878903121561285c5761285b6125bb565b5b600061286a89828a0161282a565b965050602061287b89828a0161282a565b955050604061288c89828a01612775565b945050606087013567ffffffffffffffff8111156128ad576128ac6125c0565b5b6128b989828a016126dd565b93505060806128ca89828a01612775565b92505060a06128db89828a0161282a565b9150509295509295509295565b6000819050919050565b600061290d612908612903846127e1565b6128e8565b6127e1565b9050919050565b600061291f826128f2565b9050919050565b600061293182612914565b9050919050565b61294181612926565b82525050565b600060208201905061295c6000830184612938565b92915050565b61296b81612801565b82525050565b60006020820190506129866000830184612962565b92915050565b6000602082840312156129a2576129a16125bb565b5b60006129b08482850161282a565b91505092915050565b60008115159050919050565b6129ce816129b9565b82525050565b6000610100820190506129ea600083018b612962565b6129f7602083018a612962565b612a046040830189612962565b612a1160608301886127b7565b612a1e60808301876127b7565b612a2b60a08301866127b7565b612a3860c08301856129c5565b612a4560e08301846129c5565b9998505050505050505050565b600081519050919050565b600081905092915050565b60005b83811015612a86578082015181840152602081019050612a6b565b83811115612a95576000848401525b50505050565b6000612aa682612a52565b612ab08185612a5d565b9350612ac0818560208601612a68565b80840191505092915050565b6000612ad88284612a9b565b915081905092915050565b7f4e6f7420417574686f72697a65642e0000000000000000000000000000000000600082015250565b6000612b19600f83612534565b9150612b2482612ae3565b602082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f4e6f7420696e20657363726f772e000000000000000000000000000000000000600082015250565b6000612b85600e83612534565b9150612b9082612b4f565b602082019050919050565b60006020820190508181036000830152612bb481612b78565b9050919050565b7f526571756573742046726f7a656e210000000000000000000000000000000000600082015250565b6000612bf1600f83612534565b9150612bfc82612bbb565b602082019050919050565b60006020820190508181036000830152612c2081612be4565b9050919050565b7f456d657267656e6379436c61696d204e4f5420696e6974696174656400000000600082015250565b6000612c5d601c83612534565b9150612c6882612c27565b602082019050919050565b60006020820190508181036000830152612c8c81612c50565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cc9602083612534565b9150612cd482612c93565b602082019050919050565b60006020820190508181036000830152612cf881612cbc565b9050919050565b7f66726f7a656e20706572696f6420746f6f2073686f7274000000000000000000600082015250565b6000612d35601783612534565b9150612d4082612cff565b602082019050919050565b60006020820190508181036000830152612d6481612d28565b9050919050565b7f656d657267656e637920706572696f6420746f6f2073686f7274000000000000600082015250565b6000612da1601a83612534565b9150612dac82612d6b565b602082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f496e20656d657267656e63795374617465000000000000000000000000000000600082015250565b6000612e0d601183612534565b9150612e1882612dd7565b602082019050919050565b60006020820190508181036000830152612e3c81612e00565b9050919050565b7f4e6f742066726f7a656e21000000000000000000000000000000000000000000600082015250565b6000612e79600b83612534565b9150612e8482612e43565b602082019050919050565b60006020820190508181036000830152612ea881612e6c565b9050919050565b7f4e6f742059657421000000000000000000000000000000000000000000000000600082015250565b6000612ee5600883612534565b9150612ef082612eaf565b602082019050919050565b60006020820190508181036000830152612f1481612ed8565b9050919050565b7f5769746864726177204661696c65642100000000000000000000000000000000600082015250565b6000612f51601083612534565b9150612f5c82612f1b565b602082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f416c726561647920696e20457363726f772e0000000000000000000000000000600082015250565b6000612fbd601283612534565b9150612fc882612f87565b602082019050919050565b60006020820190508181036000830152612fec81612fb0565b9050919050565b7f5a65726f2056616c756500000000000000000000000000000000000000000000600082015250565b6000613029600a83612534565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f706179656520616464726573732063616e6e6f74206265203000000000000000600082015250565b6000613095601983612534565b91506130a08261305f565b602082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b600082825260208201905092915050565b60006130e782612a52565b6130f181856130cb565b9350613101818560208601612a68565b61310a816125cf565b840191505092915050565b600060c08201905061312a6000830189612962565b6131376020830188612962565b61314460408301876127b7565b818103606083015261315681866130dc565b905061316560808301856127b7565b61317260a0830184612962565b979650505050505050565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b60006131d9602683612534565b91506131e48261317d565b604082019050919050565b60006020820190508181036000830152613208816131cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061324982612754565b915061325483612754565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132895761328861320f565b5b828201905092915050565b7f4e6f742079657421000000000000000000000000000000000000000000000000600082015250565b60006132ca600883612534565b91506132d582613294565b602082019050919050565b600060208201905081810360008301526132f9816132bd565b9050919050565b7f5769746864726177206661696c65642100000000000000000000000000000000600082015250565b6000613336601083612534565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133c8602683612534565b91506133d38261336c565b604082019050919050565b600060208201905081810360008301526133f7816133bb565b9050919050565b7f5a45524f20616464647265737300000000000000000000000000000000000000600082015250565b6000613434600d83612534565b915061343f826133fe565b602082019050919050565b6000602082019050818103600083015261346381613427565b9050919050565b7f5a45524f20416d6f756e74000000000000000000000000000000000000000000600082015250565b60006134a0600b83612534565b91506134ab8261346a565b602082019050919050565b600060208201905081810360008301526134cf81613493565b9050919050565b60006040820190506134eb6000830185612962565b6134f86020830184612962565b9392505050565b60008151905061350e8161275e565b92915050565b60006020828403121561352a576135296125bb565b5b6000613538848285016134ff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000819050919050565b600061359561359061358b84613570565b6128e8565b612754565b9050919050565b6135a58161357a565b82525050565b600060c0820190506135c06000830189612962565b6135cd6020830188612962565b6135da60408301876127b7565b81810360608301526135ec81866130dc565b90506135fb608083018561359c565b61360860a0830184612962565b979650505050505050565b60006040820190506136286000830185612962565b61363560208301846127b7565b9392505050565b613645816129b9565b811461365057600080fd5b50565b6000815190506136628161363c565b92915050565b60006020828403121561367e5761367d6125bb565b5b600061368c84828501613653565b9150509291505056fea26469706673582212207ef5490a21619ad4df36fb8f72fe764e2a315eee4779e9725b22e504ae219d6e64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20EscrowToPay__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20FeeProxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610875806100206000396000f3fe6080604052600436106100225760003560e01c8063c219a14d1461006757610062565b36610062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610059906103a3565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e600480360381019061008991906104c6565b610090565b005b61009b8787876101c7565b6100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906105c1565b60405180910390fd5b6000821180156101175750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610167576101278782846101c7565b610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d9061062d565b60405180910390fd5b5b838360405161017792919061068c565b60405180910390207f9f16cbcc523c67a60c450e5ffe4f3b7b6dbe772e7abcadb2686ce029a9a0a2b688888886866040516101b69594939291906106c3565b60405180910390a250505050505050565b6000833b6101d457600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff1633858560405160240161020293929190610716565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161028c91906107bc565b6000604051808303816000865af19150503d80600081146102c9576040519150601f19603f3d011682016040523d82523d6000602084013e6102ce565b606091505b505090503d600081146102e857602081146102f157600080fd5b600192506102fd565b60206000803e60005192505b508061033e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103359061081f565b60405180910390fd5b509392505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b600061038d601383610346565b915061039882610357565b602082019050919050565b600060208201905081810360008301526103bc81610380565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f8826103cd565b9050919050565b610408816103ed565b811461041357600080fd5b50565b600081359050610425816103ff565b92915050565b6000819050919050565b61043e8161042b565b811461044957600080fd5b50565b60008135905061045b81610435565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261048657610485610461565b5b8235905067ffffffffffffffff8111156104a3576104a2610466565b5b6020830191508360018202830111156104bf576104be61046b565b5b9250929050565b600080600080600080600060c0888a0312156104e5576104e46103c3565b5b60006104f38a828b01610416565b97505060206105048a828b01610416565b96505060406105158a828b0161044c565b955050606088013567ffffffffffffffff811115610536576105356103c8565b5b6105428a828b01610470565b945094505060806105558a828b0161044c565b92505060a06105668a828b01610416565b91505092959891949750929550565b7f7061796d656e74207472616e7366657246726f6d2829206661696c6564000000600082015250565b60006105ab601d83610346565b91506105b682610575565b602082019050919050565b600060208201905081810360008301526105da8161059e565b9050919050565b7f666565207472616e7366657246726f6d2829206661696c656400000000000000600082015250565b6000610617601983610346565b9150610622826105e1565b602082019050919050565b600060208201905081810360008301526106468161060a565b9050919050565b600081905092915050565b82818337600083830152505050565b6000610673838561064d565b9350610680838584610658565b82840190509392505050565b6000610699828486610667565b91508190509392505050565b6106ae816103ed565b82525050565b6106bd8161042b565b82525050565b600060a0820190506106d860008301886106a5565b6106e560208301876106a5565b6106f260408301866106b4565b6106ff60608301856106b4565b61070c60808301846106a5565b9695505050505050565b600060608201905061072b60008301866106a5565b61073860208301856106a5565b61074560408301846106b4565b949350505050565b600081519050919050565b60005b8381101561077657808201518184015260208101905061075b565b83811115610785576000848401525b50505050565b60006107968261074d565b6107a0818561064d565b93506107b0818560208601610758565b80840191505092915050565b60006107c8828461078b565b915081905092915050565b7f7472616e7366657246726f6d282920686173206265656e207265766572746564600082015250565b6000610809602083610346565b9150610814826107d3565b602082019050919050565b60006020820190508181036000830152610838816107fc565b905091905056fea2646970667358221220b9b836a03da1aa90d1c7846f44a91220029e4ac0ef63cf70084474dd70ea1a2364736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20FeeProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Proxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b5061057a806100206000396000f3fe6080604052600436106100225760003560e01c80630784bca31461006757610062565b36610062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100599061021b565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e6004803603810190610089919061033e565b610090565b005b60008590508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3387876040518463ffffffff1660e01b81526004016100d2939291906103e4565b602060405180830381600087803b1580156100ec57600080fd5b505af1158015610100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101249190610453565b610163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015a906104cc565b60405180910390fd5b828260405161017392919061052b565b60405180910390207f4d4e9dbb7207a31cc25529ccb52e52ddba30ded7734e32691d13da66df7f81da8787876040516101ae939291906103e4565b60405180910390a2505050505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b60006102056013836101be565b9150610210826101cf565b602082019050919050565b60006020820190508181036000830152610234816101f8565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061027082610245565b9050919050565b61028081610265565b811461028b57600080fd5b50565b60008135905061029d81610277565b92915050565b6000819050919050565b6102b6816102a3565b81146102c157600080fd5b50565b6000813590506102d3816102ad565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126102fe576102fd6102d9565b5b8235905067ffffffffffffffff81111561031b5761031a6102de565b5b602083019150836001820283011115610337576103366102e3565b5b9250929050565b60008060008060006080868803121561035a5761035961023b565b5b60006103688882890161028e565b95505060206103798882890161028e565b945050604061038a888289016102c4565b935050606086013567ffffffffffffffff8111156103ab576103aa610240565b5b6103b7888289016102e8565b92509250509295509295909350565b6103cf81610265565b82525050565b6103de816102a3565b82525050565b60006060820190506103f960008301866103c6565b61040660208301856103c6565b61041360408301846103d5565b949350505050565b60008115159050919050565b6104308161041b565b811461043b57600080fd5b50565b60008151905061044d81610427565b92915050565b6000602082840312156104695761046861023b565b5b60006104778482850161043e565b91505092915050565b7f7472616e7366657246726f6d2829206661696c65640000000000000000000000600082015250565b60006104b66015836101be565b91506104c182610480565b602082019050919050565b600060208201905081810360008301526104e5816104a9565b9050919050565b600081905092915050565b82818337600083830152505050565b600061051283856104ec565b935061051f8385846104f7565b82840190509392505050565b6000610538828486610506565b9150819050939250505056fea2646970667358221220cf1d986b69990e99d1bacdec2fc867a95742d7328b90ab8aa029c13738a873a764736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Proxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToConversion__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_owner",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"},{internalType:"address",name:"_paymentProxy",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:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestSwapFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_newSwapRouterAddress",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"swapRouter",outputs:[{internalType:"contract ISwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxy",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"uint256",name:"_amountInMax",type:"uint256"},{internalType:"address[]",name:"_swapRouterPath",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:"_deadline",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"},{inputs:[{internalType:"address",name:"_chainlinkConversionPath",type:"address"}],name:"updateConversionPathAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_newRequestSwapFees",type:"uint256"}],name:"updateRequestSwapFees",outputs:[],stateMutability:"nonpayable",type:"function"}],a="0x60806040523480156200001157600080fd5b50604051620026c7380380620026c78339818101604052810190620000379190620001a5565b620000576200004b6200006f60201b60201c565b6200007760201b60201c565b62000068816200007760201b60201c565b50620001d7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200016d8262000140565b9050919050565b6200017f8162000160565b81146200018b57600080fd5b50565b6000815190506200019f8162000174565b92915050565b600060208284031215620001be57620001bd6200013b565b5b6000620001ce848285016200018e565b91505092915050565b6124e080620001e76000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063946647f111610071578063946647f114610153578063ad2f5be614610171578063ad6d61061461018d578063c0d78655146101a9578063c31c9c07146101c5578063f2fde38b146101e3576100b4565b80631d7bc74b146100b957806330e175c9146100d55780633e952c1a146100f1578063715018a61461010f5780637a38d1cb146101195780638da5cb5b14610135575b600080fd5b6100d360048036038101906100ce9190611554565b6101ff565b005b6100ef60048036038101906100ea91906115df565b610285565b005b6100f9610302565b604051610106919061161b565b60405180910390f35b610117610308565b005b610133600480360381019061012e91906115df565b610390565b005b61013d610450565b60405161014a9190611645565b60405180910390f35b61015b610479565b60405161016891906116bf565b60405180910390f35b61018b600480360381019061018691906116da565b61049f565b005b6101a760048036038101906101a29190611928565b6104fb565b005b6101c360048036038101906101be91906115df565b610b91565b005b6101cd610c51565b6040516101da9190611a91565b60405180910390f35b6101fd60048036038101906101f891906115df565b610c77565b005b610207610d6f565b73ffffffffffffffffffffffffffffffffffffffff16610225610450565b73ffffffffffffffffffffffffffffffffffffffff161461027b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027290611b09565b60405180910390fd5b8060038190555050565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506102fc600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d779092919063ffffffff16565b50505050565b60035481565b610310610d6f565b73ffffffffffffffffffffffffffffffffffffffff1661032e610450565b73ffffffffffffffffffffffffffffffffffffffff1614610384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037b90611b09565b60405180910390fd5b61038e6000610eab565b565b610398610d6f565b73ffffffffffffffffffffffffffffffffffffffff166103b6610450565b73ffffffffffffffffffffffffffffffffffffffff161461040c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040390611b09565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506104f483828473ffffffffffffffffffffffffffffffffffffffff16610d779092919063ffffffff16565b5050505050565b856001875161050a9190611b58565b8151811061051b5761051a611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1687600189516105489190611b58565b8151811061055957610558611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061e90611cbf565b60405180910390fd5b6000610634878b87610f6f565b905060006103e8600354836106499190611cdf565b6106539190611d68565b905061069d33308c8c60008151811061066f5761066e611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16611034909392919063ffffffff16565b6106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d390611e0b565b60405180910390fd5b6106f48d8b8b8785876106ef9190611e2b565b61116b565b60008d90508073ffffffffffffffffffffffffffffffffffffffff16633af2c0128e8e8c8c8c8c8a8c6040518963ffffffff1660e01b8152600401610740989796959493929190611fc7565b600060405180830381600087803b15801561075a57600080fd5b505af192505050801561076b575060015b6107dc573d806000811461079b576040519150601f19603f3d011682016040523d82523d6000602084013e6107a0565b606091505b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d39061209f565b60405180910390fd5b61082e86838c60018e516107f09190611b58565b8151811061080157610800611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166113d69092919063ffffffff16565b5060008a60008151811061084557610844611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108859190611645565b60206040518083038186803b15801561089d57600080fd5b505afa1580156108b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d591906120d4565b11156109c6576109c4338b6000815181106108f3576108f2611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109339190611645565b60206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098391906120d4565b8c60008151811061099757610996611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166113d69092919063ffffffff16565b505b60008a60018c516109d79190611b58565b815181106109e8576109e7611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a289190611645565b60206040518083038186803b158015610a4057600080fd5b505afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7891906120d4565b1115610b8157610b7f338b60018d51610a919190611b58565b81518110610aa257610aa1611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ae29190611645565b60206040518083038186803b158015610afa57600080fd5b505afa158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3291906120d4565b8c60018e51610b419190611b58565b81518110610b5257610b51611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166113d69092919063ffffffff16565b505b5050505050505050505050505050565b610b99610d6f565b73ffffffffffffffffffffffffffffffffffffffff16610bb7610450565b73ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490611b09565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c7f610d6f565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610450565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90611b09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90612173565b60405180910390fd5b610d6c81610eab565b50565b600033905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610da6929190612193565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e3091906121f8565b6000604051808303816000865af19150503d8060008114610e6d576040519150601f19603f3d011682016040523d82523d6000602084013e610e72565b606091505b5091509150818015610ea05750600081511480610e9f575080806020019051810190610e9e9190612247565b5b5b925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbd4122a8385610fbb9190611e2b565b866040518363ffffffff1660e01b8152600401610fd9929190612274565b604080518083038186803b158015610ff057600080fd5b505afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906122a4565b50809150509392505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff16868686604051602401611065939291906122e4565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ef91906121f8565b6000604051808303816000865af19150503d806000811461112c576040519150601f19603f3d011682016040523d82523d6000602084013e611131565b606091505b509150915081801561115f575060008151148061115e57508080602001905181019061115d9190612247565b5b5b92505050949350505050565b60008360008151811061118157611180611b8c565b5b60200260200101519050848173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016111e992919061231b565b60206040518083038186803b15801561120157600080fd5b505afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123991906120d4565b10156112495761124881610285565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee83878730886040518663ffffffff1660e01b81526004016112ac959493929190612344565b600060405180830381600087803b1580156112c657600080fd5b505af11580156112da573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113039190612461565b50600084600186516113159190611b58565b8151811061132657611325611b8c565b5b60200260200101519050828173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e308a6040518363ffffffff1660e01b815260040161136c92919061231b565b60206040518083038186803b15801561138457600080fd5b505afa158015611398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bc91906120d4565b10156113cd576113cc818861049f565b5b50505050505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401611405929190612193565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161148f91906121f8565b6000604051808303816000865af19150503d80600081146114cc576040519150601f19603f3d011682016040523d82523d6000602084013e6114d1565b606091505b50915091508180156114ff57506000815114806114fe5750808060200190518101906114fd9190612247565b5b5b925050509392505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6115318161151e565b811461153c57600080fd5b50565b60008135905061154e81611528565b92915050565b60006020828403121561156a57611569611514565b5b60006115788482850161153f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ac82611581565b9050919050565b6115bc816115a1565b81146115c757600080fd5b50565b6000813590506115d9816115b3565b92915050565b6000602082840312156115f5576115f4611514565b5b6000611603848285016115ca565b91505092915050565b6116158161151e565b82525050565b6000602082019050611630600083018461160c565b92915050565b61163f816115a1565b82525050565b600060208201905061165a6000830184611636565b92915050565b6000819050919050565b600061168561168061167b84611581565b611660565b611581565b9050919050565b60006116978261166a565b9050919050565b60006116a98261168c565b9050919050565b6116b98161169e565b82525050565b60006020820190506116d460008301846116b0565b92915050565b600080604083850312156116f1576116f0611514565b5b60006116ff858286016115ca565b9250506020611710858286016115ca565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6117688261171f565b810181811067ffffffffffffffff8211171561178757611786611730565b5b80604052505050565b600061179a61150a565b90506117a6828261175f565b919050565b600067ffffffffffffffff8211156117c6576117c5611730565b5b602082029050602081019050919050565b600080fd5b60006117ef6117ea846117ab565b611790565b90508083825260208201905060208402830185811115611812576118116117d7565b5b835b8181101561183b578061182788826115ca565b845260208401935050602081019050611814565b5050509392505050565b600082601f83011261185a5761185961171a565b5b813561186a8482602086016117dc565b91505092915050565b600080fd5b600067ffffffffffffffff82111561189357611892611730565b5b61189c8261171f565b9050602081019050919050565b82818337600083830152505050565b60006118cb6118c684611878565b611790565b9050828152602081018484840111156118e7576118e6611873565b5b6118f28482856118a9565b509392505050565b600082601f83011261190f5761190e61171a565b5b813561191f8482602086016118b8565b91505092915050565b60008060008060008060008060008060006101608c8e03121561194e5761194d611514565b5b600061195c8e828f016115ca565b9b5050602061196d8e828f016115ca565b9a5050604061197e8e828f0161153f565b995050606061198f8e828f0161153f565b98505060808c013567ffffffffffffffff8111156119b0576119af611519565b5b6119bc8e828f01611845565b97505060a08c013567ffffffffffffffff8111156119dd576119dc611519565b5b6119e98e828f01611845565b96505060c08c013567ffffffffffffffff811115611a0a57611a09611519565b5b611a168e828f016118fa565b95505060e0611a278e828f0161153f565b945050610100611a398e828f016115ca565b935050610120611a4b8e828f0161153f565b925050610140611a5d8e828f0161153f565b9150509295989b509295989b9093969950565b6000611a7b8261168c565b9050919050565b611a8b81611a70565b82525050565b6000602082019050611aa66000830184611a82565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611af3602083611aac565b9150611afe82611abd565b602082019050919050565b60006020820190508181036000830152611b2281611ae6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b638261151e565b9150611b6e8361151e565b925082821015611b8157611b80611b29565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f7468652072657175657374656420746f6b656e206f6e2074686520737761702060008201527f726f75746572206d75737420626520746865207061796d656e7420637572726560208201527f6e63790000000000000000000000000000000000000000000000000000000000604082015250565b6000611c3d604383611aac565b9150611c4882611bbb565b606082019050919050565b60006020820190508181036000830152611c6c81611c30565b9050919050565b7f496e76616c696420666565206164647265730000000000000000000000000000600082015250565b6000611ca9601283611aac565b9150611cb482611c73565b602082019050919050565b60006020820190508181036000830152611cd881611c9c565b9050919050565b6000611cea8261151e565b9150611cf58361151e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d2e57611d2d611b29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611d738261151e565b9150611d7e8361151e565b925082611d8e57611d8d611d39565b5b828204905092915050565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b6000611df5603383611aac565b9150611e0082611d99565b604082019050919050565b60006020820190508181036000830152611e2481611de8565b9050919050565b6000611e368261151e565b9150611e418361151e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e7657611e75611b29565b5b828201905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611eb6816115a1565b82525050565b6000611ec88383611ead565b60208301905092915050565b6000602082019050919050565b6000611eec82611e81565b611ef68185611e8c565b9350611f0183611e9d565b8060005b83811015611f32578151611f198882611ebc565b9750611f2483611ed4565b925050600181019050611f05565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f79578082015181840152602081019050611f5e565b83811115611f88576000848401525b50505050565b6000611f9982611f3f565b611fa38185611f4a565b9350611fb3818560208601611f5b565b611fbc8161171f565b840191505092915050565b600061010082019050611fdd600083018b611636565b611fea602083018a61160c565b8181036040830152611ffc8189611ee1565b905081810360608301526120108188611f8e565b905061201f608083018761160c565b61202c60a0830186611636565b61203960c083018561160c565b61204660e083018461160c565b9998505050505050505050565b7f496e76616c6964207061796d656e742070726f78790000000000000000000000600082015250565b6000612089601583611aac565b915061209482612053565b602082019050919050565b600060208201905081810360008301526120b88161207c565b9050919050565b6000815190506120ce81611528565b92915050565b6000602082840312156120ea576120e9611514565b5b60006120f8848285016120bf565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061215d602683611aac565b915061216882612101565b604082019050919050565b6000602082019050818103600083015261218c81612150565b9050919050565b60006040820190506121a86000830185611636565b6121b5602083018461160c565b9392505050565b600081905092915050565b60006121d282611f3f565b6121dc81856121bc565b93506121ec818560208601611f5b565b80840191505092915050565b600061220482846121c7565b915081905092915050565b60008115159050919050565b6122248161220f565b811461222f57600080fd5b50565b6000815190506122418161221b565b92915050565b60006020828403121561225d5761225c611514565b5b600061226b84828501612232565b91505092915050565b6000604082019050612289600083018561160c565b818103602083015261229b8184611ee1565b90509392505050565b600080604083850312156122bb576122ba611514565b5b60006122c9858286016120bf565b92505060206122da858286016120bf565b9150509250929050565b60006060820190506122f96000830186611636565b6123066020830185611636565b612313604083018461160c565b949350505050565b60006040820190506123306000830185611636565b61233d6020830184611636565b9392505050565b600060a082019050612359600083018861160c565b612366602083018761160c565b81810360408301526123788186611ee1565b90506123876060830185611636565b612394608083018461160c565b9695505050505050565b600067ffffffffffffffff8211156123b9576123b8611730565b5b602082029050602081019050919050565b60006123dd6123d88461239e565b611790565b90508083825260208201905060208402830185811115612400576123ff6117d7565b5b835b81811015612429578061241588826120bf565b845260208401935050602081019050612402565b5050509392505050565b600082601f8301126124485761244761171a565b5b81516124588482602086016123ca565b91505092915050565b60006020828403121561247757612476611514565b5b600082015167ffffffffffffffff81111561249557612494611519565b5b6124a184828501612433565b9150509291505056fea26469706673582212207dca6640f9f7c6efbbc63e24d307c8e42c74cbdab2effc4340482043a31e58d764736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20SwapToConversion__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ISwapRouter__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ISwapRouter__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToPay__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b506040516200200a3803806200200a833981810160405281019062000037919062000217565b620000576200004b620000e160201b60201c565b620000e960201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200025e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001df82620001b2565b9050919050565b620001f181620001d2565b8114620001fd57600080fd5b50565b6000815190506200021181620001e6565b92915050565b60008060408385031215620002315762000230620001ad565b5b6000620002418582860162000200565b9250506020620002548582860162000200565b9150509250929050565b611d9c806200026e6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461011f578063a09b241d1461013d578063c0d7865514610159578063c31c9c0714610175578063f2fde38b146101935761009e565b806330e175c9146100a35780633cd3efef146100bf578063715018a6146100dd5780637262b4c5146100e75780638d09fe2b14610103575b600080fd5b6100bd60048036038101906100b89190611218565b6101af565b005b6100c761022c565b6040516100d491906112a4565b60405180910390f35b6100e5610252565b005b61010160048036038101906100fc9190611218565b6102da565b005b61011d600480360381019061011891906113b0565b61039a565b005b610127610ab7565b60405161013491906114b6565b60405180910390f35b61015760048036038101906101529190611218565b610ae0565b005b610173600480360381019061016e9190611218565b610b5d565b005b61017d610c1d565b60405161018a91906114f2565b60405180910390f35b6101ad60048036038101906101a89190611218565b610c43565b005b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610226600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d3b9092919063ffffffff16565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61025a610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610278610ab7565b73ffffffffffffffffffffffffffffffffffffffff16146102ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c59061156a565b60405180910390fd5b6102d86000610e77565b565b6102e2610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610300610ab7565b73ffffffffffffffffffffffffffffffffffffffff1614610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061156a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000878760008181106103b0576103af61158a565b5b90506020020160208101906103c59190611218565b90506000888860018b8b90506103db91906115e8565b8181106103eb576103ea61158a565b5b90506020020160208101906104009190611218565b90506000858c610410919061161c565b90508a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161044e929190611672565b60206040518083038186803b15801561046657600080fd5b505afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906116b0565b116104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d59061174f565b60405180910390fd5b61050b33308d8673ffffffffffffffffffffffffffffffffffffffff16610f3b909392919063ffffffff16565b61054a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610541906117e1565b60405180910390fd5b8a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105a8929190611672565b60206040518083038186803b1580156105c057600080fd5b505afa1580156105d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f891906116b0565b101561060857610607836101af565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee828d8d8d308a6040518763ffffffff1660e01b815260040161066d969594939291906118d3565b600060405180830381600087803b15801561068757600080fd5b505af115801561069b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106c49190611a7e565b50808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401610723929190611672565b60206040518083038186803b15801561073b57600080fd5b505afa15801561074f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077391906116b0565b10156107835761078282610ae0565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d838f8f8c8c8c8c6040518863ffffffff1660e01b81526004016107ea9796959493929190611b14565b600060405180830381600087803b15801561080457600080fd5b505af1158015610818573d6000803e3d6000fd5b5050505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161085791906114b6565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116b0565b111561096257610960338473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108ea91906114b6565b60206040518083038186803b15801561090257600080fd5b505afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906116b0565b8573ffffffffffffffffffffffffffffffffffffffff166110729092919063ffffffff16565b505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161099d91906114b6565b60206040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906116b0565b1115610aa857610aa6338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a3091906114b6565b60206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906116b0565b8473ffffffffffffffffffffffffffffffffffffffff166110729092919063ffffffff16565b505b50505050505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d3b9092919063ffffffff16565b50505050565b610b65610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610b83610ab7565b73ffffffffffffffffffffffffffffffffffffffff1614610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd09061156a565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c4b610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610c69610ab7565b73ffffffffffffffffffffffffffffffffffffffff1614610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb69061156a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690611bf0565b60405180910390fd5b610d3881610e77565b50565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610d6a929190611c10565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610df49190611cb3565b6000604051808303816000865af19150503d8060008114610e31576040519150601f19603f3d011682016040523d82523d6000602084013e610e36565b606091505b5091509150818015610e645750600081511480610e63575080806020019051810190610e629190611d02565b5b5b925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008673ffffffffffffffffffffffffffffffffffffffff16868686604051602401610f6c93929190611d2f565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610ff69190611cb3565b6000604051808303816000865af19150503d8060008114611033576040519150601f19603f3d011682016040523d82523d6000602084013e611038565b606091505b509150915081801561106657506000815114806110655750808060200190518101906110649190611d02565b5b5b92505050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1685856040516024016110a1929190611c10565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161112b9190611cb3565b6000604051808303816000865af19150503d8060008114611168576040519150601f19603f3d011682016040523d82523d6000602084013e61116d565b606091505b509150915081801561119b575060008151148061119a5750808060200190518101906111999190611d02565b5b5b925050509392505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111e5826111ba565b9050919050565b6111f5816111da565b811461120057600080fd5b50565b600081359050611212816111ec565b92915050565b60006020828403121561122e5761122d6111b0565b5b600061123c84828501611203565b91505092915050565b6000819050919050565b600061126a611265611260846111ba565b611245565b6111ba565b9050919050565b600061127c8261124f565b9050919050565b600061128e82611271565b9050919050565b61129e81611283565b82525050565b60006020820190506112b96000830184611295565b92915050565b6000819050919050565b6112d2816112bf565b81146112dd57600080fd5b50565b6000813590506112ef816112c9565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261131a576113196112f5565b5b8235905067ffffffffffffffff811115611337576113366112fa565b5b602083019150836020820283011115611353576113526112ff565b5b9250929050565b60008083601f8401126113705761136f6112f5565b5b8235905067ffffffffffffffff81111561138d5761138c6112fa565b5b6020830191508360018202830111156113a9576113a86112ff565b5b9250929050565b6000806000806000806000806000806101008b8d0312156113d4576113d36111b0565b5b60006113e28d828e01611203565b9a505060206113f38d828e016112e0565b99505060406114048d828e016112e0565b98505060608b013567ffffffffffffffff811115611425576114246111b5565b5b6114318d828e01611304565b975097505060808b013567ffffffffffffffff811115611454576114536111b5565b5b6114608d828e0161135a565b955095505060a06114738d828e016112e0565b93505060c06114848d828e01611203565b92505060e06114958d828e016112e0565b9150509295989b9194979a5092959850565b6114b0816111da565b82525050565b60006020820190506114cb60008301846114a7565b92915050565b60006114dc82611271565b9050919050565b6114ec816114d1565b82525050565b600060208201905061150760008301846114e3565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061155460208361150d565b915061155f8261151e565b602082019050919050565b6000602082019050818103600083015261158381611547565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f3826112bf565b91506115fe836112bf565b925082821015611611576116106115b9565b5b828203905092915050565b6000611627826112bf565b9150611632836112bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611667576116666115b9565b5b828201905092915050565b600060408201905061168760008301856114a7565b61169460208301846114a7565b9392505050565b6000815190506116aa816112c9565b92915050565b6000602082840312156116c6576116c56111b0565b5b60006116d48482850161169b565b91505092915050565b7f4e6f742073756666696369656e7420616c6c6f77616e636520666f722073776160008201527f7020746f207061792e0000000000000000000000000000000000000000000000602082015250565b600061173960298361150d565b9150611744826116dd565b604082019050919050565b600060208201905081810360008301526117688161172c565b9050919050565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b60006117cb60338361150d565b91506117d68261176f565b604082019050919050565b600060208201905081810360008301526117fa816117be565b9050919050565b61180a816112bf565b82525050565b600082825260208201905092915050565b6000819050919050565b611834816111da565b82525050565b6000611846838361182b565b60208301905092915050565b60006118616020840184611203565b905092915050565b6000602082019050919050565b60006118828385611810565b935061188d82611821565b8060005b858110156118c6576118a38284611852565b6118ad888261183a565b97506118b883611869565b925050600181019050611891565b5085925050509392505050565b600060a0820190506118e86000830189611801565b6118f56020830188611801565b8181036040830152611908818688611876565b905061191760608301856114a7565b6119246080830184611801565b979650505050505050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119788261192f565b810181811067ffffffffffffffff8211171561199757611996611940565b5b80604052505050565b60006119aa6111a6565b90506119b6828261196f565b919050565b600067ffffffffffffffff8211156119d6576119d5611940565b5b602082029050602081019050919050565b60006119fa6119f5846119bb565b6119a0565b90508083825260208201905060208402830185811115611a1d57611a1c6112ff565b5b835b81811015611a465780611a32888261169b565b845260208401935050602081019050611a1f565b5050509392505050565b600082601f830112611a6557611a646112f5565b5b8151611a758482602086016119e7565b91505092915050565b600060208284031215611a9457611a936111b0565b5b600082015167ffffffffffffffff811115611ab257611ab16111b5565b5b611abe84828501611a50565b91505092915050565b600082825260208201905092915050565b82818337600083830152505050565b6000611af38385611ac7565b9350611b00838584611ad8565b611b098361192f565b840190509392505050565b600060c082019050611b29600083018a6114a7565b611b3660208301896114a7565b611b436040830188611801565b8181036060830152611b56818688611ae7565b9050611b656080830185611801565b611b7260a08301846114a7565b98975050505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611bda60268361150d565b9150611be582611b7e565b604082019050919050565b60006020820190508181036000830152611c0981611bcd565b9050919050565b6000604082019050611c2560008301856114a7565b611c326020830184611801565b9392505050565b600081519050919050565b600081905092915050565b60005b83811015611c6d578082015181840152602081019050611c52565b83811115611c7c576000848401525b50505050565b6000611c8d82611c39565b611c978185611c44565b9350611ca7818560208601611c4f565b80840191505092915050565b6000611cbf8284611c82565b915081905092915050565b60008115159050919050565b611cdf81611cca565b8114611cea57600080fd5b50565b600081519050611cfc81611cd6565b92915050565b600060208284031215611d1857611d176111b0565b5b6000611d2684828501611ced565b91505092915050565b6000606082019050611d4460008301866114a7565b611d5160208301856114a7565b611d5e6040830184611801565b94935050505056fea26469706673582212206209345f9c6c98dc25a06526a743c6a290c8b9236eac7fdc3eab8ad2fdb9979a64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20SwapToPay__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IUniswapV2Router02__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IUniswapV2Router02__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthConversionProxy__factory=void 0;const n=r(4),f=[{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"},{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:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],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:"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:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",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"},{inputs:[{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"}],name:"updateConversionPathAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"updateConversionProxyAddress",outputs:[],stateMutability:"nonpayable",type:"function"}],a="0x60806040523480156200001157600080fd5b5060405162001bf438038062001bf483398181016040528101906200003791906200037c565b60016000819055506200005f620000536200012b60201b60201c565b6200013360201b60201c565b82600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620004f3565b600033905090565b6200014e8160016200019460201b620007221790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620001a682826200024760201b60201c565b15620001e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e09062000439565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b290620004d1565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003448262000317565b9050919050565b620003568162000337565b81146200036257600080fd5b50565b60008151905062000376816200034b565b92915050565b60008060006060848603121562000398576200039762000312565b5b6000620003a88682870162000365565b9350506020620003bb8682870162000365565b9250506040620003ce8682870162000365565b9150509250925092565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062000421601f83620003d8565b91506200042e82620003e9565b602082019050919050565b60006020820190508181036000830152620004548162000412565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620004b9602283620003d8565b9150620004c6826200045b565b604082019050919050565b60006020820190508181036000830152620004ec81620004aa565b9050919050565b6116f180620005036000396000f3fe6080604052600436106100865760003560e01c80637a38d1cb116100595780637a38d1cb1461011f578063946647f114610148578063ac473c8a14610173578063bb5f747b1461018f578063d515bb03146101cc57610086565b80633cd3efef1461008b5780634c5a628c146100b65780635536bcde146100cd5780637362d9c8146100f6575b600080fd5b34801561009757600080fd5b506100a06101f7565b6040516100ad9190610b86565b60405180910390f35b3480156100c257600080fd5b506100cb61021d565b005b3480156100d957600080fd5b506100f460048036038101906100ef9190610bd7565b61022f565b005b34801561010257600080fd5b5061011d60048036038101906101189190610bd7565b6102c2565b005b34801561012b57600080fd5b5061014660048036038101906101419190610bd7565b61031d565b005b34801561015457600080fd5b5061015d6103b0565b60405161016a9190610c63565b60405180910390f35b61018d60048036038101906101889190610d6f565b6103d6565b005b34801561019b57600080fd5b506101b660048036038101906101b19190610bd7565b6106df565b6040516101c39190610e6c565b60405180910390f35b3480156101d857600080fd5b506101e16106fc565b6040516101ee9190610b86565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61022d6102286107ca565b6107d2565b565b61023f61023a6107ca565b6106df565b61027e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027590610f0a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6102d26102cd6107ca565b6106df565b610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030890610f0a565b60405180910390fd5b61031a8161082c565b50565b61032d6103286107ca565b6106df565b61036c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036390610f0a565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878760018a8a90506104219190610f59565b81811061043157610430610f8d565b5b90506020020160208101906104469190610bd7565b73ffffffffffffffffffffffffffffffffffffffff161461049c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104939061102e565b60405180910390fd5b6000806104ec898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8786610886565b915091506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c848a8a868a604051602401610546969594939291906110bb565b6040516020818303038152906040527fd7c95e98000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105d09190611191565b600060405180830381855af49150503d806000811461060b576040519150601f19603f3d011682016040523d82523d6000602084013e610610565b606091505b5050905080610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b9061121a565b60405180910390fd5b878760405161066492919061125f565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8c8c8c60008181106106a2576106a1610f8d565b5b90506020020160208101906106b79190610bd7565b89886040516106c99493929190611278565b60405180910390a2505050505050505050505050565b60006106f58260016109d690919063ffffffff16565b9050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61072c82826109d6565b1561076c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076390611309565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6107e6816001610a9e90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61084081600161072290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6000806000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b81526004016108e991906113e7565b60606040518083038186803b15801561090157600080fd5b505afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610939919061141e565b925092509250600086148061095957508582426109569190610f59565b11155b610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f906114bd565b60405180910390fd5b8083896109a591906114dd565b6109af9190611566565b94508083886109be91906114dd565b6109c89190611566565b935050505094509492505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e90611609565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610aa882826109d6565b610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade9061169b565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b7082610b45565b9050919050565b610b8081610b65565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b600080fd5b600080fd5b610bb481610b65565b8114610bbf57600080fd5b50565b600081359050610bd181610bab565b92915050565b600060208284031215610bed57610bec610ba1565b5b6000610bfb84828501610bc2565b91505092915050565b6000819050919050565b6000610c29610c24610c1f84610b45565b610c04565b610b45565b9050919050565b6000610c3b82610c0e565b9050919050565b6000610c4d82610c30565b9050919050565b610c5d81610c42565b82525050565b6000602082019050610c786000830184610c54565b92915050565b6000819050919050565b610c9181610c7e565b8114610c9c57600080fd5b50565b600081359050610cae81610c88565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610cd957610cd8610cb4565b5b8235905067ffffffffffffffff811115610cf657610cf5610cb9565b5b602083019150836020820283011115610d1257610d11610cbe565b5b9250929050565b60008083601f840112610d2f57610d2e610cb4565b5b8235905067ffffffffffffffff811115610d4c57610d4b610cb9565b5b602083019150836001820283011115610d6857610d67610cbe565b5b9250929050565b600080600080600080600080600060e08a8c031215610d9157610d90610ba1565b5b6000610d9f8c828d01610bc2565b9950506020610db08c828d01610c9f565b98505060408a013567ffffffffffffffff811115610dd157610dd0610ba6565b5b610ddd8c828d01610cc3565b975097505060608a013567ffffffffffffffff811115610e0057610dff610ba6565b5b610e0c8c828d01610d19565b95509550506080610e1f8c828d01610c9f565b93505060a0610e308c828d01610bc2565b92505060c0610e418c828d01610c9f565b9150509295985092959850929598565b60008115159050919050565b610e6681610e51565b82525050565b6000602082019050610e816000830184610e5d565b92915050565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b6000610ef4604083610e87565b9150610eff82610e98565b604082019050919050565b60006020820190508181036000830152610f2381610ee7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f6482610c7e565b9150610f6f83610c7e565b925082821015610f8257610f81610f2a565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f7061796d656e742063757272656e6379206d75737420626520746865206e617460008201527f69766520746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000611018602983610e87565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b61105781610c7e565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061109a838561105d565b93506110a783858461106e565b6110b08361107d565b840190509392505050565b600060a0820190506110d06000830189610b77565b6110dd602083018861104e565b81810360408301526110f081868861108e565b90506110ff606083018561104e565b61110c6080830184610b77565b979650505050505050565b600081519050919050565b600081905092915050565b60005b8381101561114b578082015181840152602081019050611130565b8381111561115a576000848401525b50505050565b600061116b82611117565b6111758185611122565b935061118581856020860161112d565b80840191505092915050565b600061119d8284611160565b915081905092915050565b7f7061796d656e7450726f7879207472616e73666572457861637445746857697460008201527f685265666572656e6365416e64466565206661696c6564000000000000000000602082015250565b6000611204603783610e87565b915061120f826111a8565b604082019050919050565b60006020820190508181036000830152611233816111f7565b9050919050565b60006112468385611122565b935061125383858461106e565b82840190509392505050565b600061126c82848661123a565b91508190509392505050565b600060808201905061128d600083018761104e565b61129a6020830186610b77565b6112a7604083018561104e565b6112b4606083018461104e565b95945050505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b60006112f3601f83610e87565b91506112fe826112bd565b602082019050919050565b60006020820190508181036000830152611322816112e6565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61135e81610b65565b82525050565b60006113708383611355565b60208301905092915050565b6000602082019050919050565b600061139482611329565b61139e8185611334565b93506113a983611345565b8060005b838110156113da5781516113c18882611364565b97506113cc8361137c565b9250506001810190506113ad565b5085935050505092915050565b600060208201905081810360008301526114018184611389565b905092915050565b60008151905061141881610c88565b92915050565b60008060006060848603121561143757611436610ba1565b5b600061144586828701611409565b935050602061145686828701611409565b925050604061146786828701611409565b9150509250925092565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b60006114a7601b83610e87565b91506114b282611471565b602082019050919050565b600060208201905081810360008301526114d68161149a565b9050919050565b60006114e882610c7e565b91506114f383610c7e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561152c5761152b610f2a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061157182610c7e565b915061157c83610c7e565b92508261158c5761158b611537565b5b828204905092915050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006115f3602283610e87565b91506115fe82611597565b604082019050919050565b60006020820190508181036000830152611622816115e6565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611685602183610e87565b915061169082611629565b604082019050919050565b600060208201905081810360008301526116b481611678565b905091905056fea26469706673582212203982943c4676b8a3867152f57674f7cadf33c287c338e7639a6eb63ca79dac7964736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EthConversionProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumFeeProxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50600160008190555061091f806100286000396000f3fe60806040526004361061002d5760003560e01c8063b868980b14610072578063d7c95e981461008e5761006d565b3661006d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006490610391565b60405180910390fd5b600080fd5b61008c600480360381019061008791906104b4565b6100aa565b005b6100a860048036038101906100a3919061053c565b6100ca565b005b6100c38583346100ba9190610605565b868686866100ca565b5050505050565b60026000541415610110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610685565b60405180910390fd5b600260008190555060008673ffffffffffffffffffffffffffffffffffffffff168660405161013e906106d6565b60006040518083038185875af1925050503d806000811461017b576040519150601f19603f3d011682016040523d82523d6000602084013e610180565b606091505b50509050806101c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bb90610737565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561020a573d6000803e3d6000fd5b5060003373ffffffffffffffffffffffffffffffffffffffff168488346102319190610605565b61023b9190610605565b604051610247906106d6565b60006040518083038185875af1925050503d8060008114610284576040519150601f19603f3d011682016040523d82523d6000602084013e610289565b606091505b50509050806102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c4906107c9565b60405180910390fd5b85856040516102dd92919061081d565b60405180910390207fa1c241e337c4610a9d0f881111e977e9dc8690c85fe2108897bb1483c66e6a968989878760405161031a94939291906108a4565b60405180910390a250506001600081905550505050505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b600061037b601383610334565b915061038682610345565b602082019050919050565b600060208201905081810360008301526103aa8161036e565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103e6826103bb565b9050919050565b6103f6816103db565b811461040157600080fd5b50565b600081359050610413816103ed565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261043e5761043d610419565b5b8235905067ffffffffffffffff81111561045b5761045a61041e565b5b60208301915083600182028301111561047757610476610423565b5b9250929050565b6000819050919050565b6104918161047e565b811461049c57600080fd5b50565b6000813590506104ae81610488565b92915050565b6000806000806000608086880312156104d0576104cf6103b1565b5b60006104de88828901610404565b955050602086013567ffffffffffffffff8111156104ff576104fe6103b6565b5b61050b88828901610428565b9450945050604061051e8882890161049f565b925050606061052f88828901610404565b9150509295509295909350565b60008060008060008060a08789031215610559576105586103b1565b5b600061056789828a01610404565b965050602061057889828a0161049f565b955050604087013567ffffffffffffffff811115610599576105986103b6565b5b6105a589828a01610428565b945094505060606105b889828a0161049f565b92505060806105c989828a01610404565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006106108261047e565b915061061b8361047e565b92508282101561062e5761062d6105d6565b5b828203905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061066f601f83610334565b915061067a82610639565b602082019050919050565b6000602082019050818103600083015261069e81610662565b9050919050565b600081905092915050565b50565b60006106c06000836106a5565b91506106cb826106b0565b600082019050919050565b60006106e1826106b3565b9150819050919050565b7f436f756c64206e6f74207061792074686520726563697069656e740000000000600082015250565b6000610721601b83610334565b915061072c826106eb565b602082019050919050565b6000602082019050818103600083015261075081610714565b9050919050565b7f436f756c64206e6f742073656e642072656d61696e696e672066756e6473207460008201527f6f20746865207061796572000000000000000000000000000000000000000000602082015250565b60006107b3602b83610334565b91506107be82610757565b604082019050919050565b600060208201905081810360008301526107e2816107a6565b9050919050565b82818337600083830152505050565b600061080483856106a5565b93506108118385846107e9565b82840190509392505050565b600061082a8284866107f8565b91508190509392505050565b6000819050919050565b600061085b610856610851846103bb565b610836565b6103bb565b9050919050565b600061086d82610840565b9050919050565b600061087f82610862565b9050919050565b61088f81610874565b82525050565b61089e8161047e565b82525050565b60006080820190506108b96000830187610886565b6108c66020830186610895565b6108d36040830185610895565b6108e06060830184610886565b9594505050505056fea2646970667358221220c6c0a6d1678f97752cd566ebf3a8613b60208f5f9b5d614959cb87aec29808d564736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EthereumFeeProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumProxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610506806100206000396000f3fe6080604052600436106100225760003560e01c8063eb7d8df31461006757610062565b36610062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610059906101e3565b60405180910390fd5b600080fd5b610081600480360381019061007c91906102d0565b610083565b005b60008373ffffffffffffffffffffffffffffffffffffffff16346040516100a990610361565b60006040518083038185875af1925050503d80600081146100e6576040519150601f19603f3d011682016040523d82523d6000602084013e6100eb565b606091505b505090508061012f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610126906103c2565b60405180910390fd5b828260405161013f929190610416565b60405180910390207ff20789bd5e67749fbe748d26a9ffacd11036adee6a64a8dbc70cc37a98b4e54285346040516101789291906104a7565b60405180910390a250505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b60006101cd601383610186565b91506101d882610197565b602082019050919050565b600060208201905081810360008301526101fc816101c0565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102388261020d565b9050919050565b6102488161022d565b811461025357600080fd5b50565b6000813590506102658161023f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126102905761028f61026b565b5b8235905067ffffffffffffffff8111156102ad576102ac610270565b5b6020830191508360018202830111156102c9576102c8610275565b5b9250929050565b6000806000604084860312156102e9576102e8610203565b5b60006102f786828701610256565b935050602084013567ffffffffffffffff81111561031857610317610208565b5b6103248682870161027a565b92509250509250925092565b600081905092915050565b50565b600061034b600083610330565b91506103568261033b565b600082019050919050565b600061036c8261033e565b9150819050919050565b7f436f756c64206e6f74207061792074686520726563697069656e740000000000600082015250565b60006103ac601b83610186565b91506103b782610376565b602082019050919050565b600060208201905081810360008301526103db8161039f565b9050919050565b82818337600083830152505050565b60006103fd8385610330565b935061040a8385846103e2565b82840190509392505050565b60006104238284866103f1565b91508190509392505050565b6000819050919050565b600061045461044f61044a8461020d565b61042f565b61020d565b9050919050565b600061046682610439565b9050919050565b60006104788261045b565b9050919050565b6104888161046d565b82525050565b6000819050919050565b6104a18161048e565b82525050565b60006040820190506104bc600083018561047f565b6104c96020830184610498565b939250505056fea264697066735822122069babd0c358c5e5f58cb1c6b01fec7a1e2329e0d467ab12fd4a96030bf50b8b664736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EthereumProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FakeSwapRouter__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610c4c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638803dbee14610030575b600080fd5b61004a60048036038101906100459190610616565b610060565b604051610057919061076e565b60405180910390f35b606081428110156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d906107ed565b60405180910390fd5b600267ffffffffffffffff8111156100c1576100c061080d565b5b6040519080825280602002602001820160405280156100ef5781602001602082028036833780820191505090505b50915087826000815181106101075761010661083c565b5b602002602001018181525050600288610120919061089a565b826001815181106101345761013361083c565b5b60200260200101818152505086826001815181106101555761015461083c565b5b6020026020010151111561019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610966565b60405180910390fd5b6000868660008181106101b4576101b361083c565b5b90506020020160208101906101c99190610986565b90506000878760018181106101e1576101e061083c565b5b90506020020160208101906101f69190610986565b90508360008151811061020c5761020b61083c565b5b60200260200101518173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161024d91906109c2565b60206040518083038186803b15801561026557600080fd5b505afa158015610279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029d91906109f2565b116102dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d490610a91565b60405180910390fd5b6103253330866001815181106102f6576102f561083c565b5b60200260200101518573ffffffffffffffffffffffffffffffffffffffff166103dc909392919063ffffffff16565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87866000815181106103575761035661083c565b5b60200260200101516040518363ffffffff1660e01b815260040161037c929190610ac0565b602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ce9190610b21565b505050509695505050505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff1686868660405160240161040d93929190610b4e565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104979190610bff565b6000604051808303816000865af19150503d80600081146104d4576040519150601f19603f3d011682016040523d82523d6000602084013e6104d9565b606091505b509150915081801561050757506000815114806105065750808060200190518101906105059190610b21565b5b5b92505050949350505050565b600080fd5b600080fd5b6000819050919050565b6105308161051d565b811461053b57600080fd5b50565b60008135905061054d81610527565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261057857610577610553565b5b8235905067ffffffffffffffff81111561059557610594610558565b5b6020830191508360208202830111156105b1576105b061055d565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105e3826105b8565b9050919050565b6105f3816105d8565b81146105fe57600080fd5b50565b600081359050610610816105ea565b92915050565b60008060008060008060a0878903121561063357610632610513565b5b600061064189828a0161053e565b965050602061065289828a0161053e565b955050604087013567ffffffffffffffff81111561067357610672610518565b5b61067f89828a01610562565b9450945050606061069289828a01610601565b92505060806106a389828a0161053e565b9150509295509295509295565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6106e58161051d565b82525050565b60006106f783836106dc565b60208301905092915050565b6000602082019050919050565b600061071b826106b0565b61072581856106bb565b9350610730836106cc565b8060005b8381101561076157815161074888826106eb565b975061075383610703565b925050600181019050610734565b5085935050505092915050565b600060208201905081810360008301526107888184610710565b905092915050565b600082825260208201905092915050565b7f556e69737761705632526f757465723a20455850495245440000000000000000600082015250565b60006107d7601883610790565b91506107e2826107a1565b602082019050919050565b60006020820190508181036000830152610806816107ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108a58261051d565b91506108b08361051d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108e9576108e861086b565b5b828202905092915050565b7f556e69737761705632526f757465723a204558434553534956455f494e50555460008201527f5f414d4f554e5400000000000000000000000000000000000000000000000000602082015250565b6000610950602783610790565b915061095b826108f4565b604082019050919050565b6000602082019050818103600083015261097f81610943565b9050919050565b60006020828403121561099c5761099b610513565b5b60006109aa84828501610601565b91505092915050565b6109bc816105d8565b82525050565b60006020820190506109d760008301846109b3565b92915050565b6000815190506109ec81610527565b92915050565b600060208284031215610a0857610a07610513565b5b6000610a16848285016109dd565b91505092915050565b7f546573742063616e6e6f742070726f636565642c206c61636b206f6620746f6b60008201527f656e7320696e2066616b65207377617020636f6e747261637400000000000000602082015250565b6000610a7b603983610790565b9150610a8682610a1f565b604082019050919050565b60006020820190508181036000830152610aaa81610a6e565b9050919050565b610aba8161051d565b82525050565b6000604082019050610ad560008301856109b3565b610ae26020830184610ab1565b9392505050565b60008115159050919050565b610afe81610ae9565b8114610b0957600080fd5b50565b600081519050610b1b81610af5565b92915050565b600060208284031215610b3757610b36610513565b5b6000610b4584828501610b0c565b91505092915050565b6000606082019050610b6360008301866109b3565b610b7060208301856109b3565b610b7d6040830184610ab1565b949350505050565b600081519050919050565b600081905092915050565b60005b83811015610bb9578082015181840152602081019050610b9e565b83811115610bc8576000848401525b50505050565b6000610bd982610b85565b610be38185610b90565b9350610bf3818560208601610b9b565b80840191505092915050565b6000610c0b8284610bce565b91508190509291505056fea264697066735822122070f792b150626b226f3d4105c42503f9ecc6cf4b1d28df16652c43b5db68424264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.FakeSwapRouter__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20FeeProxy__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20FeeProxy__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IEthereumFeeProxy__factory=void 0;const n=r(4),f=[{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:"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"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IEthereumFeeProxy__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20ConversionProxy__factory=void 0;const n=r(4),f=[{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:[{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"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20ConversionProxy__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistAdminRole__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.WhitelistAdminRole__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistedRole__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.WhitelistedRole__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Migrations__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610396806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b1461006d578063fbdbad3c1461008b578063fdacd576146100a9575b600080fd5b61006b6004803603810190610066919061027c565b6100c5565b005b610075610190565b60405161008291906102b8565b60405180910390f35b6100936101b4565b6040516100a091906102ec565b60405180910390f35b6100c360048036038101906100be9190610333565b6101ba565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018d5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040161015991906102ec565b600060405180830381600087803b15801561017357600080fd5b505af1158015610187573d6000803e3d6000fd5b50505050505b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561021657806001819055505b50565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102498261021e565b9050919050565b6102598161023e565b811461026457600080fd5b50565b60008135905061027681610250565b92915050565b60006020828403121561029257610291610219565b5b60006102a084828501610267565b91505092915050565b6102b28161023e565b82525050565b60006020820190506102cd60008301846102a9565b92915050565b6000819050919050565b6102e6816102d3565b82525050565b600060208201905061030160008301846102dd565b92915050565b610310816102d3565b811461031b57600080fd5b50565b60008135905061032d81610307565b92915050565b60006020828403121561034957610348610219565b5b60006103578482850161031e565b9150509291505056fea2646970667358221220f1e20f2bb570bab53085a7094487bd8ebbad2088431d3b4a25ed44a3758f903264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Migrations__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestDeployer__factory=void 0;const n=r(4),f=[{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:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes32",name:"codeHash",type:"bytes32"}],name:"computeAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes32",name:"codeHash",type:"bytes32"},{internalType:"address",name:"deployer",type:"address"}],name:"computeAddressWithDeployer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"code",type:"bytes"}],name:"deploy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],name:"deployERC1820Implementer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"payoutAddress",type:"address"}],name:"killCreate2Deployer",outputs:[],stateMutability:"nonpayable",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:[],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"},{stateMutability:"payable",type:"receive"}],a="0x608060405234801561001057600080fd5b5061002d61002261004c60201b60201c565b61005460201b60201c565b60008060146101000a81548160ff021916908315150217905550610118565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115a3806101276000396000f3fe6080604052600436106100a05760003560e01c80636447045411610064578063644704541461019157806366cfa057146101ba578063715018a6146101e35780638456cb59146101fa5780638da5cb5b14610211578063f2fde38b1461023c576100a7565b8063076c37b2146100ac5780633f4ba83a146100d5578063481286e6146100ec57806356299481146101295780635c975abb14610166576100a7565b366100a757005b600080fd5b3480156100b857600080fd5b506100d360048036038101906100ce9190610b11565b610265565b005b3480156100e157600080fd5b506100ea6102e0565b005b3480156100f857600080fd5b50610113600480360381019061010e9190610b51565b610366565b6040516101209190610bd2565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610c19565b61037a565b60405161015d9190610bd2565b60405180910390f35b34801561017257600080fd5b5061017b610390565b6040516101889190610c87565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610ce0565b6103a6565b005b3480156101c657600080fd5b506101e160048036038101906101dc9190610e53565b610482565b005b3480156101ef57600080fd5b506101f86104db565b005b34801561020657600080fd5b5061020f610563565b005b34801561021d57600080fd5b506102266105e9565b6040516102339190610bd2565b60405180910390f35b34801561024857600080fd5b50610263600480360381019061025e9190610ec2565b610612565b005b61026d610390565b156102ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a490610f4c565b60405180910390fd5b6102db8282604051806020016102c290610a84565b6020820181038252601f19601f8201166040525061070a565b505050565b6102e861081b565b73ffffffffffffffffffffffffffffffffffffffff166103066105e9565b73ffffffffffffffffffffffffffffffffffffffff161461035c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035390610fb8565b60405180910390fd5b610364610823565b565b600061037283836108c4565b905092915050565b60006103878484846108d9565b90509392505050565b60008060149054906101000a900460ff16905090565b6103ae61081b565b73ffffffffffffffffffffffffffffffffffffffff166103cc6105e9565b73ffffffffffffffffffffffffffffffffffffffff1614610422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041990610fb8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610468573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff16ff5b61048a610390565b156104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c190610f4c565b60405180910390fd5b6104d583838361070a565b50505050565b6104e361081b565b73ffffffffffffffffffffffffffffffffffffffff166105016105e9565b73ffffffffffffffffffffffffffffffffffffffff1614610557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054e90610fb8565b60405180910390fd5b610561600061091d565b565b61056b61081b565b73ffffffffffffffffffffffffffffffffffffffff166105896105e9565b73ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d690610fb8565b60405180910390fd5b6105e76109e1565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61061a61081b565b73ffffffffffffffffffffffffffffffffffffffff166106386105e9565b73ffffffffffffffffffffffffffffffffffffffff161461068e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068590610fb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061104a565b60405180910390fd5b6107078161091d565b50565b60008084471015610750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610747906110b6565b60405180910390fd5b600083511415610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c90611122565b60405180910390fd5b8383516020850187f59050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108079061118e565b60405180910390fd5b809150509392505050565b600033905090565b61082b610390565b61086a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610861906111fa565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108ad61081b565b6040516108ba9190610bd2565b60405180910390a1565b60006108d18383306108d9565b905092915050565b60008060ff60f81b8386866040516020016108f794939291906112d0565b6040516020818303038152906040528051906020012090508060001c9150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6109e9610390565b15610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090610f4c565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610a6d61081b565b604051610a7a9190610bd2565b60405180910390a1565b61024f8061131f83390190565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610ab881610aa5565b8114610ac357600080fd5b50565b600081359050610ad581610aaf565b92915050565b6000819050919050565b610aee81610adb565b8114610af957600080fd5b50565b600081359050610b0b81610ae5565b92915050565b60008060408385031215610b2857610b27610a9b565b5b6000610b3685828601610ac6565b9250506020610b4785828601610afc565b9150509250929050565b60008060408385031215610b6857610b67610a9b565b5b6000610b7685828601610afc565b9250506020610b8785828601610afc565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bbc82610b91565b9050919050565b610bcc81610bb1565b82525050565b6000602082019050610be76000830184610bc3565b92915050565b610bf681610bb1565b8114610c0157600080fd5b50565b600081359050610c1381610bed565b92915050565b600080600060608486031215610c3257610c31610a9b565b5b6000610c4086828701610afc565b9350506020610c5186828701610afc565b9250506040610c6286828701610c04565b9150509250925092565b60008115159050919050565b610c8181610c6c565b82525050565b6000602082019050610c9c6000830184610c78565b92915050565b6000610cad82610b91565b9050919050565b610cbd81610ca2565b8114610cc857600080fd5b50565b600081359050610cda81610cb4565b92915050565b600060208284031215610cf657610cf5610a9b565b5b6000610d0484828501610ccb565b91505092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d6082610d17565b810181811067ffffffffffffffff82111715610d7f57610d7e610d28565b5b80604052505050565b6000610d92610a91565b9050610d9e8282610d57565b919050565b600067ffffffffffffffff821115610dbe57610dbd610d28565b5b610dc782610d17565b9050602081019050919050565b82818337600083830152505050565b6000610df6610df184610da3565b610d88565b905082815260208101848484011115610e1257610e11610d12565b5b610e1d848285610dd4565b509392505050565b600082601f830112610e3a57610e39610d0d565b5b8135610e4a848260208601610de3565b91505092915050565b600080600060608486031215610e6c57610e6b610a9b565b5b6000610e7a86828701610ac6565b9350506020610e8b86828701610afc565b925050604084013567ffffffffffffffff811115610eac57610eab610aa0565b5b610eb886828701610e25565b9150509250925092565b600060208284031215610ed857610ed7610a9b565b5b6000610ee684828501610c04565b91505092915050565b600082825260208201905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000610f36601083610eef565b9150610f4182610f00565b602082019050919050565b60006020820190508181036000830152610f6581610f29565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610fa2602083610eef565b9150610fad82610f6c565b602082019050919050565b60006020820190508181036000830152610fd181610f95565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611034602683610eef565b915061103f82610fd8565b604082019050919050565b6000602082019050818103600083015261106381611027565b9050919050565b7f437265617465323a20696e73756666696369656e742062616c616e6365000000600082015250565b60006110a0601d83610eef565b91506110ab8261106a565b602082019050919050565b600060208201905081810360008301526110cf81611093565b9050919050565b7f437265617465323a2062797465636f6465206c656e677468206973207a65726f600082015250565b600061110c602083610eef565b9150611117826110d6565b602082019050919050565b6000602082019050818103600083015261113b816110ff565b9050919050565b7f437265617465323a204661696c6564206f6e206465706c6f7900000000000000600082015250565b6000611178601983610eef565b915061118382611142565b602082019050919050565b600060208201905081810360008301526111a78161116b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006111e4601483610eef565b91506111ef826111ae565b602082019050919050565b60006020820190508181036000830152611213816111d7565b9050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61126161125c8261121a565b611246565b82525050565b60008160601b9050919050565b600061127f82611267565b9050919050565b600061129182611274565b9050919050565b6112a96112a482610bb1565b611286565b82525050565b6000819050919050565b6112ca6112c582610adb565b6112af565b82525050565b60006112dc8287611250565b6001820191506112ec8286611298565b6014820191506112fc82856112b9565b60208201915061130c82846112b9565b6020820191508190509594505050505056fe608060405234801561001057600080fd5b5061022f806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063249cb3fa14610030575b600080fd5b61004a6004803603810190610045919061018f565b610060565b60405161005791906101de565b60405180910390f35b600080600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166100cc576000801b6100ee565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b905092915050565b600080fd5b6000819050919050565b61010e816100fb565b811461011957600080fd5b50565b60008135905061012b81610105565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061015c82610131565b9050919050565b61016c81610151565b811461017757600080fd5b50565b60008135905061018981610163565b92915050565b600080604083850312156101a6576101a56100f6565b5b60006101b48582860161011c565b92505060206101c58582860161017a565b9150509250929050565b6101d8816100fb565b82525050565b60006020820190506101f360008301846101cf565b9291505056fea26469706673582212200435afd8e1118415b91d8baf1ae8a7f465704298d05a42bc3ef694af903a059064736f6c63430008090033a26469706673582212209194a55d0440201b6b314b0361925f678e3d7d670fc9b227b54e8034ed15842a64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.RequestDeployer__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestHashStorage__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b6200033a565b600033905090565b6200005b816000620000a160201b620003741790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620000b382826200015460201b60201c565b15620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed9062000280565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bf9062000318565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062000268601f836200021f565b9150620002758262000230565b602082019050919050565b600060208201905081810360008301526200029b8162000259565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620003006022836200021f565b91506200030d82620002a2565b604082019050919050565b600060208201905081810360008301526200033381620002f1565b9050919050565b610ce0806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637362d9c81161005b5780637362d9c8146100ff578063bb5f747b1461011b578063d6cd94731461014b578063fe8cc9621461015557610088565b806310154bad1461008d578063291d9549146100a95780633af32abf146100c55780634c5a628c146100f5575b600080fd5b6100a760048036038101906100a29190610763565b610171565b005b6100c360048036038101906100be9190610763565b6101cc565b005b6100df60048036038101906100da9190610763565b610227565b6040516100ec91906107ab565b60405180910390f35b6100fd610244565b005b61011960048036038101906101149190610763565b610256565b005b61013560048036038101906101309190610763565b6102b1565b60405161014291906107ab565b60405180910390f35b6101536102ce565b005b61016f600480360381019061016a9190610881565b6102e0565b005b61018161017c61041c565b6102b1565b6101c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b790610985565b60405180910390fd5b6101c981610424565b50565b6101dc6101d761041c565b6102b1565b61021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021290610985565b60405180910390fd5b6102248161047e565b50565b600061023d8260016104d890919063ffffffff16565b9050919050565b61025461024f61041c565b6105a0565b565b61026661026161041c565b6102b1565b6102a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029c90610985565b60405180910390fd5b6102ae816105fa565b50565b60006102c78260006104d890919063ffffffff16565b9050919050565b6102de6102d961041c565b61047e565b565b6102f06102eb61041c565b610227565b61032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032690610a17565b60405180910390fd5b7f18d417de4779c6e73fd772de6d0f29ed8ff746805f1c997ef63a124ffb3f38e08484338585604051610366959493929190610ad1565b60405180910390a150505050565b61037e82826104d8565b156103be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b590610b66565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b61043881600161037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f60405160405180910390a250565b61049281600161065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054090610bf8565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6105b481600061065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61060e81600061037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b61065e82826104d8565b61069d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069490610c8a565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061073082610705565b9050919050565b61074081610725565b811461074b57600080fd5b50565b60008135905061075d81610737565b92915050565b600060208284031215610779576107786106fb565b5b60006107878482850161074e565b91505092915050565b60008115159050919050565b6107a581610790565b82525050565b60006020820190506107c0600083018461079c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126107eb576107ea6107c6565b5b8235905067ffffffffffffffff811115610808576108076107cb565b5b602083019150836001820283011115610824576108236107d0565b5b9250929050565b60008083601f840112610841576108406107c6565b5b8235905067ffffffffffffffff81111561085e5761085d6107cb565b5b60208301915083600182028301111561087a576108796107d0565b5b9250929050565b6000806000806040858703121561089b5761089a6106fb565b5b600085013567ffffffffffffffff8111156108b9576108b8610700565b5b6108c5878288016107d5565b9450945050602085013567ffffffffffffffff8111156108e8576108e7610700565b5b6108f48782880161082b565b925092505092959194509250565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b600061096f604083610902565b915061097a82610913565b604082019050919050565b6000602082019050818103600083015261099e81610962565b9050919050565b7f57686974656c6973746564526f6c653a2063616c6c657220646f6573206e6f7460008201527f2068617665207468652057686974656c697374656420726f6c65000000000000602082015250565b6000610a01603a83610902565b9150610a0c826109a5565b604082019050919050565b60006020820190508181036000830152610a30816109f4565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610a638385610902565b9350610a70838584610a37565b610a7983610a46565b840190509392505050565b610a8d81610725565b82525050565b600082825260208201905092915050565b6000610ab08385610a93565b9350610abd838584610a37565b610ac683610a46565b840190509392505050565b60006060820190508181036000830152610aec818789610a57565b9050610afb6020830186610a84565b8181036040830152610b0e818486610aa4565b90509695505050505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000610b50601f83610902565b9150610b5b82610b1a565b602082019050919050565b60006020820190508181036000830152610b7f81610b43565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610be2602283610902565b9150610bed82610b86565b604082019050919050565b60006020820190508181036000830152610c1181610bd5565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000610c74602183610902565b9150610c7f82610c18565b604082019050919050565b60006020820190508181036000830152610ca381610c67565b905091905056fea2646970667358221220c81af1882a54186f53c6e3386b6ca8acaf977bbd6fde58fe669877aaa752eab964736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.RequestHashStorage__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestOpenHashSubmitter__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b50604051620019fa380380620019fa833981810160405281019062000037919062000379565b80620000586200004c620000e360201b60201c565b620000eb60201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620004db565b600033905090565b620001068160006200014c60201b620006fc1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200015e8282620001ff60201b60201c565b15620001a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001989062000421565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000273576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026a90620004b9565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002fc82620002cf565b9050919050565b6200030e81620002ef565b81146200031a57600080fd5b50565b6000815190506200032e8162000303565b92915050565b60006200034182620002cf565b9050919050565b620003538162000334565b81146200035f57600080fd5b50565b600081519050620003738162000348565b92915050565b60008060408385031215620003935762000392620002ca565b5b6000620003a3858286016200031d565b9250506020620003b68582860162000362565b9150509250929050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062000409601f83620003c0565b91506200041682620003d1565b602082019050919050565b600060208201905081810360008301526200043c81620003fa565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620004a1602283620003c0565b9150620004ae8262000443565b604082019050919050565b60006020820190508181036000830152620004d48162000492565b9050919050565b61150f80620004eb6000396000f3fe6080604052600436106100ab5760003560e01c806375c268f31161006457806375c268f3146101cb5780638f5b87e1146101f6578063bb5f747b14610233578063cb2537cb14610270578063e40e845714610299578063f76f2256146102c4576100eb565b80631a7626e7146100f0578063263f6a421461011b5780634c5a628c1461014657806351a58abb1461015d578063524eb29c146101795780637362d9c8146101a2576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290610b05565b60405180910390fd5b600080fd5b3480156100fc57600080fd5b506101056102ef565b6040516101129190610b3e565b60405180910390f35b34801561012757600080fd5b506101306102f5565b60405161013d9190610b3e565b60405180910390f35b34801561015257600080fd5b5061015b6102fb565b005b61017760048036038101906101729190610c1e565b61030d565b005b34801561018557600080fd5b506101a0600480360381019061019b9190610cfd565b610450565b005b3480156101ae57600080fd5b506101c960048036038101906101c49190610d68565b61053c565b005b3480156101d757600080fd5b506101e0610597565b6040516101ed9190610b3e565b60405180910390f35b34801561020257600080fd5b5061021d60048036038101906102189190610dc1565b61059d565b60405161022a9190610b3e565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190610d68565b6105e9565b6040516102679190610e09565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190610e24565b610606565b005b3480156102a557600080fd5b506102ae6106b0565b6040516102bb9190610e86565b60405180910390f35b3480156102d057600080fd5b506102d96106d6565b6040516102e69190610f00565b60405180910390f35b60015481565b60025481565b61030b6103066107a4565b6107ac565b565b600061035e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506000610806565b60001c90503461036d8261059d565b146103ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a490610f8d565b60405180910390fd5b6103b634610873565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe8cc962868686866040518563ffffffff1660e01b81526004016104179493929190611038565b600060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050505050505050565b61046061045b6107a4565b6105e9565b61049f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610496906110e5565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516105319190611126565b60405180910390a150565b61054c6105476107a4565b6105e9565b61058b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610582906110e5565b60405180910390fd5b610594816108df565b50565b60035481565b600080600254836105ae9190611170565b90506000600354146105cb57600354816105c891906111f9565b90505b60015481116105df576001549150506105e4565b809150505b919050565b60006105ff82600061093990919063ffffffff16565b9050919050565b6106166106116107a4565b6105e9565b610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c906110e5565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d166001546002546003546040516106a39392919061122a565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107068282610939565b15610746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073d906112ad565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6107c0816000610a0190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b60008082101580156108255750825160208361082291906112cd565b11155b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90611395565b60405180910390fd5b81602001830151905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b6108f38160006106fc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190611427565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610a0b8282610939565b610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a41906114b9565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b6000610aef601383610aa8565b9150610afa82610ab9565b602082019050919050565b60006020820190508181036000830152610b1e81610ae2565b9050919050565b6000819050919050565b610b3881610b25565b82525050565b6000602082019050610b536000830184610b2f565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610b8857610b87610b63565b5b8235905067ffffffffffffffff811115610ba557610ba4610b68565b5b602083019150836001820283011115610bc157610bc0610b6d565b5b9250929050565b60008083601f840112610bde57610bdd610b63565b5b8235905067ffffffffffffffff811115610bfb57610bfa610b68565b5b602083019150836001820283011115610c1757610c16610b6d565b5b9250929050565b60008060008060408587031215610c3857610c37610b59565b5b600085013567ffffffffffffffff811115610c5657610c55610b5e565b5b610c6287828801610b72565b9450945050602085013567ffffffffffffffff811115610c8557610c84610b5e565b5b610c9187828801610bc8565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cca82610c9f565b9050919050565b610cda81610cbf565b8114610ce557600080fd5b50565b600081359050610cf781610cd1565b92915050565b600060208284031215610d1357610d12610b59565b5b6000610d2184828501610ce8565b91505092915050565b6000610d3582610c9f565b9050919050565b610d4581610d2a565b8114610d5057600080fd5b50565b600081359050610d6281610d3c565b92915050565b600060208284031215610d7e57610d7d610b59565b5b6000610d8c84828501610d53565b91505092915050565b610d9e81610b25565b8114610da957600080fd5b50565b600081359050610dbb81610d95565b92915050565b600060208284031215610dd757610dd6610b59565b5b6000610de584828501610dac565b91505092915050565b60008115159050919050565b610e0381610dee565b82525050565b6000602082019050610e1e6000830184610dfa565b92915050565b600080600060608486031215610e3d57610e3c610b59565b5b6000610e4b86828701610dac565b9350506020610e5c86828701610dac565b9250506040610e6d86828701610dac565b9150509250925092565b610e8081610cbf565b82525050565b6000602082019050610e9b6000830184610e77565b92915050565b6000819050919050565b6000610ec6610ec1610ebc84610c9f565b610ea1565b610c9f565b9050919050565b6000610ed882610eab565b9050919050565b6000610eea82610ecd565b9050919050565b610efa81610edf565b82525050565b6000602082019050610f156000830184610ef1565b92915050565b7f6d73672e76616c756520646f6573206e6f74206d61746368207468652066656560008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000610f77602183610aa8565b9150610f8282610f1b565b604082019050919050565b60006020820190508181036000830152610fa681610f6a565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610fd98385610aa8565b9350610fe6838584610fad565b610fef83610fbc565b840190509392505050565b600082825260208201905092915050565b60006110178385610ffa565b9350611024838584610fad565b61102d83610fbc565b840190509392505050565b60006040820190508181036000830152611053818688610fcd565b9050818103602083015261106881848661100b565b905095945050505050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b60006110cf604083610aa8565b91506110da82611073565b604082019050919050565b600060208201905081810360008301526110fe816110c2565b9050919050565b600061111082610ecd565b9050919050565b61112081611105565b82525050565b600060208201905061113b6000830184611117565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061117b82610b25565b915061118683610b25565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156111bf576111be611141565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061120482610b25565b915061120f83610b25565b92508261121f5761121e6111ca565b5b828204905092915050565b600060608201905061123f6000830186610b2f565b61124c6020830185610b2f565b6112596040830184610b2f565b949350505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000611297601f83610aa8565b91506112a282611261565b602082019050919050565b600060208201905081810360008301526112c68161128a565b9050919050565b60006112d882610b25565b91506112e383610b25565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561131857611317611141565b5b828201905092915050565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b600061137f602b83610aa8565b915061138a82611323565b604082019050919050565b600060208201905081810360008301526113ae81611372565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611411602283610aa8565b915061141c826113b5565b604082019050919050565b6000602082019050818103600083015261144081611404565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006114a3602183610aa8565b91506114ae82611447565b604082019050919050565b600060208201905081810360008301526114d281611496565b905091905056fea26469706673582212207e0a0a128de3fb82b3b38ebb6ac6d8d990a26ccfbb902e75df3e6261c5fec03264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.RequestOpenHashSubmitter__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StorageFeeCollector__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b50604051620011db380380620011db8339818101604052810190620000379190620002f0565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200043d565b600033905090565b620000c28160006200010860201b6200047d1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200011a8282620001bb60201b60201c565b156200015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001549062000383565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000226906200041b565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b8826200028b565b9050919050565b620002ca81620002ab565b8114620002d657600080fd5b50565b600081519050620002ea81620002bf565b92915050565b60006020828403121562000309576200030862000286565b5b60006200031984828501620002d9565b91505092915050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b60006200036b601f8362000322565b9150620003788262000333565b602082019050919050565b600060208201905081810360008301526200039e816200035c565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200040360228362000322565b91506200041082620003a5565b604082019050919050565b600060208201905081810360008301526200043681620003f4565b9050919050565b610d8e806200044d6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806375c268f31161006657806375c268f3146101215780638f5b87e11461013f578063bb5f747b1461016f578063cb2537cb1461019f578063e40e8457146101bb5761009e565b80631a7626e7146100a3578063263f6a42146100c15780634c5a628c146100df578063524eb29c146100e95780637362d9c814610105575b600080fd5b6100ab6101d9565b6040516100b89190610769565b60405180910390f35b6100c96101df565b6040516100d69190610769565b60405180910390f35b6100e76101e5565b005b61010360048036038101906100fe91906107e7565b6101f7565b005b61011f600480360381019061011a9190610852565b6102e3565b005b61012961033e565b6040516101369190610769565b60405180910390f35b610159600480360381019061015491906108ab565b610344565b6040516101669190610769565b60405180910390f35b61018960048036038101906101849190610852565b610390565b60405161019691906108f3565b60405180910390f35b6101b960048036038101906101b4919061090e565b6103ad565b005b6101c3610457565b6040516101d09190610970565b60405180910390f35b60015481565b60025481565b6101f56101f0610525565b61052d565b565b610207610202610525565b610390565b610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d90610a0e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516102d89190610a8d565b60405180910390a150565b6102f36102ee610525565b610390565b610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032990610a0e565b60405180910390fd5b61033b81610587565b50565b60035481565b600080600254836103559190610ad7565b9050600060035414610372576003548161036f9190610b60565b90505b60015481116103865760015491505061038b565b809150505b919050565b60006103a68260006105e190919063ffffffff16565b9050919050565b6103bd6103b8610525565b610390565b6103fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f390610a0e565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d1660015460025460035460405161044a93929190610b91565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61048782826105e1565b156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be90610c14565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6105418160006106a990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61059b81600061047d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064990610ca6565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6106b382826105e1565b6106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990610d38565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000819050919050565b61076381610750565b82525050565b600060208201905061077e600083018461075a565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107b482610789565b9050919050565b6107c4816107a9565b81146107cf57600080fd5b50565b6000813590506107e1816107bb565b92915050565b6000602082840312156107fd576107fc610784565b5b600061080b848285016107d2565b91505092915050565b600061081f82610789565b9050919050565b61082f81610814565b811461083a57600080fd5b50565b60008135905061084c81610826565b92915050565b60006020828403121561086857610867610784565b5b60006108768482850161083d565b91505092915050565b61088881610750565b811461089357600080fd5b50565b6000813590506108a58161087f565b92915050565b6000602082840312156108c1576108c0610784565b5b60006108cf84828501610896565b91505092915050565b60008115159050919050565b6108ed816108d8565b82525050565b600060208201905061090860008301846108e4565b92915050565b60008060006060848603121561092757610926610784565b5b600061093586828701610896565b935050602061094686828701610896565b925050604061095786828701610896565b9150509250925092565b61096a816107a9565b82525050565b60006020820190506109856000830184610961565b92915050565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b60006109f860408361098b565b9150610a038261099c565b604082019050919050565b60006020820190508181036000830152610a27816109eb565b9050919050565b6000819050919050565b6000610a53610a4e610a4984610789565b610a2e565b610789565b9050919050565b6000610a6582610a38565b9050919050565b6000610a7782610a5a565b9050919050565b610a8781610a6c565b82525050565b6000602082019050610aa26000830184610a7e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ae282610750565b9150610aed83610750565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b2657610b25610aa8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b6b82610750565b9150610b7683610750565b925082610b8657610b85610b31565b5b828204905092915050565b6000606082019050610ba6600083018661075a565b610bb3602083018561075a565b610bc0604083018461075a565b949350505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000610bfe601f8361098b565b9150610c0982610bc8565b602082019050919050565b60006020820190508181036000830152610c2d81610bf1565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610c9060228361098b565b9150610c9b82610c34565b604082019050919050565b60006020820190508181036000830152610cbf81610c83565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000610d2260218361098b565b9150610d2d82610cc6565b604082019050919050565b60006020820190508181036000830152610d5181610d15565b905091905056fea264697066735822122087b0ecedb5be2508d530c8003618a4390942f07c57425ecc18f84bde5990c65064736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.StorageFeeCollector__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorMock__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50604051610369380380610369833981810160405281019061003291906100ea565b82600181905550816000806101000a81548160ff021916908360ff16021790555080600260006101000a81548160ff021916908360ff16021790555050505061013d565b600080fd5b6000819050919050565b61008e8161007b565b811461009957600080fd5b50565b6000815190506100ab81610085565b92915050565b600060ff82169050919050565b6100c7816100b1565b81146100d257600080fd5b50565b6000815190506100e4816100be565b92915050565b60008060006060848603121561010357610102610076565b5b60006101118682870161009c565b9350506020610122868287016100d5565b9250506040610133868287016100d5565b9150509250925092565b61021d8061014c6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063313ce5671461004657806350d25bcd146100645780638205bf6a14610082575b600080fd5b61004e6100a0565b60405161005b9190610101565b60405180910390f35b61006c6100b6565b6040516100799190610135565b60405180910390f35b61008a6100c0565b6040516100979190610169565b60405180910390f35b60008060009054906101000a900460ff16905090565b6000600154905090565b6000600260009054906101000a900460ff1660ff16426100e091906101b3565b905090565b600060ff82169050919050565b6100fb816100e5565b82525050565b600060208201905061011660008301846100f2565b92915050565b6000819050919050565b61012f8161011c565b82525050565b600060208201905061014a6000830184610126565b92915050565b6000819050919050565b61016381610150565b82525050565b600060208201905061017e600083018461015a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101be82610150565b91506101c983610150565b9250828210156101dc576101db610184565b5b82820390509291505056fea2646970667358221220598945154f468d9a4dd0f7ef9dc7f192042bdb30f4febb9f0add17078693f63264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.AggregatorMock__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BytesUtilsMock__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b5061047a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063349f06931461003b578063b1e05e8a14610059575b600080fd5b610043610075565b6040516100509190610115565b60405180910390f35b610073600480360381019061006e91906102c0565b61007b565b005b60005481565b610085828261008f565b6000819055505050565b60008082101580156100ae575082516020836100ab919061034b565b11155b6100ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e490610424565b60405180910390fd5b81602001830151905092915050565b6000819050919050565b61010f816100fc565b82525050565b600060208201905061012a6000830184610106565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101978261014e565b810181811067ffffffffffffffff821117156101b6576101b561015f565b5b80604052505050565b60006101c9610130565b90506101d5828261018e565b919050565b600067ffffffffffffffff8211156101f5576101f461015f565b5b6101fe8261014e565b9050602081019050919050565b82818337600083830152505050565b600061022d610228846101da565b6101bf565b90508281526020810184848401111561024957610248610149565b5b61025484828561020b565b509392505050565b600082601f83011261027157610270610144565b5b813561028184826020860161021a565b91505092915050565b6000819050919050565b61029d8161028a565b81146102a857600080fd5b50565b6000813590506102ba81610294565b92915050565b600080604083850312156102d7576102d661013a565b5b600083013567ffffffffffffffff8111156102f5576102f461013f565b5b6103018582860161025c565b9250506020610312858286016102ab565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006103568261028a565b91506103618361028a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103965761039561031c565b5b828201905092915050565b600082825260208201905092915050565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b600061040e602b836103a1565b9150610419826103b2565b604082019050919050565b6000602082019050818103600083015261043d81610401565b905091905056fea2646970667358221220fe433b9b4b35a04a31fb281992f9c5594051749d582a3f13ad2ebdeb386e43e564736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BytesUtilsMock__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EtherPaymentFallback__factory=void 0;const n=r(4),f=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"SafeReceived",type:"event"},{stateMutability:"payable",type:"receive"}],a="0x608060405234801561001057600080fd5b5060c18061001f6000396000f3fe6080604052366056573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d34604051604c91906072565b60405180910390a2005b600080fd5b6000819050919050565b606c81605b565b82525050565b6000602082019050608560008301846065565b9291505056fea26469706673582212208d02d346b57790a960e936c227c6402ea34392de094d7ab85da5a45a4cafce3364736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EtherPaymentFallback__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GnosisSafeProxy__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_singleton",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{stateMutability:"payable",type:"fallback"}],a="0x608060405234801561001057600080fd5b506040516102d43803806102d48339818101604052810190610032919061014b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906101fb565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061021b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610118826100ed565b9050919050565b6101288161010d565b811461013357600080fd5b50565b6000815190506101458161011f565b92915050565b600060208284031215610161576101606100e8565b5b600061016f84828501610136565b91505092915050565b600082825260208201905092915050565b7f496e76616c69642073696e676c65746f6e20616464726573732070726f76696460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006101e5602283610178565b91506101f082610189565b604082019050919050565b60006020820190508181036000830152610214816101d8565b9050919050565b60ab806102296000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea26469706673582212203784bf91a0f9bb4e51644bf6cfbe2bc479ded7bbb205bb0e0fc0d8cfafca712b64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.GnosisSafeProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UsdtFake__factory=void 0;const n=r(4),f=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"}],a="0x608060405234801561001057600080fd5b5060b98061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063313ce56714602d575b600080fd5b60336047565b604051603e9190606a565b60405180910390f35b60006006905090565b600060ff82169050919050565b6064816050565b82525050565b6000602082019050607d6000830184605d565b9291505056fea2646970667358221220bb75f369594f11bf488eef42893c2fa86b36cf6318ea3f91a79cff67f0203f2c64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.UsdtFake__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Alpha__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b50604051620018f1380380620018f1833981810160405281019062000037919062000363565b6040518060400160405280600c81526020017f416c7068612045524320323000000000000000000000000000000000000000008152506040518060400160405280600581526020017f414c5048410000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000273565b508060049080519060200190620000d492919062000273565b505050620000e93382620000f060201b60201c565b5062000537565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015a90620003f6565b60405180910390fd5b62000177600083836200026960201b60201c565b80600260008282546200018b919062000447565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001e2919062000447565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002499190620004b5565b60405180910390a362000265600083836200026e60201b60201c565b5050565b505050565b505050565b828054620002819062000501565b90600052602060002090601f016020900481019282620002a55760008555620002f1565b82601f10620002c057805160ff1916838001178555620002f1565b82800160010185558215620002f1579182015b82811115620002f0578251825591602001919060010190620002d3565b5b50905062000300919062000304565b5090565b5b808211156200031f57600081600090555060010162000305565b5090565b600080fd5b6000819050919050565b6200033d8162000328565b81146200034957600080fd5b50565b6000815190506200035d8162000332565b92915050565b6000602082840312156200037c576200037b62000323565b5b60006200038c848285016200034c565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620003de601f8362000395565b9150620003eb82620003a6565b602082019050919050565b600060208201905081810360008301526200041181620003cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004548262000328565b9150620004618362000328565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000499576200049862000418565b5b828201905092915050565b620004af8162000328565b82525050565b6000602082019050620004cc6000830184620004a4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051a57607f821691505b60208210811415620005315762000530620004d2565b5b50919050565b6113aa80620005476000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610c3e565b60405180910390f35b6100e660048036038101906100e19190610cf9565b610308565b6040516100f39190610d54565b60405180910390f35b610104610326565b6040516101119190610d7e565b60405180910390f35b610134600480360381019061012f9190610d99565b610330565b6040516101419190610d54565b60405180910390f35b610152610428565b60405161015f9190610e08565b60405180910390f35b610182600480360381019061017d9190610cf9565b610431565b60405161018f9190610d54565b60405180910390f35b6101b260048036038101906101ad9190610e23565b6104dd565b6040516101bf9190610d7e565b60405180910390f35b6101d0610525565b6040516101dd9190610c3e565b60405180910390f35b61020060048036038101906101fb9190610cf9565b6105b7565b60405161020d9190610d54565b60405180910390f35b610230600480360381019061022b9190610cf9565b6106a2565b60405161023d9190610d54565b60405180910390f35b610260600480360381019061025b9190610e50565b6106c0565b60405161026d9190610d7e565b60405180910390f35b60606003805461028590610ebf565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610ebf565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610f63565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610fb2565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490610ebf565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610ebf565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a9061107a565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b69061110c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108269061119e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610d7e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f1906112c2565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290611354565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610fb2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610d7e565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bdf578082015181840152602081019050610bc4565b83811115610bee576000848401525b50505050565b6000601f19601f8301169050919050565b6000610c1082610ba5565b610c1a8185610bb0565b9350610c2a818560208601610bc1565b610c3381610bf4565b840191505092915050565b60006020820190508181036000830152610c588184610c05565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c9082610c65565b9050919050565b610ca081610c85565b8114610cab57600080fd5b50565b600081359050610cbd81610c97565b92915050565b6000819050919050565b610cd681610cc3565b8114610ce157600080fd5b50565b600081359050610cf381610ccd565b92915050565b60008060408385031215610d1057610d0f610c60565b5b6000610d1e85828601610cae565b9250506020610d2f85828601610ce4565b9150509250929050565b60008115159050919050565b610d4e81610d39565b82525050565b6000602082019050610d696000830184610d45565b92915050565b610d7881610cc3565b82525050565b6000602082019050610d936000830184610d6f565b92915050565b600080600060608486031215610db257610db1610c60565b5b6000610dc086828701610cae565b9350506020610dd186828701610cae565b9250506040610de286828701610ce4565b9150509250925092565b600060ff82169050919050565b610e0281610dec565b82525050565b6000602082019050610e1d6000830184610df9565b92915050565b600060208284031215610e3957610e38610c60565b5b6000610e4784828501610cae565b91505092915050565b60008060408385031215610e6757610e66610c60565b5b6000610e7585828601610cae565b9250506020610e8685828601610cae565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ed757607f821691505b60208210811415610eeb57610eea610e90565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000610f4d602883610bb0565b9150610f5882610ef1565b604082019050919050565b60006020820190508181036000830152610f7c81610f40565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fbd82610cc3565b9150610fc883610cc3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ffd57610ffc610f83565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611064602583610bb0565b915061106f82611008565b604082019050919050565b6000602082019050818103600083015261109381611057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110f6602483610bb0565b91506111018261109a565b604082019050919050565b60006020820190508181036000830152611125816110e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611188602283610bb0565b91506111938261112c565b604082019050919050565b600060208201905081810360008301526111b78161117b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061121a602583610bb0565b9150611225826111be565b604082019050919050565b600060208201905081810360008301526112498161120d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006112ac602383610bb0565b91506112b782611250565b604082019050919050565b600060208201905081810360008301526112db8161129f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061133e602683610bb0565b9150611349826112e2565b604082019050919050565b6000602082019050818103600083015261136d81611331565b905091905056fea2646970667358221220ac8b864c59c65f80e103feb058644c736c9c88ec578e4093f57a78606a8e50d664736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Alpha__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20False__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b506101c1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610102565b610060565b6040516100579190610170565b60405180910390f35b60009392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100998261006e565b9050919050565b6100a98161008e565b81146100b457600080fd5b50565b6000813590506100c6816100a0565b92915050565b6000819050919050565b6100df816100cc565b81146100ea57600080fd5b50565b6000813590506100fc816100d6565b92915050565b60008060006060848603121561011b5761011a610069565b5b6000610129868287016100b7565b935050602061013a868287016100b7565b925050604061014b868287016100ed565b9150509250925092565b60008115159050919050565b61016a81610155565b82525050565b60006020820190506101856000830184610161565b9291505056fea26469706673582212200dded223ee24cd638102c1d8e784f0d92a18adfb58db220ce02d8cb1845c0c0e64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20False__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20NoReturn__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610173806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a600480360381019061004591906100ea565b61004c565b005b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061008182610056565b9050919050565b61009181610076565b811461009c57600080fd5b50565b6000813590506100ae81610088565b92915050565b6000819050919050565b6100c7816100b4565b81146100d257600080fd5b50565b6000813590506100e4816100be565b92915050565b60008060006060848603121561010357610102610051565b5b60006101118682870161009f565b93505060206101228682870161009f565b9250506040610133868287016100d5565b915050925092509256fea264697066735822122086d0df9ce592b0591064caaf520a0f8c5bc9c72cf28c9b00135ecaf9552ecdf264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20NoReturn__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Revert__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"pure",type:"function"}],a="0x608060405234801561001057600080fd5b50610226806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610120565b61004c565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007e906101d0565b60405180910390fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b78261008c565b9050919050565b6100c7816100ac565b81146100d257600080fd5b50565b6000813590506100e4816100be565b92915050565b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b60008060006060848603121561013957610138610087565b5b6000610147868287016100d5565b9350506020610158868287016100d5565b92505060406101698682870161010b565b9150509250925092565b600082825260208201905092915050565b7f626164207468696e672068617070656e65640000000000000000000000000000600082015250565b60006101ba601283610173565b91506101c582610184565b602082019050919050565b600060208201905081810360008301526101e9816101ad565b905091905056fea264697066735822122016a748576fdd0b976c82c85159f327481398ef9d4160ac785a99597b5afbe6fc64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Revert__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20True__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b506101c5806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610106565b610060565b6040516100579190610174565b60405180910390f35b6000600190509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009d82610072565b9050919050565b6100ad81610092565b81146100b857600080fd5b50565b6000813590506100ca816100a4565b92915050565b6000819050919050565b6100e3816100d0565b81146100ee57600080fd5b50565b600081359050610100816100da565b92915050565b60008060006060848603121561011f5761011e61006d565b5b600061012d868287016100bb565b935050602061013e868287016100bb565b925050604061014f868287016100f1565b9150509250925092565b60008115159050919050565b61016e81610159565b82525050565b60006020820190506101896000830184610165565b9291505056fea26469706673582212200cdf3a0b8a2fd7cf36fd6776039f128900d7985b63a590c86de29ea328035d7c64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20True__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestERC20__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b5060405162001db538038062001db583398181016040528101906200003791906200065f565b6040518060400160405280600681526020017f45524320323000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f45524332300000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb9291906200056f565b508060049080519060200190620000d49291906200056f565b505050620000e933826200011860201b60201c565b6200011073f17f52151ebef6c7334fad080c5704d77216b732600a6200029160201b60201c565b5050620009fb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200018b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200018290620006f2565b60405180910390fd5b6200019f60008383620002bf60201b60201c565b8060026000828254620001b3919062000743565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200020a919062000743565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002719190620007b1565b60405180910390a36200028d60008383620002c460201b60201c565b5050565b6000620002b5620002a7620002c960201b60201c565b8484620002d160201b60201c565b6001905092915050565b505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033b9062000844565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ae90620008dc565b60405180910390fd5b620003ca838383620002bf60201b60201c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044a9062000974565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004e8919062000743565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200054e9190620007b1565b60405180910390a362000569848484620002c460201b60201c565b50505050565b8280546200057d90620009c5565b90600052602060002090601f016020900481019282620005a15760008555620005ed565b82601f10620005bc57805160ff1916838001178555620005ed565b82800160010185558215620005ed579182015b82811115620005ec578251825591602001919060010190620005cf565b5b509050620005fc919062000600565b5090565b5b808211156200061b57600081600090555060010162000601565b5090565b600080fd5b6000819050919050565b620006398162000624565b81146200064557600080fd5b50565b60008151905062000659816200062e565b92915050565b6000602082840312156200067857620006776200061f565b5b6000620006888482850162000648565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006da601f8362000691565b9150620006e782620006a2565b602082019050919050565b600060208201905081810360008301526200070d81620006cb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007508262000624565b91506200075d8362000624565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000795576200079462000714565b5b828201905092915050565b620007ab8162000624565b82525050565b6000602082019050620007c86000830184620007a0565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006200082c60258362000691565b91506200083982620007ce565b604082019050919050565b600060208201905081810360008301526200085f816200081d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000620008c460238362000691565b9150620008d18262000866565b604082019050919050565b60006020820190508181036000830152620008f781620008b5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006200095c60268362000691565b91506200096982620008fe565b604082019050919050565b600060208201905081810360008301526200098f816200094d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009de57607f821691505b60208210811415620009f557620009f462000996565b5b50919050565b6113aa8062000a0b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610c3e565b60405180910390f35b6100e660048036038101906100e19190610cf9565b610308565b6040516100f39190610d54565b60405180910390f35b610104610326565b6040516101119190610d7e565b60405180910390f35b610134600480360381019061012f9190610d99565b610330565b6040516101419190610d54565b60405180910390f35b610152610428565b60405161015f9190610e08565b60405180910390f35b610182600480360381019061017d9190610cf9565b610431565b60405161018f9190610d54565b60405180910390f35b6101b260048036038101906101ad9190610e23565b6104dd565b6040516101bf9190610d7e565b60405180910390f35b6101d0610525565b6040516101dd9190610c3e565b60405180910390f35b61020060048036038101906101fb9190610cf9565b6105b7565b60405161020d9190610d54565b60405180910390f35b610230600480360381019061022b9190610cf9565b6106a2565b60405161023d9190610d54565b60405180910390f35b610260600480360381019061025b9190610e50565b6106c0565b60405161026d9190610d7e565b60405180910390f35b60606003805461028590610ebf565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610ebf565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610f63565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610fb2565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490610ebf565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610ebf565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a9061107a565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b69061110c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108269061119e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610d7e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f1906112c2565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290611354565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610fb2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610d7e565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bdf578082015181840152602081019050610bc4565b83811115610bee576000848401525b50505050565b6000601f19601f8301169050919050565b6000610c1082610ba5565b610c1a8185610bb0565b9350610c2a818560208601610bc1565b610c3381610bf4565b840191505092915050565b60006020820190508181036000830152610c588184610c05565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c9082610c65565b9050919050565b610ca081610c85565b8114610cab57600080fd5b50565b600081359050610cbd81610c97565b92915050565b6000819050919050565b610cd681610cc3565b8114610ce157600080fd5b50565b600081359050610cf381610ccd565b92915050565b60008060408385031215610d1057610d0f610c60565b5b6000610d1e85828601610cae565b9250506020610d2f85828601610ce4565b9150509250929050565b60008115159050919050565b610d4e81610d39565b82525050565b6000602082019050610d696000830184610d45565b92915050565b610d7881610cc3565b82525050565b6000602082019050610d936000830184610d6f565b92915050565b600080600060608486031215610db257610db1610c60565b5b6000610dc086828701610cae565b9350506020610dd186828701610cae565b9250506040610de286828701610ce4565b9150509250925092565b600060ff82169050919050565b610e0281610dec565b82525050565b6000602082019050610e1d6000830184610df9565b92915050565b600060208284031215610e3957610e38610c60565b5b6000610e4784828501610cae565b91505092915050565b60008060408385031215610e6757610e66610c60565b5b6000610e7585828601610cae565b9250506020610e8685828601610cae565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ed757607f821691505b60208210811415610eeb57610eea610e90565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000610f4d602883610bb0565b9150610f5882610ef1565b604082019050919050565b60006020820190508181036000830152610f7c81610f40565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fbd82610cc3565b9150610fc883610cc3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ffd57610ffc610f83565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611064602583610bb0565b915061106f82611008565b604082019050919050565b6000602082019050818103600083015261109381611057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110f6602483610bb0565b91506111018261109a565b604082019050919050565b60006020820190508181036000830152611125816110e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611188602283610bb0565b91506111938261112c565b604082019050919050565b600060208201905081810360008301526111b78161117b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061121a602583610bb0565b9150611225826111be565b604082019050919050565b600060208201905081810360008301526112498161120d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006112ac602383610bb0565b91506112b782611250565b604082019050919050565b600060208201905081810360008301526112db8161129f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061133e602683610bb0565b9150611349826112e2565b604082019050919050565b6000602082019050818103600083015261136d81611331565b905091905056fea2646970667358221220adab28fcaadd725c64717445633e8352a24acc086fd7673cfe7e6ff27394369064736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.TestERC20__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SuperFluidInfoRetriever=void 0;const n=r(12),f=r(9),a=r(605);t.SuperFluidInfoRetriever=class{constructor(e,t,r,n,f,i){this.paymentReference=e,this.tokenContractAddress=t,this.toAddress=r,this.eventName=n,this.network=f,this.options=i,this.client=(0,a.getTheGraphSuperfluidClient)(this.network,this.options)}getGraphVariables(){return{reference:`0xbeefac${this.paymentReference}`,to:this.toAddress,tokenAddress:this.tokenContractAddress}}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const e=this.getGraphVariables(),{flow:t,untagged:r}=yield this.client.GetSuperFluidEvents(e),n=t.concat(r).sort(((e,t)=>e.timestamp-t.timestamp)),a=[];if(n.length<1)return a;n[n.length-1].flowRate>0&&n.push({oldFlowRate:n[n.length-1].flowRate,flowRate:0,timestamp:f.default.getCurrentTimestampInSecond(),blockNumber:parseInt(n[n.length-1].blockNumber),transactionHash:n[n.length-1].transactionHash});for(let e=1;e<n.length;e++){if(2===n[e-1].type||0===n[e].type)continue;const t=n[e-1].flowRate-n[e-1].oldFlowRate;if(t<0)continue;const r=t*(n[e].timestamp-n[e-1].timestamp);a.push({amount:r.toString(),name:this.eventName,parameters:{to:this.toAddress,block:parseInt(n[e].blockNumber),txHash:n[e].transactionHash},timestamp:n[e].timestamp})}return a}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTheGraphSuperfluidClient=void 0;const n=r(238),f=r(606);t.getTheGraphSuperfluidClient=(e,t)=>{const r=`${(null==t?void 0:t.baseUrl)||"private"===e?"http://localhost:8000":"https://api.thegraph.com"}/subgraphs/name/superfluid-finance/protocol-v1-${e}`;return(0,f.getSdk)(new n.GraphQLClient(r,t))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenUpgradedEvent_OrderBy=t.TokenStatistic_OrderBy=t.TokenStatisticLog_OrderBy=t.TokenDowngradedEvent_OrderBy=t.SuperTokenLogicUpdatedEvent_OrderBy=t.SuperTokenLogicCreatedEvent_OrderBy=t.SuperTokenFactoryUpdatedEvent_OrderBy=t.SuperTokenCreatedEvent_OrderBy=t.SubscriptionUnitsUpdatedEvent_OrderBy=t.SubscriptionRevokedEvent_OrderBy=t.SubscriptionDistributionClaimedEvent_OrderBy=t.SubscriptionApprovedEvent_OrderBy=t.Stream_OrderBy=t.StreamRevision_OrderBy=t.StreamPeriod_OrderBy=t.SentEvent_OrderBy=t.SfMeta_OrderBy=t.RoleRevokedEvent_OrderBy=t.RoleGrantedEvent_OrderBy=t.RoleAdminChangedEvent_OrderBy=t.RewardAddressChangedEvent_OrderBy=t.PppConfigurationChangedEvent_OrderBy=t.OrderDirection=t.MintedEvent_OrderBy=t.JailEvent_OrderBy=t.Index_OrderBy=t.IndexUpdatedEvent_OrderBy=t.IndexUnsubscribedEvent_OrderBy=t.IndexUnitsUpdatedEvent_OrderBy=t.IndexSubscription_OrderBy=t.IndexSubscribedEvent_OrderBy=t.IndexDistributionClaimedEvent_OrderBy=t.IndexCreatedEvent_OrderBy=t.GovernanceReplacedEvent_OrderBy=t.FlowUpdatedEvent_OrderBy=t.FlowOperator_OrderBy=t.FlowOperatorUpdatedEvent_OrderBy=t.Event_OrderBy=t.CustomSuperTokenCreatedEvent_OrderBy=t.ConfigChangedEvent_OrderBy=t.CfAv1LiquidationPeriodChangedEvent_OrderBy=t.BurnedEvent_OrderBy=t.AppRegisteredEvent_OrderBy=t.AgreementLiquidatedV2Event_OrderBy=t.AgreementLiquidatedByEvent_OrderBy=t.AgreementClassUpdatedEvent_OrderBy=t.AgreementClassRegisteredEvent_OrderBy=t.Account_OrderBy=t.AccountTokenSnapshot_OrderBy=t.AccountTokenSnapshotLog_OrderBy=void 0,t.GetSuperFluidEvents=t.EventFragment=t.getSdk=t.GetSuperFluidEventsDocument=t.EventFragmentFragmentDoc=t._SubgraphErrorPolicy_=t.TrustedForwarderChangedEvent_OrderBy=t.TransferEvent_OrderBy=t.Token_OrderBy=void 0;const n=r(155);!function(e){e.Id="id",e.Timestamp="timestamp",e.BlockNumber="blockNumber",e.TransactionHash="transactionHash",e.LogIndex="logIndex",e.Order="order",e.TriggeredByEventName="triggeredByEventName",e.MaybeCriticalAtTimestamp="maybeCriticalAtTimestamp",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.Balance="balance",e.TotalDeposit="totalDeposit",e.TotalNetFlowRate="totalNetFlowRate",e.TotalInflowRate="totalInflowRate",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamedIn="totalAmountStreamedIn",e.TotalAmountStreamedOut="totalAmountStreamedOut",e.TotalAmountStreamed="totalAmountStreamed",e.TotalAmountTransferred="totalAmountTransferred",e.Account="account",e.Token="token",e.AccountTokenSnapshot="accountTokenSnapshot"}(t.AccountTokenSnapshotLog_OrderBy||(t.AccountTokenSnapshotLog_OrderBy={})),function(e){e.Id="id",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.IsLiquidationEstimateOptimistic="isLiquidationEstimateOptimistic",e.MaybeCriticalAtTimestamp="maybeCriticalAtTimestamp",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.BalanceUntilUpdatedAt="balanceUntilUpdatedAt",e.TotalDeposit="totalDeposit",e.TotalNetFlowRate="totalNetFlowRate",e.TotalInflowRate="totalInflowRate",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamedInUntilUpdatedAt="totalAmountStreamedInUntilUpdatedAt",e.TotalAmountStreamedOutUntilUpdatedAt="totalAmountStreamedOutUntilUpdatedAt",e.TotalAmountStreamedUntilUpdatedAt="totalAmountStreamedUntilUpdatedAt",e.TotalAmountTransferredUntilUpdatedAt="totalAmountTransferredUntilUpdatedAt",e.Account="account",e.Token="token",e.FlowOperators="flowOperators",e.AccountTokenSnapshotLogs="accountTokenSnapshotLogs"}(t.AccountTokenSnapshot_OrderBy||(t.AccountTokenSnapshot_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.IsSuperApp="isSuperApp",e.Inflows="inflows",e.Outflows="outflows",e.Subscriptions="subscriptions",e.PublishedIndexes="publishedIndexes",e.SentTransferEvents="sentTransferEvents",e.ReceivedTransferEvents="receivedTransferEvents",e.TokenUpgradedEvents="tokenUpgradedEvents",e.TokenDowngradedEvents="tokenDowngradedEvents",e.AccountTokenSnapshots="accountTokenSnapshots"}(t.Account_OrderBy||(t.Account_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.AgreementType="agreementType",e.Code="code"}(t.AgreementClassRegisteredEvent_OrderBy||(t.AgreementClassRegisteredEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.AgreementType="agreementType",e.Code="code"}(t.AgreementClassUpdatedEvent_OrderBy||(t.AgreementClassUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.LiquidatorAccount="liquidatorAccount",e.AgreementClass="agreementClass",e.AgreementId="agreementId",e.PenaltyAccount="penaltyAccount",e.BondAccount="bondAccount",e.RewardAmount="rewardAmount",e.BailoutAmount="bailoutAmount"}(t.AgreementLiquidatedByEvent_OrderBy||(t.AgreementLiquidatedByEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.LiquidatorAccount="liquidatorAccount",e.AgreementClass="agreementClass",e.AgreementId="agreementId",e.TargetAccount="targetAccount",e.RewardAmountReceiver="rewardAmountReceiver",e.RewardAmount="rewardAmount",e.TargetAccountBalanceDelta="targetAccountBalanceDelta",e.Version="version",e.LiquidationType="liquidationType",e.RewardAccount="rewardAccount"}(t.AgreementLiquidatedV2Event_OrderBy||(t.AgreementLiquidatedV2Event_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.App="app"}(t.AppRegisteredEvent_OrderBy||(t.AppRegisteredEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Operator="operator",e.From="from",e.Token="token",e.Amount="amount",e.Data="data",e.OperatorData="operatorData"}(t.BurnedEvent_OrderBy||(t.BurnedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.Order="order",e.LogIndex="logIndex",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.LiquidationPeriod="liquidationPeriod"}(t.CfAv1LiquidationPeriodChangedEvent_OrderBy||(t.CfAv1LiquidationPeriodChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.Key="key",e.IsKeySet="isKeySet",e.Value="value"}(t.ConfigChangedEvent_OrderBy||(t.ConfigChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token"}(t.CustomSuperTokenCreatedEvent_OrderBy||(t.CustomSuperTokenCreatedEvent_OrderBy={})),function(e){e.Id="id",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Name="name",e.Addresses="addresses",e.Timestamp="timestamp",e.TransactionHash="transactionHash",e.GasPrice="gasPrice"}(t.Event_OrderBy||(t.Event_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Sender="sender",e.Permissions="permissions",e.FlowRateAllowance="flowRateAllowance",e.FlowOperator="flowOperator"}(t.FlowOperatorUpdatedEvent_OrderBy||(t.FlowOperatorUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.Permissions="permissions",e.FlowRateAllowanceGranted="flowRateAllowanceGranted",e.FlowRateAllowanceRemaining="flowRateAllowanceRemaining",e.FlowOperator="flowOperator",e.Sender="sender",e.Token="token",e.AccountTokenSnapshot="accountTokenSnapshot",e.FlowOperatorUpdatedEvents="flowOperatorUpdatedEvents"}(t.FlowOperator_OrderBy||(t.FlowOperator_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Sender="sender",e.Receiver="receiver",e.FlowOperator="flowOperator",e.FlowRate="flowRate",e.TotalSenderFlowRate="totalSenderFlowRate",e.TotalReceiverFlowRate="totalReceiverFlowRate",e.Deposit="deposit",e.UserData="userData",e.OldFlowRate="oldFlowRate",e.Type="type",e.TotalAmountStreamedUntilTimestamp="totalAmountStreamedUntilTimestamp",e.Stream="stream"}(t.FlowUpdatedEvent_OrderBy||(t.FlowUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Addresses="addresses",e.OldGovernance="oldGovernance",e.NewGovernance="newGovernance"}(t.GovernanceReplacedEvent_OrderBy||(t.GovernanceReplacedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.UserData="userData",e.Index="index"}(t.IndexCreatedEvent_OrderBy||(t.IndexCreatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.Amount="amount",e.Index="index"}(t.IndexDistributionClaimedEvent_OrderBy||(t.IndexDistributionClaimedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.UserData="userData",e.Index="index"}(t.IndexSubscribedEvent_OrderBy||(t.IndexSubscribedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.Subscriber="subscriber",e.Approved="approved",e.Units="units",e.TotalAmountReceivedUntilUpdatedAt="totalAmountReceivedUntilUpdatedAt",e.IndexValueUntilUpdatedAt="indexValueUntilUpdatedAt",e.Index="index",e.SubscriptionApprovedEvents="subscriptionApprovedEvents",e.SubscriptionDistributionClaimedEvents="subscriptionDistributionClaimedEvents",e.SubscriptionRevokedEvents="subscriptionRevokedEvents",e.SubscriptionUnitsUpdatedEvents="subscriptionUnitsUpdatedEvents"}(t.IndexSubscription_OrderBy||(t.IndexSubscription_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.Units="units",e.UserData="userData",e.OldUnits="oldUnits",e.Index="index"}(t.IndexUnitsUpdatedEvent_OrderBy||(t.IndexUnitsUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.UserData="userData",e.Index="index"}(t.IndexUnsubscribedEvent_OrderBy||(t.IndexUnsubscribedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.OldIndexValue="oldIndexValue",e.NewIndexValue="newIndexValue",e.TotalUnitsPending="totalUnitsPending",e.TotalUnitsApproved="totalUnitsApproved",e.UserData="userData",e.Index="index"}(t.IndexUpdatedEvent_OrderBy||(t.IndexUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.IndexId="indexId",e.IndexValue="indexValue",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalUnitsPending="totalUnitsPending",e.TotalUnitsApproved="totalUnitsApproved",e.TotalUnits="totalUnits",e.TotalAmountDistributedUntilUpdatedAt="totalAmountDistributedUntilUpdatedAt",e.Token="token",e.Publisher="publisher",e.Subscriptions="subscriptions",e.IndexCreatedEvent="indexCreatedEvent",e.IndexDistributionClaimedEvents="indexDistributionClaimedEvents",e.IndexUpdatedEvents="indexUpdatedEvents",e.IndexSubscribedEvents="indexSubscribedEvents",e.IndexUnitsUpdatedEvents="indexUnitsUpdatedEvents",e.IndexUnsubscribedEvents="indexUnsubscribedEvents"}(t.Index_OrderBy||(t.Index_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.App="app",e.Reason="reason"}(t.JailEvent_OrderBy||(t.JailEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Operator="operator",e.To="to",e.Amount="amount",e.Data="data",e.Token="token",e.OperatorData="operatorData"}(t.MintedEvent_OrderBy||(t.MintedEvent_OrderBy={})),function(e){e.Asc="asc",e.Desc="desc"}(t.OrderDirection||(t.OrderDirection={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.LiquidationPeriod="liquidationPeriod",e.PatricianPeriod="patricianPeriod"}(t.PppConfigurationChangedEvent_OrderBy||(t.PppConfigurationChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.RewardAddress="rewardAddress"}(t.RewardAddressChangedEvent_OrderBy||(t.RewardAddressChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Role="role",e.PreviousAdminRole="previousAdminRole",e.NewAdminRole="newAdminRole"}(t.RoleAdminChangedEvent_OrderBy||(t.RoleAdminChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Role="role",e.Account="account",e.Sender="sender"}(t.RoleGrantedEvent_OrderBy||(t.RoleGrantedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Role="role",e.Account="account",e.Sender="sender"}(t.RoleRevokedEvent_OrderBy||(t.RoleRevokedEvent_OrderBy={})),function(e){e.Id="id",e.Timestamp="timestamp",e.BlockNumber="blockNumber",e.Configuration="configuration",e.Branch="branch"}(t.SfMeta_OrderBy||(t.SfMeta_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Operator="operator",e.From="from",e.To="to",e.Token="token",e.Amount="amount",e.Data="data",e.OperatorData="operatorData"}(t.SentEvent_OrderBy||(t.SentEvent_OrderBy={})),function(e){e.Id="id",e.Stream="stream",e.Sender="sender",e.Receiver="receiver",e.Token="token",e.FlowRate="flowRate",e.Deposit="deposit",e.StartedAtTimestamp="startedAtTimestamp",e.StartedAtBlockNumber="startedAtBlockNumber",e.StartedAtEvent="startedAtEvent",e.StoppedAtTimestamp="stoppedAtTimestamp",e.StoppedAtBlockNumber="stoppedAtBlockNumber",e.StoppedAtEvent="stoppedAtEvent",e.TotalAmountStreamed="totalAmountStreamed"}(t.StreamPeriod_OrderBy||(t.StreamPeriod_OrderBy={})),function(e){e.Id="id",e.RevisionIndex="revisionIndex",e.PeriodRevisionIndex="periodRevisionIndex"}(t.StreamRevision_OrderBy||(t.StreamRevision_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.CurrentFlowRate="currentFlowRate",e.Deposit="deposit",e.StreamedUntilUpdatedAt="streamedUntilUpdatedAt",e.Token="token",e.Sender="sender",e.Receiver="receiver",e.FlowUpdatedEvents="flowUpdatedEvents",e.StreamPeriods="streamPeriods"}(t.Stream_OrderBy||(t.Stream_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.UserData="userData",e.Subscription="subscription"}(t.SubscriptionApprovedEvent_OrderBy||(t.SubscriptionApprovedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.Amount="amount",e.Subscription="subscription"}(t.SubscriptionDistributionClaimedEvent_OrderBy||(t.SubscriptionDistributionClaimedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.UserData="userData",e.Subscription="subscription"}(t.SubscriptionRevokedEvent_OrderBy||(t.SubscriptionRevokedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.Units="units",e.UserData="userData",e.OldUnits="oldUnits",e.Subscription="subscription"}(t.SubscriptionUnitsUpdatedEvent_OrderBy||(t.SubscriptionUnitsUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token"}(t.SuperTokenCreatedEvent_OrderBy||(t.SuperTokenCreatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.NewFactory="newFactory"}(t.SuperTokenFactoryUpdatedEvent_OrderBy||(t.SuperTokenFactoryUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.TokenLogic="tokenLogic"}(t.SuperTokenLogicCreatedEvent_OrderBy||(t.SuperTokenLogicCreatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Code="code"}(t.SuperTokenLogicUpdatedEvent_OrderBy||(t.SuperTokenLogicUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.Account="account",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Amount="amount"}(t.TokenDowngradedEvent_OrderBy||(t.TokenDowngradedEvent_OrderBy={})),function(e){e.Id="id",e.Timestamp="timestamp",e.BlockNumber="blockNumber",e.TransactionHash="transactionHash",e.LogIndex="logIndex",e.Order="order",e.TriggeredByEventName="triggeredByEventName",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalNumberOfIndexes="totalNumberOfIndexes",e.TotalNumberOfActiveIndexes="totalNumberOfActiveIndexes",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.TotalDeposit="totalDeposit",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamed="totalAmountStreamed",e.TotalAmountTransferred="totalAmountTransferred",e.TotalAmountDistributed="totalAmountDistributed",e.TotalSupply="totalSupply",e.Token="token",e.TokenStatistic="tokenStatistic"}(t.TokenStatisticLog_OrderBy||(t.TokenStatisticLog_OrderBy={})),function(e){e.Id="id",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalNumberOfIndexes="totalNumberOfIndexes",e.TotalNumberOfActiveIndexes="totalNumberOfActiveIndexes",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.TotalDeposit="totalDeposit",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamedUntilUpdatedAt="totalAmountStreamedUntilUpdatedAt",e.TotalAmountTransferredUntilUpdatedAt="totalAmountTransferredUntilUpdatedAt",e.TotalAmountDistributedUntilUpdatedAt="totalAmountDistributedUntilUpdatedAt",e.TotalSupply="totalSupply",e.Token="token",e.TokenStatisticLogs="tokenStatisticLogs"}(t.TokenStatistic_OrderBy||(t.TokenStatistic_OrderBy={})),function(e){e.Id="id",e.Account="account",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Amount="amount"}(t.TokenUpgradedEvent_OrderBy||(t.TokenUpgradedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.Decimals="decimals",e.Name="name",e.Symbol="symbol",e.IsSuperToken="isSuperToken",e.IsListed="isListed",e.UnderlyingAddress="underlyingAddress",e.UnderlyingToken="underlyingToken"}(t.Token_OrderBy||(t.Token_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.From="from",e.To="to",e.Value="value",e.Token="token"}(t.TransferEvent_OrderBy||(t.TransferEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.Forwarder="forwarder",e.Enabled="enabled"}(t.TrustedForwarderChangedEvent_OrderBy||(t.TrustedForwarderChangedEvent_OrderBy={})),function(e){e.Allow="allow",e.Deny="deny"}(t._SubgraphErrorPolicy_||(t._SubgraphErrorPolicy_={})),t.EventFragmentFragmentDoc=n.default`
238
+ `},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadCurrencyFromContract=void 0;const n=r(12),f=r(4),a=r(50),i=r(3),o=r(553),s=r(55);t.loadCurrencyFromContract=e=>(0,n.__awaiter)(void 0,void 0,void 0,(function*(){if(!e.network||!f.utils.isAddress(e.value))return null;try{const t=o.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 f={address:e.value,decimals:r,symbol:n,network:e.network,type:i.RequestLogicTypes.CURRENCY.ERC20};return Object.assign(Object.assign({},f),{id:a.CurrencyManager.currencyId(f),hash:(0,a.getCurrencyHash)(a.CurrencyManager.toStorageCurrency(f)),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(497),f=r(498),a=r(501),i=r(502),o=r(503),s=r(504),c=r(505),u=r(506);t.supportedNetworks={celo:a.supportedCeloERC20,rinkeby:n.supportedRinkebyERC20,mainnet:f.supportedMainnetERC20,matic:i.supportedMaticERC20,fantom:o.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(86).__importStar)(r(499));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(500)},function(e){e.exports=JSON.parse('{"0x32E6C34Cd57087aBBD59B5A4AECC4cB495924356":{"name":"BitBase","logo":"BTBS.svg","erc20":true,"symbol":"BTBS","decimals":18},"0x3fa400483487A489EC9b1dB29C4129063EEC4654":{"name":"Cryptokek.com","logo":"cryptokek.svg","erc20":true,"symbol":"KEK","decimals":18},"0xb753428af26E81097e7fD17f40c88aaA3E04902c":{"name":"Spice","logo":"sfi.svg","erc20":true,"symbol":"SFI","decimals":18},"0xd084944d3c05CD115C09d072B9F44bA3E0E45921":{"name":"Manifold Finance","logo":"Manifold.svg","erc20":true,"symbol":"FOLD","decimals":18},"0x9a0242b7a33DAcbe40eDb927834F96eB39f8fBCB":{"name":"BABB","logo":"bax.svg","erc20":true,"symbol":"BAX","decimals":18},"0x4Cf89ca06ad997bC732Dc876ed2A7F26a9E7f361":{"name":"Mysterium","logo":"MYST.svg","erc20":true,"symbol":"MYST","decimals":18},"0x697eF32B4a3F5a4C39dE1cB7563f24CA7BfC5947":{"name":"Insula Token","logo":"Insula.svg","erc20":true,"symbol":"ISLA","decimals":18},"0x62Dc4817588d53a056cBbD18231d91ffCcd34b2A":{"name":"DeHive","logo":"dehive.svg","erc20":true,"erc721":false,"symbol":"DHV","decimals":18},"0x8400D94A5cb0fa0D041a3788e395285d61c9ee5e":{"name":"Unibright","logo":"ubt.svg","erc20":true,"symbol":"UBT","decimals":8},"0xfAd45E47083e4607302aa43c65fB3106F1cd7607":{"name":"Hoge Finance","logo":"HogeFinanceLogo.svg","erc20":true,"symbol":"HOGE","decimals":9},"0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b":{"name":"Axie Infinity Shard","logo":"AXS.svg","erc20":true,"symbol":"AXS","decimals":18},"0xCC8Fa225D80b9c7D42F96e9570156c65D6cAAa25":{"name":"Smooth Love Potion","logo":"SLP.svg","erc20":true,"symbol":"SLP","decimals":0},"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},"0xE94B97b6b43639E238c851A7e693F50033EfD75C":{"name":"Rainbow Token","logo":"halodao-rnbw.svg","erc20":true,"symbol":"RNBW","decimals":18},"0x47BE779De87de6580d0548cde80710a93c502405":{"name":"Rainbow Pool","logo":"halodao-xrnbw.svg","erc20":true,"symbol":"xRNBW","decimals":18},"0xe7aE6D0C56CACaf007b7e4d312f9af686a9E9a04":{"name":"Vabble","logo":"VAB.svg","erc20":true,"symbol":"VAB","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},"0x252739487C1fa66eaeaE7CED41d6358aB2a6bCa9":{"name":"ArCoin","logo":"ArCoin.svg","erc20":true,"symbol":"RCOIN","decimals":8},"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},"0x44e2deC86B9F0e0266E9AA66e10323A2bd69CF9A":{"name":"Attrace","logo":"attr.svg","erc20":true,"symbol":"ATTR","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"},"0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72":{"name":"Ethereum Name Service","logo":"ens.svg","erc20":true,"decimals":18,"symbol":"ENS"},"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 Dollar","logo":"usdp.svg","erc20":true,"symbol":"USDP","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 (old)","logo":"LTO.svg","erc20":true,"symbol":"LTOOLD","decimals":8},"0xd01409314aCb3b245CEa9500eCE3F6Fd4d70ea30":{"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},"0x8f693ca8D21b157107184d29D398A8D082b38b76":{"name":"Streamr","logo":"streamr.svg","erc20":true,"symbol":"DATA","decimals":18},"0x0Cf0Ee63788A0849fE5297F3407f701E122cC023":{"name":"Streamr (old)","logo":"streamr_old.svg","erc20":true,"symbol":"XDATA","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},"0x33349B282065b0284d756F0577FB39c158F935e6":{"name":"Maple Finance","logo":"maple-finance.svg","erc20":true,"erc721":false,"symbol":"MPL","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},"0x4612021C75809160Be60DB21fBc9D6adD0B32deF":{"name":"BCP Coin","logo":"BCP.svg","erc20":true,"symbol":"BCP","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},"0x968F6f898a6Df937fC1859b323aC2F14643e3fED":{"name":"Newscrypto","logo":"NWC.svg","erc20":true,"symbol":"NWC","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},"0x0beAD9a1bcc1b84D06E3f2df67E3549Fd55aB054":{"name":"EURxb","logo":"eurxb.svg","erc20":true,"symbol":"EURxb","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},"0xcC665390b03c5D324D8fAF81C15eCee29A73bCB4":{"name":"ChainSwap.com Governance Token","logo":"chainswap.svg","erc20":true,"symbol":"ASAP","decimals":18},"0x182F4c4C97cd1c24E1Df8FC4c053E5C47bf53Bef":{"name":"keyTango Token","logo":"keyTango.svg","erc20":true,"symbol":"TANGO","decimals":18},"0x0275E1001e293C46CFe158B3702AADe0B99f88a5":{"name":"Oiler","logo":"oiler.svg","erc20":true,"symbol":"OIL","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},"0x8eEF5a82E6Aa222a60F009ac18c24EE12dBf4b41":{"name":"Tixl","logo":"TXL.svg","erc20":true,"symbol":"TXL","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},"0x6B4c7A5e3f0B99FCD83e9c089BDDD6c7FCe5c611":{"name":"Million","logo":"million.svg","erc20":true,"symbol":"MM","decimals":18},"0x56d811088235F11C8920698a204A5010a788f4b3":{"name":"bZx Protocol Token (BZRX)","logo":"ic_token_bzrx.svg","erc20":true,"symbol":"BZRX","decimals":18},"0xB72B31907C1C95F3650b64b2469e08EdACeE5e8F":{"name":"bZx Vesting Token (vBZRX)","logo":"ic_token_vbzrx.svg","erc20":true,"symbol":"vBZRX","decimals":18},"0xB983E01458529665007fF7E0CDdeCDB74B967Eb6":{"name":"Fulcrum ETH iToken (iETH)","logo":"ic_token_ieth.svg","erc20":true,"symbol":"iETH","decimals":18},"0x32E4c68B3A4a813b710595AebA7f6B7604Ab9c15":{"name":"Fulcrum USDC iToken (iUSDC)","logo":"ic_token_iusdc.svg","erc20":true,"symbol":"iUSDC","decimals":6},"0x2ffa85f655752fB2aCB210287c60b9ef335f5b6E":{"name":"Fulcrum WBTC iToken (iWBTC)","logo":"ic_token_ibtc.svg","erc20":true,"symbol":"iWBTC","decimals":8},"0x687642347a9282Be8FD809d8309910A3f984Ac5a":{"name":"Fulcrum KNC iToken (iKNC)","logo":"ic_token_iknc.svg","erc20":true,"symbol":"iKNC","decimals":18},"0x463538705E7d22aA7f03Ebf8ab09B067e1001B54":{"name":"Fulcrum LINK iToken (iLINK)","logo":"ic_token_ilink.svg","erc20":true,"symbol":"iLINK","decimals":18},"0x6b093998D36f2C7F0cc359441FBB24CC629D5FF0":{"name":"Fulcrum DAI iToken (iDAI)","logo":"ic_token_idai.svg","erc20":true,"symbol":"iDAI","decimals":18},"0x7e9997a38A439b2be7ed9c9C4628391d3e055D48":{"name":"Fulcrum USDT iToken (iUSDT)","logo":"ic_token_iusdt.svg","erc20":true,"symbol":"iUSDT","decimals":6},"0x9189c499727f88F8eCC7dC4EEA22c828E6AaC015":{"name":"Fulcrum MKR iToken (iMKR)","logo":"ic_token_imkr.svg","erc20":true,"symbol":"iMKR","decimals":18},"0x18240BD9C07fA6156Ce3F3f61921cC82b2619157":{"name":"Fulcrum BZRX iToken (iBZRX)","logo":"ic_token_ibzrx.svg","erc20":true,"symbol":"iBZRX","decimals":18},"0x7F3Fe9D492A9a60aEBb06d82cBa23c6F32CAd10b":{"name":"Fulcrum YFI iToken (iYFI)","logo":"ic_token_iyfi.svg","erc20":true,"symbol":"iYFI","decimals":18},"0x0a625FceC657053Fe2D9FFFdeb1DBb4e412Cf8A8":{"name":"Fulcrum UNI iToken (iUNI)","logo":"ic_token_iuni.svg","erc20":true,"symbol":"iUNI","decimals":18},"0x0cae8d91E0b1b7Bd00D906E990C3625b2c220db1":{"name":"Fulcrum AAVE iToken (iAAVE)","logo":"ic_token_iaave.svg","erc20":true,"symbol":"iAAVE","decimals":18},"0x3dA0e01472Dee3746b4D324a65D7EdFaECa9Aa4f":{"name":"Fulcrum LRC iToken (iLRC)","logo":"ic_token_ilrc.svg","erc20":true,"symbol":"iLRC","decimals":18},"0x6d29903BC2c4318b59B35d97Ab98ab9eC08Ed70D":{"name":"Fulcrum COMP iToken (iCOMP)","logo":"ic_token_icomp.svg","erc20":true,"symbol":"iCOMP","decimals":18},"0x08c32b0726C5684024ea6e141C50aDe9690bBdcc":{"name":"Stratos Token","logo":"stos.svg","erc20":true,"symbol":"STOS","decimals":18},"0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30":{"name":"Injective","logo":"inj.svg","erc20":true,"symbol":"INJ","decimals":18},"0xe516D78d784C77D479977BE58905B3f2b1111126":{"name":"Bitspawn","logo":"spwn.svg","erc20":true,"symbol":"SPWN","decimals":18},"0xB16e967ff83DE3F1e9FCeAfbc2C28c1c5c56eF91":{"name":"Polkadog","logo":"polkadog.svg","erc20":true,"symbol":"PDOG","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},"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56":{name:"Binance-Peg BUSD Token",symbol:"BUSD",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.supportedNetworks=void 0;const n=r(508);t.supportedNetworks={rinkeby:n.supportedRinkebyERC777}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedRinkebyERC777=void 0,t.supportedRinkebyERC777={"0x745861AeD1EEe363b4AaA5F1994Be40b1e05Ff90":{decimals:18,name:"Super fDAI Fake Token",symbol:"fDAIx"}}},function(e,t,r){const n=r(510),f=r(511),a=r(512),i=r(513);e.exports=class{constructor(e){e instanceof Map?(i(e),this.graph=e):this.graph=e?a(e):new Map}addNode(e,t){let r;return t instanceof Map?(i(t),r=t):r=a(t),this.graph.set(e,r),this}addVertex(e,t){return this.addNode(e,t)}removeNode(e){return this.graph=f(this.graph,e),this}path(e,t,r={}){if(!this.graph.size)return r.cost?{path:null,cost:0}:null;const f=new Set,a=new n,i=new Map;let o=[],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(a.set(e,0);!a.isEmpty();){const e=a.next();if(e.key===t){s=e.priority;let t=e.key;for(;i.has(t);)o.push(t),t=i.get(t);break}f.add(e.key);(this.graph.get(e.key)||new Map).forEach(((t,r)=>{if(f.has(r)||c.includes(r))return null;if(!a.has(r))return i.set(r,e.key),a.set(r,e.priority+t);const n=a.get(r).priority,o=e.priority+t;return o<n?(i.set(r,e.key),a.set(r,o)):null}))}return o.length?(r.trim?o.shift():o=o.concat([e]),r.reverse||(o=o.reverse()),r.cost?{path:o,cost:s}:o):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[f,a]of t)f!==r&&a instanceof Map?n.set(f,e(a,r)):f!==r&&n.set(f,a);return n}},function(e,t){e.exports=function e(t){const r=new Map;return Object.keys(t).forEach((n=>{const f=t[n];if(null!==f&&"object"==typeof f&&!Array.isArray(f))return r.set(n,e(f));if(!function(e){const t=Number(e);return!(isNaN(t)||t<=0)}(f))throw new Error(`Could not add node at key "${n}", make sure it's a valid node`,f);return r.set(n,Number(f))})),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){e.exports=JSON.parse('{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0x38cf23c52bb4b13f051aec09580a2de845a7fa35":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0x8acee021a27779d8e98b9650722676b850b25e11":1},"0x8acee021a27779d8e98b9650722676b850b25e11":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}}')},function(e){e.exports=JSON.parse('{"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,"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202":1,"0x8f8221afbb33998d8584a2b05749ba73c37a938a":1,"0xe6c09adc89ff4467cea20bc7760e3e59e7c0671d":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,"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202":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},"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202":{"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8f8221afbb33998d8584a2b05749ba73c37a938a":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xe6c09adc89ff4467cea20bc7760e3e59e7c0671d":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}')},function(e){e.exports=JSON.parse('{"0xfab46e002bbf0b4509813474841e0716e6730136":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfab46e002bbf0b4509813474841e0716e6730136":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x2ae72ebc9eb4738b1e1e1cc4ec878ee2c4f5b923":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}')},function(e){e.exports=JSON.parse('{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":1,"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":1,"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":1,"0x17b4158805772ced11225e77339f90beb5aae968":1,"0x4f99f266506be1475e943b2f097827011bfa4e93":1,"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":1,"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":1,"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":1,"0x831753dd7087cac61ab5644b308642cc1c33dc13":1},"0x2791bca1f2de4661ed88a30c99a7a9449aa84174":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1},"0xfa6faefc053e6c8e393a73dcc12b09fcde019d25":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xce80759e72fe1d3c07be79ffecc76a7a9b46c641":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x013f29832cd6525c4c6df81c2aae8032a1ff2db2":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x17b4158805772ced11225e77339f90beb5aae968":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x4f99f266506be1475e943b2f097827011bfa4e93":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x831753dd7087cac61ab5644b308642cc1c33dc13":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1}}')},function(e){e.exports=JSON.parse('{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x775eb53d00dd0acd3ec1696472105d579b9b386b":{"0xfac26e3fd40adcdc6652f705d983b4830c00716c":1,"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":1,"0x04068da6c83afcfa0e13ba15a6696662335d5b75":1,"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":1,"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":1,"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":1,"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":1,"0xf5af88e117747e87fc5929f2ff87221b1447652e":1,"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":1,"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":1,"0x27f26f00e1605903645bbabc0a73e35027dccd45":1,"0x03049758a18d1589388d7a74fb71c3fcce11d286":1,"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":1,"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":1,"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":1},"0x10bf4137b0558c33c2dc9f71c3bb81c2865fa2fb":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x04068da6c83afcfa0e13ba15a6696662335d5b75":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xf5af88e117747e87fc5929f2ff87221b1447652e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x27f26f00e1605903645bbabc0a73e35027dccd45":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x03049758a18d1589388d7a74fb71c3fcce11d286":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1},"0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e":{"0x775eb53d00dd0acd3ec1696472105d579b9b386b":1}}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CurrencyManager=void 0;const n=r(86),f=r(3),a=r(4),i=(0,n.__importDefault)(r(520)),o=r(243),s=r(244),c=r(246),u=(0,n.__importDefault)(r(549)),d=r(550),l=r(245),h=r(249),{BTC:p,ERC20:b,ERC777:m,ETH:y,ISO4217:g}=f.RequestLogicTypes.CURRENCY;class v{constructor(e,t,r){this.knownCurrencies=[];for(const t of e){const e=v.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||v.getDefaultLegacyTokens(),this.conversionPairs=r||v.getDefaultConversionPairs()}from(e,t){if(!e)return;if(a.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=a.utils.getAddress(e);const r=this.knownCurrencies.filter((r=>!(r.type!==b&&r.type!==m||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===g&&!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===b||r.type===m)&&e.value===r.address&&r.network===t||(r.type===y||r.type===p)&&r.network===t||r.symbol===e.value&&!e.network)))}getNativeCurrency(e,t){return this.knownCurrencies.find((r=>r.type===e&&r.network===t))}getConversionPath(e,t,r){try{return(0,l.getPath)(e,t,r,this.conversionPairs)}catch(e){return null}}supportsConversion(e,t){var r;return!!(null===(r=this.conversionPairs[t])||void 0===r?void 0:r[e.hash.toLowerCase()])}static fromInput(e){var{id:t,hash:r,meta:f}=e,i=(0,n.__rest)(e,["id","hash","meta"]);return"address"in i&&(i.address=a.utils.getAddress(i.address)),Object.assign({id:t||v.currencyId(i),hash:r||(0,c.getHash)(v.toStorageCurrency(i)),meta:f},i)}static currencyId(e){return"network"in e?`${e.symbol}-${e.network}`:e.symbol}static toStorageCurrency(e){return{type:e.type,value:e.type===b||e.type===m?e.address:e.symbol,network:e.type===g?void 0:e.network}}static validateAddress(e,t){switch(t.type){case f.RequestLogicTypes.CURRENCY.ISO4217:throw new Error("Could not validate an address for an ISO4217 currency");case f.RequestLogicTypes.CURRENCY.ETH:case f.RequestLogicTypes.CURRENCY.ERC20:case f.RequestLogicTypes.CURRENCY.ERC777:switch(t.symbol){case"NEAR":case"NEAR-testnet":return(0,h.isValidNearAddress)(e,t.network);default:return i.default.validate(e,"ETH")}case f.RequestLogicTypes.CURRENCY.BTC:return i.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=u.default.map((e=>({decimals:e.digits,name:e.currency,symbol:e.code,type:g}))),t=d.nativeCurrencies.ETH.map((e=>Object.assign(Object.assign({},e),{type:y}))),r=d.nativeCurrencies.BTC.map((e=>Object.assign(Object.assign({},e),{type:p}))),n=(0,o.getSupportedERC20Tokens)().map((e=>Object.assign(Object.assign({},e),{type:b}))),f=(0,s.getSupportedERC777Tokens)().map((e=>Object.assign(Object.assign({},e),{type:m})));return e.concat(n).concat(f).concat(t).concat(r).map(v.fromInput)}static getDefaultLegacyTokens(){return{near:{NEAR:["NEAR","aurora"]}}}static getDefaultConversionPairs(){return l.chainlinkCurrencyPairs}static getDefault(){return new v(v.getDefaultList(),v.getDefaultLegacyTokens())}}t.CurrencyManager=v},function(e,t,r){var n=r(521);e.exports={validate:function(e,t,r){var f=n.getByNameOrSymbol(t||"bitcoin");if(f&&f.validator)return r&&"string"==typeof r?f.validator.isValidAddress(e,f,{networkType:r}):f.validator.isValidAddress(e,f,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(522),f=r(247),a=r(148),i=r(531),o=r(533),s=r(536),c=r(537),u=r(539),d=r(540),l=r(541),h=r(542),p=r(543),b=r(544),m=r(545),y=r(546),g=r(547),v=r(548),w=[{name:"Bitcoin",symbol:"btc",addressTypes:{prod:["00","05"],testnet:["6f","c4","3c","26"]},bech32Hrp:{prod:["bc"],testnet:["tb"]},validator:a},{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:a},{name:"PeerCoin",symbol:"ppc",addressTypes:{prod:["37","75"],testnet:["6f","c4"]},validator:a},{name:"DogeCoin",symbol:"doge",addressTypes:{prod:["1e","16"],testnet:["71","c4"]},validator:a},{name:"BeaverCoin",symbol:"bvc",addressTypes:{prod:["19","05"],testnet:["6f","c4"]},validator:a},{name:"FreiCoin",symbol:"frc",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:a},{name:"ProtoShares",symbol:"pts",addressTypes:{prod:["38","05"],testnet:["6f","c4"]},validator:a},{name:"MegaCoin",symbol:"mec",addressTypes:{prod:["32","05"],testnet:["6f","c4"]},validator:a},{name:"PrimeCoin",symbol:"xpm",addressTypes:{prod:["17","53"],testnet:["6f","c4"]},validator:a},{name:"AuroraCoin",symbol:"aur",addressTypes:{prod:["17","05"],testnet:["6f","c4"]},validator:a},{name:"NameCoin",symbol:"nmc",addressTypes:{prod:["34"],testnet:[]},validator:a},{name:"BioCoin",symbol:"bio",addressTypes:{prod:["19","14"],testnet:["6f","c4"]},validator:a},{name:"GarliCoin",symbol:"grlc",addressTypes:{prod:["26","05"],testnet:["6f","c4"]},validator:a},{name:"VertCoin",symbol:"vtc",addressTypes:{prod:["0x","47","71","05"],testnet:["6f","c4"]},validator:a},{name:"BitcoinGold",symbol:"btg",addressTypes:{prod:["26","17"],testnet:["6f","c4"]},validator:a},{name:"Komodo",symbol:"kmd",addressTypes:{prod:["3c","55"],testnet:["0","5"]},validator:a},{name:"BitcoinZ",symbol:"btcz",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"BitcoinPrivate",symbol:"btcp",expectedLength:26,addressTypes:{prod:["1325","13af"],testnet:["1957","19e0"]},validator:a},{name:"Hush",symbol:"hush",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"SnowGem",symbol:"sng",expectedLength:26,addressTypes:{prod:["1c28","1c2d"],testnet:["1d25","1cba"]},validator:a},{name:"ZCash",symbol:"zec",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"ZClassic",symbol:"zcl",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"ZenCash",symbol:"zen",expectedLength:26,addressTypes:{prod:["2089","2096"],testnet:["2092","2098"]},validator:a},{name:"VoteCoin",symbol:"vot",expectedLength:26,addressTypes:{prod:["1cb8","1cbd"],testnet:["1d25","1cba"]},validator:a},{name:"Decred",symbol:"dcr",addressTypes:{prod:["073f","071a"],testnet:["0f21","0efc"]},hashFunction:"blake256",expectedLength:26,validator:a},{name:"GameCredits",symbol:"game",addressTypes:{prod:["26","05"],testnet:[]},validator:f},{name:"PIVX",symbol:"pivx",addressTypes:{prod:["1e","0d"],testnet:[]},validator:a},{name:"SolarCoin",symbol:"slr",addressTypes:{prod:["12","05"],testnet:[]},validator:a},{name:"MonaCoin",symbol:"mona",addressTypes:{prod:["32","37"],testnet:[]},validator:a},{name:"DigiByte",symbol:"dgb",addressTypes:{prod:["1e","3f"],testnet:[]},bech32Hrp:{prod:["dgb","S"],testnet:[]},validator:a},{name:"Tether",symbol:"usdt",addressTypes:{prod:["00","05"],testnet:["6f","c4"]},validator:y},{name:"Ripple",symbol:"xrp",validator:n},{name:"Dash",symbol:"dash",addressTypes:{prod:["4c","10"],testnet:["8c","13"]},validator:a},{name:"Neo",symbol:"neo",addressTypes:{prod:["17"],testnet:[]},validator:a},{name:"NeoGas",symbol:"gas",addressTypes:{prod:["17"],testnet:[]},validator:a},{name:"Qtum",symbol:"qtum",addressTypes:{prod:["3a","32"],testnet:["78","6e"]},validator:a},{name:"Waves",symbol:"waves",addressTypes:{prod:["0157"],testnet:["0154"]},expectedLength:26,hashFunction:"blake256keccak256",regex:/^[a-zA-Z0-9]{35}$/,validator:a},{name:"Ethereum",symbol:"eth",validator:f},{name:"EtherZero",symbol:"etz",validator:f},{name:"EthereumClassic",symbol:"etc",validator:f},{name:"Callisto",symbol:"clo",validator:f},{name:"Bankex",symbol:"bkx",validator:f},{name:"Cardano",symbol:"ada",bech32Hrp:{prod:["addr"],testnet:["addr"]},validator:i},{name:"Monero",symbol:"xmr",addressTypes:{prod:["18","42"],testnet:["53","63"],stagenet:["24"]},iAddressTypes:{prod:["19"],testnet:["54"],stagenet:["25"]},validator:o},{name:"Aragon",symbol:"ant",validator:f},{name:"Basic Attention Token",symbol:"bat",validator:f},{name:"Bancor",symbol:"bnt",validator:f},{name:"Civic",symbol:"cvc",validator:f},{name:"District0x",symbol:"dnt",validator:f},{name:"Gnosis",symbol:"gno",validator:f},{name:"Golem (GNT)",symbol:"gnt",validator:f},{name:"Golem",symbol:"glm",validator:f},{name:"Matchpool",symbol:"gup",validator:f},{name:"Melon",symbol:"mln",validator:f},{name:"Numeraire",symbol:"nmr",validator:f},{name:"OmiseGO",symbol:"omg",validator:f},{name:"TenX",symbol:"pay",validator:f},{name:"Ripio Credit Network",symbol:"rcn",validator:f},{name:"Augur",symbol:"rep",validator:f},{name:"iExec RLC",symbol:"rlc",validator:f},{name:"Salt",symbol:"salt",validator:f},{name:"Status",symbol:"snt",validator:f},{name:"Storj",symbol:"storj",validator:f},{name:"Swarm City",symbol:"swt",validator:f},{name:"TrueUSD",symbol:"tusd",validator:f},{name:"Wings",symbol:"wings",validator:f},{name:"0x",symbol:"zrx",validator:f},{name:"Expanse",symbol:"exp",validator:f},{name:"Viberate",symbol:"vib",validator:f},{name:"Odyssey",symbol:"ocn",validator:f},{name:"Polymath",symbol:"poly",validator:f},{name:"Storm",symbol:"storm",validator:f},{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:o},{name:"LBRY Credits",symbol:"lbc",addressTypes:{prod:["55"],testnet:[]},validator:a},{name:"Tron",symbol:"trx",addressTypes:{prod:[65],testnet:[160]},validator:u},{name:"Nem",symbol:"xem",validator:d},{name:"Lisk",symbol:"lsk",validator:l},{name:"Stellar",symbol:"xlm",validator:p},{name:"BTU Protocol",symbol:"btu",validator:f},{name:"Crypto.com Coin",symbol:"cro",bech32Hrp:{prod:["cro"],testnet:["tcro"]},validator:r(248)},{name:"Multi-collateral DAI",symbol:"dai",validator:f},{name:"Enjin Coin",symbol:"enj",validator:f},{name:"HedgeTrade",symbol:"hedg",validator:f},{name:"Cred",symbol:"lba",validator:f},{name:"Chainlink",symbol:"link",validator:f},{name:"Loom Network",symbol:"loom",validator:f},{name:"Maker",symbol:"mkr",validator:f},{name:"Metal",symbol:"mtl",validator:f},{name:"Ocean Protocol",symbol:"ocean",validator:f},{name:"Quant",symbol:"qnt",validator:f},{name:"Synthetix Network",symbol:"snx",validator:f},{name:"SOLVE",symbol:"solve",validator:f},{name:"Spendcoin",symbol:"spnd",validator:f},{name:"TEMCO",symbol:"temco",validator:f},{name:"EOS",symbol:"eos",validator:b},{name:"Tezos",symbol:"xtz",validator:m},{name:"VeChain",symbol:"vet",validator:f},{name:"StormX",symbol:"stmx",validator:f},{name:"AugurV2",symbol:"repv2",validator:f},{name:"FirmaChain",symbol:"fct",validator:f},{name:"BlockTrade",symbol:"btt",validator:f},{name:"Quantum Resistant Ledger",symbol:"qrl",validator:f},{name:"Serve",symbol:"serv",validator:f},{name:"Tap",symbol:"xtp",validator:f},{name:"Compound",symbol:"comp",validator:f},{name:"Paxos",symbol:"pax",validator:f},{name:"USD Coin",symbol:"usdc",validator:f},{name:"CUSD",symbol:"cusd",validator:f},{name:"Algorand",symbol:"algo",validator:g},{name:"Polkadot",symbol:"dot",validator:v},{name:"Uniswap Coin",symbol:"uni",validator:f},{name:"Aave Coin",symbol:"aave",validator:f},{name:"Matic",symbol:"matic",validator:f},{name:"Decentraland",symbol:"mana",validator:f}];e.exports={getByNameOrSymbol:function(e){var t=e.toLowerCase();return w.find((function(e){return e.name.toLowerCase()===t||e.symbol.toLowerCase()===t}))},getAll:function(){return w}}},function(e,t,r){var n=r(30),f="rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",a=r(147)(f),i=new RegExp("^r["+f+"]{27,35}$");e.exports={isValidAddress:function(e){return!!i.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=a.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(f){function a(e,t,r){var n,f,a,i,o,b,m,y,g,v=0,w=[],_=0,E=!1,A=[],T=[],x=!1,S=!1,C=-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)o=512,b=U,m=q,i=160,y=function(e){return e.slice()};else if(0===e.lastIndexOf("SHA-",0))if(b=function(t,r){return H(t,r,e)},m=function(t,r,n,f){var a,i;if("SHA-224"===e||"SHA-256"===e)a=15+(r+65>>>9<<4),i=16;else{if("SHA-384"!==e&&"SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");a=31+(r+129>>>10<<5),i=32}for(;t.length<=a;)t.push(0);for(t[r>>>5]|=128<<24-r%32,r+=n,t[a]=4294967295&r,t[a-1]=r/4294967296|0,n=t.length,r=0;r<n;r+=i)f=H(t.slice(r,r+i),f,e);if("SHA-224"===e)t=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===e)t=f;else if("SHA-384"===e)t=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b];else{if("SHA-512"!==e)throw Error("Unexpected error in SHA-2 implementation");t=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b,f[6].a,f[6].b,f[7].a,f[7].b]}return t},y=function(e){return e.slice()},"SHA-224"===e)o=512,i=224;else if("SHA-256"===e)o=512,i=256;else if("SHA-384"===e)o=1024,i=384;else{if("SHA-512"!==e)throw Error("Chosen SHA variant is not supported");o=1024,i=512}else{if(0!==e.lastIndexOf("SHA3-",0)&&0!==e.lastIndexOf("SHAKE",0))throw Error("Chosen SHA variant is not supported");var O=6;if(b=z,y=function(e){var t,r=[];for(t=0;5>t;t+=1)r[t]=e[t].slice();return r},C=1,"SHA3-224"===e)o=1152,i=224;else if("SHA3-256"===e)o=1088,i=256;else if("SHA3-384"===e)o=832,i=384;else if("SHA3-512"===e)o=576,i=512;else if("SHAKE128"===e)o=1344,i=-1,O=31,S=!0;else{if("SHAKE256"!==e)throw Error("Chosen SHA variant is not supported");o=1088,i=-1,O=31,S=!0}m=function(e,t,r,n,f){var a,i=O,s=[],c=(r=o)>>>5,u=0,d=t>>>5;for(a=0;a<d&&t>=r;a+=c)n=z(e.slice(a,a+c),n),t-=r;for(e=e.slice(a),t%=r;e.length<c;)e.push(0);for(e[(a=t>>>3)>>2]^=i<<a%4*8,e[c-1]^=2147483648,n=z(e,n);32*s.length<f&&(e=n[u%5][u/5|0],s.push(e.b),!(32*s.length>=f));)s.push(e.a),0==64*(u+=1)%r&&(z(null,n),u=0);return s}}a=p(t,n,C),f=L(e),this.setHMACKey=function(t,r,a){var s;if(!0===E)throw Error("HMAC key already set");if(!0===x)throw Error("Cannot set HMAC key after calling update");if(!0===S)throw Error("SHAKE is not supported for HMAC");for(t=(r=p(r,n=(a||{}).encoding||"UTF8",C)(t)).binLen,r=r.value,a=(s=o>>>3)/4-1,s<t/8&&(r=m(r,t,0,L(e),i));r.length<=a;)r.push(0);for(t=0;t<=a;t+=1)A[t]=909522486^r[t],T[t]=1549556828^r[t];f=b(A,f),v=o,E=!0},this.update=function(e){var t,r,n,i=0,s=o>>>5;for(e=(t=a(e,w,_)).binLen,r=t.value,t=e>>>5,n=0;n<t;n+=s)i+o<=e&&(f=b(r.slice(n,n+s),f),i+=o);v+=i,w=r.slice(i>>>5),_=e%o,x=!0},this.getHash=function(t,r){var n,a,o,p;if(!0===E)throw Error("Cannot call getHash after setting HMAC key");if(o=h(r),!0===S){if(-1===o.shakeLen)throw Error("shakeLen must be specified in options");i=o.shakeLen}switch(t){case"HEX":n=function(e){return s(e,i,C,o)};break;case"B64":n=function(e){return c(e,i,C,o)};break;case"BYTES":n=function(e){return u(e,i,C)};break;case"ARRAYBUFFER":try{a=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return d(e,i,C)};break;case"UINT8ARRAY":try{a=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return l(e,i,C)};break;default:throw Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}for(p=m(w.slice(),_,v,y(f),i),a=1;a<g;a+=1)!0===S&&0!=i%32&&(p[p.length-1]&=16777215>>>24-i%32),p=m(p,i,0,L(e),i);return n(p)},this.getHMAC=function(t,r){var n,a,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,i,C,p)};break;case"B64":n=function(e){return c(e,i,C,p)};break;case"BYTES":n=function(e){return u(e,i,C)};break;case"ARRAYBUFFER":try{n=new ArrayBuffer(0)}catch(e){throw Error("ARRAYBUFFER not supported by this environment")}n=function(e){return d(e,i,C)};break;case"UINT8ARRAY":try{n=new Uint8Array(0)}catch(e){throw Error("UINT8ARRAY not supported by this environment")}n=function(e){return l(e,i,C)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}return a=m(w.slice(),_,v,y(f),i),g=b(T,L(e)),n(g=m(a,i,o,g,i))}}function i(e,t){this.a=e,this.b=t}function o(e,t,r,n){var f,a,i,o,s;for(t=t||[0],a=(r=r||0)>>>3,s=-1===n?3:0,f=0;f<e.length;f+=1)i=(o=f+a)>>>2,t.length<=i&&t.push(0),t[i]|=e[f]<<8*(s+o%4*n);return{value:t,binLen:8*e.length+r}}function s(e,t,r,n){var f,a,i,o="";for(t/=8,i=-1===r?3:0,f=0;f<t;f+=1)a=e[f>>>2]>>>8*(i+f%4*r),o+="0123456789abcdef".charAt(a>>>4&15)+"0123456789abcdef".charAt(15&a);return n.outputUpper?o.toUpperCase():o}function c(e,t,r,n){var f,a,i,o,s="",c=t/8;for(o=-1===r?3:0,f=0;f<c;f+=3)for(a=f+1<c?e[f+1>>>2]:0,i=f+2<c?e[f+2>>>2]:0,i=(e[f>>>2]>>>8*(o+f%4*r)&255)<<16|(a>>>8*(o+(f+1)%4*r)&255)<<8|i>>>8*(o+(f+2)%4*r)&255,a=0;4>a;a+=1)s+=8*f+6*a<=t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i>>>6*(3-a)&63):n.b64Pad;return s}function u(e,t,r){var n,f,a,i="";for(t/=8,a=-1===r?3:0,n=0;n<t;n+=1)f=e[n>>>2]>>>8*(a+n%4*r)&255,i+=String.fromCharCode(f);return i}function d(e,t,r){t/=8;var n,f,a,i=new ArrayBuffer(t);for(a=new Uint8Array(i),f=-1===r?3:0,n=0;n<t;n+=1)a[n]=e[n>>>2]>>>8*(f+n%4*r)&255;return i}function l(e,t,r){t/=8;var n,f,a=new Uint8Array(t);for(f=-1===r?3:0,n=0;n<t;n+=1)a[n]=e[n>>>2]>>>8*(f+n%4*r)&255;return a}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 f,a,i,o,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,f=0;f<u;f+=2){if(a=parseInt(e.substr(f,2),16),isNaN(a))throw Error("String of HEX type contains invalid characters");for(i=(o=(f>>>1)+s)>>>2;t.length<=i;)t.push(0);t[i]|=a<<8*(c+o%4*r)}return{value:t,binLen:4*u+n}};break;case"TEXT":e=function(e,n,f){var a,i,o,s,c,u,d,l,h=0;if(n=n||[0],c=(f=f||0)>>>3,"UTF8"===t)for(l=-1===r?3:0,o=0;o<e.length;o+=1)for(i=[],128>(a=e.charCodeAt(o))?i.push(a):2048>a?(i.push(192|a>>>6),i.push(128|63&a)):55296>a||57344<=a?i.push(224|a>>>12,128|a>>>6&63,128|63&a):(o+=1,a=65536+((1023&a)<<10|1023&e.charCodeAt(o)),i.push(240|a>>>18,128|a>>>12&63,128|a>>>6&63,128|63&a)),s=0;s<i.length;s+=1){for(u=(d=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=i[s]<<8*(l+d%4*r),h+=1}else if("UTF16BE"===t||"UTF16LE"===t)for(l=-1===r?2:0,i="UTF16LE"===t&&1!==r||"UTF16LE"!==t&&1===r,o=0;o<e.length;o+=1){for(a=e.charCodeAt(o),!0===i&&(a=(s=255&a)<<8|a>>>8),u=(d=h+c)>>>2;n.length<=u;)n.push(0);n[u]|=a<<8*(l+d%4*r),h+=2}return{value:n,binLen:8*h+f}};break;case"B64":e=function(e,t,n){var f,a,i,o,s,c,u,d,l=0;if(-1===e.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");if(a=e.indexOf("="),e=e.replace(/\=/g,""),-1!==a&&a<e.length)throw Error("Invalid '=' found in base-64 string");for(t=t||[0],c=(n=n||0)>>>3,d=-1===r?3:0,a=0;a<e.length;a+=4){for(s=e.substr(a,4),i=o=0;i<s.length;i+=1)o|=(f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(s.charAt(i)))<<18-6*i;for(i=0;i<s.length-1;i+=1){for(f=(u=l+c)>>>2;t.length<=f;)t.push(0);t[f]|=(o>>>16-8*i&255)<<8*(d+u%4*r),l+=1}}return{value:t,binLen:8*l+n}};break;case"BYTES":e=function(e,t,n){var f,a,i,o,s,c;for(t=t||[0],i=(n=n||0)>>>3,c=-1===r?3:0,a=0;a<e.length;a+=1)f=e.charCodeAt(a),o=(s=a+i)>>>2,t.length<=o&&t.push(0),t[o]|=f<<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 o(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 o(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 m(e,t){return 32<t?(t-=32,new i(e.b<<t|e.a>>>32-t,e.a<<t|e.b>>>32-t)):0!==t?new i(e.a<<t|e.b>>>32-t,e.b<<t|e.a>>>32-t):e}function y(e,t){return e>>>t|e<<32-t}function g(e,t){var r=null;r=new i(e.a,e.b);return 32>=t?new i(r.a>>>t|r.b<<32-t&4294967295,r.b>>>t|r.a<<32-t&4294967295):new i(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 i(e.a>>>t,e.b>>>t|e.a<<32-t&4294967295):new i(0,e.a>>>t-32)}function w(e,t,r){return e&t^~e&r}function _(e,t,r){return new i(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 i(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 T(e){return y(e,2)^y(e,13)^y(e,22)}function x(e){var t=g(e,28),r=g(e,34);return e=g(e,39),new i(t.a^r.a^e.a,t.b^r.b^e.b)}function S(e){return y(e,6)^y(e,11)^y(e,25)}function C(e){var t=g(e,14),r=g(e,18);return e=g(e,41),new i(t.a^r.a^e.a,t.b^r.b^e.b)}function O(e){return y(e,7)^y(e,18)^e>>>3}function k(e){var t=g(e,1),r=g(e,8);return e=v(e,7),new i(t.a^r.a^e.a,t.b^r.b^e.b)}function P(e){return y(e,17)^y(e,19)^e>>>10}function R(e){var t=g(e,19),r=g(e,61);return e=v(e,6),new i(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 D(e,t,r,n){var f=(65535&e)+(65535&t)+(65535&r)+(65535&n);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(f>>>16)&65535)<<16|65535&f}function N(e,t,r,n,f){var a=(65535&e)+(65535&t)+(65535&r)+(65535&n)+(65535&f);return((e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(f>>>16)+(a>>>16)&65535)<<16|65535&a}function B(e,t){var r,n,f;return r=(65535&e.b)+(65535&t.b),f=(65535&(n=(e.b>>>16)+(t.b>>>16)+(r>>>16)))<<16|65535&r,r=(65535&e.a)+(65535&t.a)+(n>>>16),new i((65535&(n=(e.a>>>16)+(t.a>>>16)+(r>>>16)))<<16|65535&r,f)}function I(e,t,r,n){var f,a,o;return f=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b),o=(65535&(a=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(f>>>16)))<<16|65535&f,f=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(a>>>16),new i((65535&(a=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(f>>>16)))<<16|65535&f,o)}function F(e,t,r,n,f){var a,o,s;return a=(65535&e.b)+(65535&t.b)+(65535&r.b)+(65535&n.b)+(65535&f.b),s=(65535&(o=(e.b>>>16)+(t.b>>>16)+(r.b>>>16)+(n.b>>>16)+(f.b>>>16)+(a>>>16)))<<16|65535&a,a=(65535&e.a)+(65535&t.a)+(65535&r.a)+(65535&n.a)+(65535&f.a)+(o>>>16),new i((65535&(o=(e.a>>>16)+(t.a>>>16)+(r.a>>>16)+(n.a>>>16)+(f.a>>>16)+(a>>>16)))<<16|65535&a,s)}function j(e,t){return new i(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 i(3418070365,r[0]),new i(1654270250,r[1]),new i(2438529370,r[2]),new i(355462360,r[3]),new i(1731405415,r[4]),new i(41048885895,r[5]),new i(3675008525,r[6]),new i(1203062813,r[7])];break;case"SHA-512":r=[new i(t[0],4089235720),new i(t[1],2227873595),new i(t[2],4271175723),new i(t[3],1595750129),new i(t[4],2917565137),new i(t[5],725511199),new i(t[6],4215389547),new i(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 i(0,0),new i(0,0),new i(0,0),new i(0,0),new i(0,0)]}return r}function U(e,t){var r,n,f,a,i,o,s,c=[];for(r=t[0],n=t[1],f=t[2],a=t[3],i=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),o=20>s?N(b(r,5),n&f^~n&a,i,1518500249,c[s]):40>s?N(b(r,5),n^f^a,i,1859775393,c[s]):60>s?N(b(r,5),E(n,f,a),i,2400959708,c[s]):N(b(r,5),n^f^a,i,3395469782,c[s]),i=a,a=f,f=b(n,30),n=r,r=o;return t[0]=M(r,t[0]),t[1]=M(n,t[1]),t[2]=M(f,t[2]),t[3]=M(a,t[3]),t[4]=M(i,t[4]),t}function q(e,t,r,n){var f;for(f=15+(t+65>>>9<<4);e.length<=f;)e.push(0);for(e[t>>>5]|=128<<24-t%32,t+=r,e[f]=4294967295&t,e[f-1]=t/4294967296|0,t=e.length,f=0;f<t;f+=16)n=U(e.slice(f,f+16),n);return n}function H(e,t,r){var n,f,a,o,s,c,u,d,l,h,p,b,m,y,g,v,j,L,U,q,H,z,G,$=[];if("SHA-224"===r||"SHA-256"===r)h=64,b=1,z=Number,m=M,y=D,g=N,v=O,j=P,L=T,U=S,H=E,q=w,G=V;else{if("SHA-384"!==r&&"SHA-512"!==r)throw Error("Unexpected error in SHA-2 implementation");h=80,b=2,z=i,m=B,y=I,g=F,v=k,j=R,L=x,U=C,H=A,q=_,G=K}for(r=t[0],n=t[1],f=t[2],a=t[3],o=t[4],s=t[5],c=t[6],u=t[7],p=0;p<h;p+=1)16>p?(l=p*b,d=e.length<=l?0:e[l],l=e.length<=l+1?0:e[l+1],$[p]=new z(d,l)):$[p]=y(j($[p-2]),$[p-7],v($[p-15]),$[p-16]),d=g(u,U(o),q(o,s,c),G[p],$[p]),l=m(L(r),H(r,n,f)),u=c,c=s,s=o,o=m(a,d),a=f,f=n,n=r,r=m(d,l);return t[0]=m(r,t[0]),t[1]=m(n,t[1]),t[2]=m(f,t[2]),t[3]=m(a,t[3]),t[4]=m(o,t[4]),t[5]=m(s,t[5]),t[6]=m(c,t[6]),t[7]=m(u,t[7]),t}function z(e,t){var r,n,f,a,o=[],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 i(e[n+1],e[n]));for(r=0;24>r;r+=1){for(a=L("SHA3-"),n=0;5>n;n+=1){f=t[n][0];var c=t[n][1],u=t[n][2],d=t[n][3],l=t[n][4];o[n]=new i(f.a^c.a^u.a^d.a^l.a,f.b^c.b^u.b^d.b^l.b)}for(n=0;5>n;n+=1)s[n]=j(o[(n+4)%5],m(o[(n+1)%5],1));for(n=0;5>n;n+=1)for(f=0;5>f;f+=1)t[n][f]=j(t[n][f],s[n]);for(n=0;5>n;n+=1)for(f=0;5>f;f+=1)a[f][(2*n+3*f)%5]=m(t[n][f],G[n][f]);for(n=0;5>n;n+=1)for(f=0;5>f;f+=1)t[n][f]=j(a[n][f],new i(~a[(n+1)%5][f].a&a[(n+2)%5][f].a,~a[(n+1)%5][f].b&a[(n+2)%5][f].b));t[0][0]=j(t[0][0],$[r])}return t}var V,K,G,$;K=[new i((V=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298])[0],3609767458),new i(V[1],602891725),new i(V[2],3964484399),new i(V[3],2173295548),new i(V[4],4081628472),new i(V[5],3053834265),new i(V[6],2937671579),new i(V[7],3664609560),new i(V[8],2734883394),new i(V[9],1164996542),new i(V[10],1323610764),new i(V[11],3590304994),new i(V[12],4068182383),new i(V[13],991336113),new i(V[14],633803317),new i(V[15],3479774868),new i(V[16],2666613458),new i(V[17],944711139),new i(V[18],2341262773),new i(V[19],2007800933),new i(V[20],1495990901),new i(V[21],1856431235),new i(V[22],3175218132),new i(V[23],2198950837),new i(V[24],3999719339),new i(V[25],766784016),new i(V[26],2566594879),new i(V[27],3203337956),new i(V[28],1034457026),new i(V[29],2466948901),new i(V[30],3758326383),new i(V[31],168717936),new i(V[32],1188179964),new i(V[33],1546045734),new i(V[34],1522805485),new i(V[35],2643833823),new i(V[36],2343527390),new i(V[37],1014477480),new i(V[38],1206759142),new i(V[39],344077627),new i(V[40],1290863460),new i(V[41],3158454273),new i(V[42],3505952657),new i(V[43],106217008),new i(V[44],3606008344),new i(V[45],1432725776),new i(V[46],1467031594),new i(V[47],851169720),new i(V[48],3100823752),new i(V[49],1363258195),new i(V[50],3750685593),new i(V[51],3785050280),new i(V[52],3318307427),new i(V[53],3812723403),new i(V[54],2003034995),new i(V[55],3602036899),new i(V[56],1575990012),new i(V[57],1125592928),new i(V[58],2716904306),new i(V[59],442776044),new i(V[60],593698344),new i(V[61],3733110249),new i(V[62],2999351573),new i(V[63],3815920427),new i(3391569614,3928383900),new i(3515267271,566280711),new i(3940187606,3454069534),new i(4118630271,4000239992),new i(116418474,1914138554),new i(174292421,2731055270),new i(289380356,3203993006),new i(460393269,320620315),new i(685471733,587496836),new i(852142971,1086792851),new i(1017036298,365543100),new i(1126000580,2618297676),new i(1288033470,3409855158),new i(1501505948,4234509866),new i(1607167915,987167468),new i(1816402316,1246189591)],$=[new i(0,1),new i(0,32898),new i(2147483648,32906),new i(2147483648,2147516416),new i(0,32907),new i(0,2147483649),new i(2147483648,2147516545),new i(2147483648,32777),new i(0,138),new i(0,136),new i(0,2147516425),new i(0,2147483658),new i(0,2147516555),new i(2147483648,139),new i(2147483648,32905),new i(2147483648,32771),new i(2147483648,32770),new i(2147483648,128),new i(0,32778),new i(2147483648,2147483658),new i(2147483648,2147516545),new i(2147483648,32896),new i(0,2147483649),new i(2147483648,2147516424)],G=[[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 a}.call(t,r,t,e))||(e.exports=n)}()},function(e,t,r){(function(t,n){var f;!function(){"use strict";var a="input is invalid type",i="object"==typeof window,o=i?window:{};o.JS_SHA512_NO_WINDOW&&(i=!1);var s=!i&&"object"==typeof self;!o.JS_SHA512_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?o=n:s&&(o=self);var c=!o.JS_SHA512_NO_COMMON_JS&&"object"==typeof e&&e.exports,u=r(170),d=!o.JS_SHA512_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,l="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],m=["hex","array","digest","arrayBuffer"],y=[];!o.JS_SHA512_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!d||!o.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<m.length;++r){var n=m[r];t[n]=g(n,e)}return t},w=function(e,t){return function(r,n){return new A(r,t,!0).update(n)[e]()}},_=function(e){var t=w("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<m.length;++r){var n=m[r];t[n]=w(n,e)}return t};function E(e,t){t?(y[0]=y[1]=y[2]=y[3]=y[4]=y[5]=y[6]=y[7]=y[8]=y[9]=y[10]=y[11]=y[12]=y[13]=y[14]=y[15]=y[16]=y[17]=y[18]=y[19]=y[20]=y[21]=y[22]=y[23]=y[24]=y[25]=y[26]=y[27]=y[28]=y[29]=y[30]=y[31]=y[32]=0,this.blocks=y):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,f=typeof e;if("string"!==f){if("object"!==f)throw new Error(a);if(null===e)throw new Error(a);if(d&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||d&&ArrayBuffer.isView(e)))throw new Error(a);n=!0}var i=e.length;if(!n){for(var o,s=[],c=(i=e.length,0),u=0;u<i;++u)(o=e.charCodeAt(u))<128?s[c++]=o:o<2048?(s[c++]=192|o>>6,s[c++]=128|63&o):o<55296||o>=57344?(s[c++]=224|o>>12,s[c++]=128|o>>6&63,s[c++]=128|63&o):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++u)),s[c++]=240|o>>18,s[c++]=128|o>>12&63,s[c++]=128|o>>6&63,s[c++]=128|63&o);e=s}e.length>128&&(e=new E(t,!0).update(e).array());var l=[],h=[];for(u=0;u<128;++u){var p=e[u]||0;l[u]=92^p,h[u]=54^p}E.call(this,t,r),this.update(h),this.oKeyPad=l,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(a);if(null===e)throw new Error(a);if(d&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||d&&ArrayBuffer.isView(e)))throw new Error(a);t=!0}for(var n,f,i=0,o=e.length,s=this.blocks;i<o;){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(f=this.start;i<o&&f<128;++i)s[f>>2]|=e[i]<<p[3&f++];else for(f=this.start;i<o&&f<128;++i)(n=e.charCodeAt(i))<128?s[f>>2]|=n<<p[3&f++]:n<2048?(s[f>>2]|=(192|n>>6)<<p[3&f++],s[f>>2]|=(128|63&n)<<p[3&f++]):n<55296||n>=57344?(s[f>>2]|=(224|n>>12)<<p[3&f++],s[f>>2]|=(128|n>>6&63)<<p[3&f++],s[f>>2]|=(128|63&n)<<p[3&f++]):(n=65536+((1023&n)<<10|1023&e.charCodeAt(++i)),s[f>>2]|=(240|n>>18)<<p[3&f++],s[f>>2]|=(128|n>>12&63)<<p[3&f++],s[f>>2]|=(128|n>>6&63)<<p[3&f++],s[f>>2]|=(128|63&n)<<p[3&f++]);this.lastByteIndex=f,this.bytes+=f-this.start,f>=128?(this.block=s[32],this.start=f-128,this.hash(),this.hashed=!0):this.start=f}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,f,a,i,o,s,c,u,d,l,h,p,m,y,g,v,w,_,E,A,T,x,S=this.h0h,C=this.h0l,O=this.h1h,k=this.h1l,P=this.h2h,R=this.h2l,M=this.h3h,D=this.h3l,N=this.h4h,B=this.h4l,I=this.h5h,F=this.h5l,j=this.h6h,L=this.h6l,U=this.h7h,q=this.h7l,H=this.blocks;for(e=32;e<160;e+=2)t=((w=H[e-30])>>>1|(_=H[e-29])<<31)^(w>>>8|_<<24)^w>>>7,r=(_>>>1|w<<31)^(_>>>8|w<<24)^(_>>>7|w<<25),n=((w=H[e-4])>>>19|(_=H[e-3])<<13)^(_>>>29|w<<3)^w>>>6,f=(_>>>19|w<<13)^(w>>>29|_<<3)^(_>>>6|w<<26),w=H[e-32],_=H[e-31],s=((E=H[e-14])>>>16)+(w>>>16)+(t>>>16)+(n>>>16)+((o=(65535&E)+(65535&w)+(65535&t)+(65535&n)+((i=((A=H[e-13])>>>16)+(_>>>16)+(r>>>16)+(f>>>16)+((a=(65535&A)+(65535&_)+(65535&r)+(65535&f))>>>16))>>>16))>>>16),H[e]=s<<16|65535&o,H[e+1]=i<<16|65535&a;var z=S,V=C,K=O,G=k,$=P,W=R,Y=M,J=D,X=N,Z=B,Q=I,ee=F,te=j,re=L,ne=U,fe=q;for(m=K&$,y=G&W,e=0;e<160;e+=8)t=(z>>>28|V<<4)^(V>>>2|z<<30)^(V>>>7|z<<25),r=(V>>>28|z<<4)^(z>>>2|V<<30)^(z>>>7|V<<25),n=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),f=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),g=(c=z&K)^z&$^m,v=(u=V&G)^V&W^y,T=X&Q^~X&te,x=Z&ee^~Z&re,w=H[e],_=H[e+1],w=(s=((E=b[e])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(ne>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&ne)+((i=((A=b[e+1])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(fe>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&fe))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,ne=(s=(Y>>>16)+(w>>>16)+((o=(65535&Y)+(65535&w)+((i=(J>>>16)+(_>>>16)+((a=(65535&J)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,fe=i<<16|65535&a,t=((Y=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o)>>>28|(J=i<<16|65535&a)<<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|fe<<18)^(ne>>>18|fe<<14)^(fe>>>9|ne<<23),f=(fe>>>14|ne<<18)^(fe>>>18|ne<<14)^(ne>>>9|fe<<23),g=(d=Y&z)^Y&K^c,v=(l=J&V)^J&G^u,T=ne&X^~ne&Q,x=fe&Z^~fe&ee,w=H[e+2],_=H[e+3],w=(s=((E=b[e+2])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(te>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&te)+((i=((A=b[e+3])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(re>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&re))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,te=(s=($>>>16)+(w>>>16)+((o=(65535&$)+(65535&w)+((i=(W>>>16)+(_>>>16)+((a=(65535&W)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,re=i<<16|65535&a,t=(($=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o)>>>28|(W=i<<16|65535&a)<<4)^(W>>>2|$<<30)^(W>>>7|$<<25),r=(W>>>28|$<<4)^($>>>2|W<<30)^($>>>7|W<<25),n=(te>>>14|re<<18)^(te>>>18|re<<14)^(re>>>9|te<<23),f=(re>>>14|te<<18)^(re>>>18|te<<14)^(te>>>9|re<<23),g=(h=$&Y)^$&z^d,v=(p=W&J)^W&V^l,T=te&ne^~te&X,x=re&fe^~re&Z,w=H[e+4],_=H[e+5],w=(s=((E=b[e+4])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(Q>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&Q)+((i=((A=b[e+5])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(ee>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&ee))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,Q=(s=(K>>>16)+(w>>>16)+((o=(65535&K)+(65535&w)+((i=(G>>>16)+(_>>>16)+((a=(65535&G)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,ee=i<<16|65535&a,t=((K=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o)>>>28|(G=i<<16|65535&a)<<4)^(G>>>2|K<<30)^(G>>>7|K<<25),r=(G>>>28|K<<4)^(K>>>2|G<<30)^(K>>>7|G<<25),n=(Q>>>14|ee<<18)^(Q>>>18|ee<<14)^(ee>>>9|Q<<23),f=(ee>>>14|Q<<18)^(ee>>>18|Q<<14)^(Q>>>9|ee<<23),g=(m=K&$)^K&Y^h,v=(y=G&W)^G&J^p,T=Q&te^~Q&ne,x=ee&re^~ee&fe,w=H[e+6],_=H[e+7],w=(s=((E=b[e+6])>>>16)+(w>>>16)+(T>>>16)+(n>>>16)+(X>>>16)+((o=(65535&E)+(65535&w)+(65535&T)+(65535&n)+(65535&X)+((i=((A=b[e+7])>>>16)+(_>>>16)+(x>>>16)+(f>>>16)+(Z>>>16)+((a=(65535&A)+(65535&_)+(65535&x)+(65535&f)+(65535&Z))>>>16))>>>16))>>>16))<<16|65535&o,_=i<<16|65535&a,E=(s=(g>>>16)+(t>>>16)+((o=(65535&g)+(65535&t)+((i=(v>>>16)+(r>>>16)+((a=(65535&v)+(65535&r))>>>16))>>>16))>>>16))<<16|65535&o,A=i<<16|65535&a,X=(s=(z>>>16)+(w>>>16)+((o=(65535&z)+(65535&w)+((i=(V>>>16)+(_>>>16)+((a=(65535&V)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,Z=i<<16|65535&a,z=(s=(E>>>16)+(w>>>16)+((o=(65535&E)+(65535&w)+((i=(A>>>16)+(_>>>16)+((a=(65535&A)+(65535&_))>>>16))>>>16))>>>16))<<16|65535&o,V=i<<16|65535&a;s=(S>>>16)+(z>>>16)+((o=(65535&S)+(65535&z)+((i=(C>>>16)+(V>>>16)+((a=(65535&C)+(65535&V))>>>16))>>>16))>>>16),this.h0h=s<<16|65535&o,this.h0l=i<<16|65535&a,s=(O>>>16)+(K>>>16)+((o=(65535&O)+(65535&K)+((i=(k>>>16)+(G>>>16)+((a=(65535&k)+(65535&G))>>>16))>>>16))>>>16),this.h1h=s<<16|65535&o,this.h1l=i<<16|65535&a,s=(P>>>16)+($>>>16)+((o=(65535&P)+(65535&$)+((i=(R>>>16)+(W>>>16)+((a=(65535&R)+(65535&W))>>>16))>>>16))>>>16),this.h2h=s<<16|65535&o,this.h2l=i<<16|65535&a,s=(M>>>16)+(Y>>>16)+((o=(65535&M)+(65535&Y)+((i=(D>>>16)+(J>>>16)+((a=(65535&D)+(65535&J))>>>16))>>>16))>>>16),this.h3h=s<<16|65535&o,this.h3l=i<<16|65535&a,s=(N>>>16)+(X>>>16)+((o=(65535&N)+(65535&X)+((i=(B>>>16)+(Z>>>16)+((a=(65535&B)+(65535&Z))>>>16))>>>16))>>>16),this.h4h=s<<16|65535&o,this.h4l=i<<16|65535&a,s=(I>>>16)+(Q>>>16)+((o=(65535&I)+(65535&Q)+((i=(F>>>16)+(ee>>>16)+((a=(65535&F)+(65535&ee))>>>16))>>>16))>>>16),this.h5h=s<<16|65535&o,this.h5l=i<<16|65535&a,s=(j>>>16)+(te>>>16)+((o=(65535&j)+(65535&te)+((i=(L>>>16)+(re>>>16)+((a=(65535&L)+(65535&re))>>>16))>>>16))>>>16),this.h6h=s<<16|65535&o,this.h6l=i<<16|65535&a,s=(U>>>16)+(ne>>>16)+((o=(65535&U)+(65535&ne)+((i=(q>>>16)+(fe>>>16)+((a=(65535&q)+(65535&fe))>>>16))>>>16))>>>16),this.h7h=s<<16|65535&o,this.h7l=i<<16|65535&a},E.prototype.hex=function(){this.finalize();var e=this.h0h,t=this.h0l,r=this.h1h,n=this.h1l,f=this.h2h,a=this.h2l,i=this.h3h,o=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,d=this.h5l,h=this.h6h,p=this.h6l,b=this.h7h,m=this.h7l,y=this.bits,g=l[e>>28&15]+l[e>>24&15]+l[e>>20&15]+l[e>>16&15]+l[e>>12&15]+l[e>>8&15]+l[e>>4&15]+l[15&e]+l[t>>28&15]+l[t>>24&15]+l[t>>20&15]+l[t>>16&15]+l[t>>12&15]+l[t>>8&15]+l[t>>4&15]+l[15&t]+l[r>>28&15]+l[r>>24&15]+l[r>>20&15]+l[r>>16&15]+l[r>>12&15]+l[r>>8&15]+l[r>>4&15]+l[15&r]+l[n>>28&15]+l[n>>24&15]+l[n>>20&15]+l[n>>16&15]+l[n>>12&15]+l[n>>8&15]+l[n>>4&15]+l[15&n]+l[f>>28&15]+l[f>>24&15]+l[f>>20&15]+l[f>>16&15]+l[f>>12&15]+l[f>>8&15]+l[f>>4&15]+l[15&f]+l[a>>28&15]+l[a>>24&15]+l[a>>20&15]+l[a>>16&15]+l[a>>12&15]+l[a>>8&15]+l[a>>4&15]+l[15&a]+l[i>>28&15]+l[i>>24&15]+l[i>>20&15]+l[i>>16&15]+l[i>>12&15]+l[i>>8&15]+l[i>>4&15]+l[15&i];return y>=256&&(g+=l[o>>28&15]+l[o>>24&15]+l[o>>20&15]+l[o>>16&15]+l[o>>12&15]+l[o>>8&15]+l[o>>4&15]+l[15&o]),y>=384&&(g+=l[s>>28&15]+l[s>>24&15]+l[s>>20&15]+l[s>>16&15]+l[s>>12&15]+l[s>>8&15]+l[s>>4&15]+l[15&s]+l[c>>28&15]+l[c>>24&15]+l[c>>20&15]+l[c>>16&15]+l[c>>12&15]+l[c>>8&15]+l[c>>4&15]+l[15&c]+l[u>>28&15]+l[u>>24&15]+l[u>>20&15]+l[u>>16&15]+l[u>>12&15]+l[u>>8&15]+l[u>>4&15]+l[15&u]+l[d>>28&15]+l[d>>24&15]+l[d>>20&15]+l[d>>16&15]+l[d>>12&15]+l[d>>8&15]+l[d>>4&15]+l[15&d]),512==y&&(g+=l[h>>28&15]+l[h>>24&15]+l[h>>20&15]+l[h>>16&15]+l[h>>12&15]+l[h>>8&15]+l[h>>4&15]+l[15&h]+l[p>>28&15]+l[p>>24&15]+l[p>>20&15]+l[p>>16&15]+l[p>>12&15]+l[p>>8&15]+l[p>>4&15]+l[15&p]+l[b>>28&15]+l[b>>24&15]+l[b>>20&15]+l[b>>16&15]+l[b>>12&15]+l[b>>8&15]+l[b>>4&15]+l[15&b]+l[m>>28&15]+l[m>>24&15]+l[m>>20&15]+l[m>>16&15]+l[m>>12&15]+l[m>>8&15]+l[m>>4&15]+l[15&m]),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,f=this.h2h,a=this.h2l,i=this.h3h,o=this.h3l,s=this.h4h,c=this.h4l,u=this.h5h,d=this.h5l,l=this.h6h,h=this.h6l,p=this.h7h,b=this.h7l,m=this.bits,y=[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,f>>24&255,f>>16&255,f>>8&255,255&f,a>>24&255,a>>16&255,a>>8&255,255&a,i>>24&255,i>>16&255,i>>8&255,255&i];return m>=256&&y.push(o>>24&255,o>>16&255,o>>8&255,255&o),m>=384&&y.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,d>>24&255,d>>16&255,d>>8&255,255&d),512==m&&y.push(l>>24&255,l>>16&255,l>>8&255,255&l,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),y},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 T=v(512);T.sha512=T,T.sha384=v(384),T.sha512_256=v(256),T.sha512_224=v(224),T.sha512.hmac=_(512),T.sha384.hmac=_(384),T.sha512_256.hmac=_(256),T.sha512_224.hmac=_(224),c?e.exports=T:(o.sha512=T.sha512,o.sha384=T.sha384,o.sha512_256=T.sha512_256,o.sha512_224=T.sha512_224,u&&(void 0===(f=function(){return T}.call(T,r,T,e))||(e.exports=f)))}()}).call(this,r(15),r(21))},function(e,t,r){"use strict";(function(t){i.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]],i.u256=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479],i.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]),i.prototype._length_carry=function(e){for(var t=0;t<e.length&&!(e[t]<4294967296);++t)e[t]-=4294967296,e[t+1]+=1},i.prototype.update=function(e,r){e=t.from(e,r);for(var n=this._block,f=0;this._blockOffset+e.length-f>=n.length;){for(var a=this._blockOffset;a<n.length;)n[a++]=e[f++];this._length[0]+=8*n.length,this._length_carry(this._length),this._compress(),this._blockOffset=0}for(;f<e.length;)n[this._blockOffset++]=e[f++];return this};var r=t.from([1]),n=t.from([129]);function f(e,t){return(e<<32-t|e>>>t)>>>0}function a(e,t,r,n,a,o,s,c){var u=i.sigma,d=i.u256;e[n]=e[n]+((t[u[r][c]]^d[u[r][c+1]])>>>0)+e[a]>>>0,e[s]=f(e[s]^e[n],16),e[o]=e[o]+e[s]>>>0,e[a]=f(e[a]^e[o],12),e[n]=e[n]+((t[u[r][c+1]]^d[u[r][c]])>>>0)+e[a]>>>0,e[s]=f(e[s]^e[n],8),e[o]=e[o]+e[s]>>>0,e[a]=f(e[a]^e[o],7)}function i(){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}i.prototype._compress=function(){var e,t=i.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)a(r,n,e,0,4,8,12,0),a(r,n,e,1,5,9,13,2),a(r,n,e,2,6,10,14,4),a(r,n,e,3,7,11,15,6),a(r,n,e,0,5,10,15,8),a(r,n,e,1,6,11,12,10),a(r,n,e,2,7,8,13,12),a(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},i.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(i.padding.slice(0,55-this._blockOffset))):(this._length[0]-=8*(64-this._blockOffset),this.update(i.padding.slice(0,64-this._blockOffset)),this._length[0]-=440,this.update(i.padding.slice(1,56)),this._nullt=!0),this.update(this._zo),this._length[0]-=8),this._length[0]-=64,this.update(n)},i.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=i}).call(this,r(6).Buffer)},function(e,t,r){"use strict";(function(t,r){var n="input is invalid type",f="object"==typeof window,a=f?window:{};a.JS_SHA3_NO_WINDOW&&(f=!1);var i=!f&&"object"==typeof self;!a.JS_SHA3_NO_NODE_JS&&"object"==typeof t&&t.versions&&t.versions.node?a=r:i&&(a=self);var o=!a.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],d=[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],l=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!a.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!a.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 m=function(e,t,r){return function(n){return new R(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,f){return new R(e,t,f).update(n)[r]()}},g=function(e,t,r){return function(t,n,f,a){return A["cshake"+e].update(t,n,f,a)[r]()}},v=function(e,t,r){return function(t,n,f,a){return A["kmac"+e].update(t,n,f,a)[r]()}},w=function(e,t,r,n){for(var f=0;f<p.length;++f){var a=p[f];e[a]=t(r,n,a)}return e},_=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new R(e,t,e)},r.update=function(e){return r.create().update(e)},w(r,m,e,t)},E=[{name:"keccak",padding:[1,256,65536,16777216],bits:l,createMethod:_},{name:"sha3",padding:[6,1536,393216,100663296],bits:l,createMethod:_},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new R(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},w(r,y,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,f,a){return f||a?new R(e,t,n).bytepad([f,a],r):A["shake"+e].create(n)},n.update=function(e,t,r,f){return n.create(t,r,f).update(e)},w(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,f,a){return new M(e,t,f).bytepad(["KMAC",a],r).bytepad([n],r)},n.update=function(e,t,r,f){return n.create(e,r,f).update(t)},w(n,v,e,t)}}],A={},T=[],x=0;x<E.length;++x)for(var S=E[x],C=S.bits,O=0;O<C.length;++O){var k=S.name+"_"+C[O];if(T.push(k),A[k]=S.createMethod(C[O],S.padding),"sha3"!==S.name){var P=S.name+C[O];T.push(P),A[P]=A[k]}}function R(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){R.call(this,e,t,r)}R.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(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw n;t=!0}for(var f,a,i=this.blocks,s=this.byteCount,c=e.length,d=this.blockCount,l=0,h=this.s;l<c;){if(this.reset)for(this.reset=!1,i[0]=this.block,f=1;f<d+1;++f)i[f]=0;if(t)for(f=this.start;l<c&&f<s;++l)i[f>>2]|=e[l]<<u[3&f++];else for(f=this.start;l<c&&f<s;++l)(a=e.charCodeAt(l))<128?i[f>>2]|=a<<u[3&f++]:a<2048?(i[f>>2]|=(192|a>>6)<<u[3&f++],i[f>>2]|=(128|63&a)<<u[3&f++]):a<55296||a>=57344?(i[f>>2]|=(224|a>>12)<<u[3&f++],i[f>>2]|=(128|a>>6&63)<<u[3&f++],i[f>>2]|=(128|63&a)<<u[3&f++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++l)),i[f>>2]|=(240|a>>18)<<u[3&f++],i[f>>2]|=(128|a>>12&63)<<u[3&f++],i[f>>2]|=(128|a>>6&63)<<u[3&f++],i[f>>2]|=(128|63&a)<<u[3&f++]);if(this.lastByteIndex=f,f>=s){for(this.start=f-s,this.block=i[d],f=0;f<d;++f)h[f]^=i[f];D(h),this.reset=!0}else this.start=f}return this}},R.prototype.encode=function(e,t){var r=255&e,n=1,f=[r];for(r=255&(e>>=8);r>0;)f.unshift(r),r=255&(e>>=8),++n;return t?f.push(n):f.unshift(n),this.update(f),f.length},R.prototype.encodeString=function(e){var t,r=typeof e;if("string"!==r){if("object"!==r)throw n;if(null===e)throw n;if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw n;t=!0}var f=0,a=e.length;if(t)f=a;else for(var i=0;i<e.length;++i){var s=e.charCodeAt(i);s<128?f+=1:s<2048?f+=2:s<55296||s>=57344?f+=3:(s=65536+((1023&s)<<10|1023&e.charCodeAt(++i)),f+=4)}return f+=this.encode(8*f),this.update(e),f},R.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var f=t-r%t,a=[];return a.length=f,this.update(a),this},R.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];D(n)}},R.prototype.toString=R.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,f=this.extraBytes,a=0,i=0,o="";i<n;){for(a=0;a<t&&i<n;++a,++i)e=r[a],o+=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];i%t==0&&(D(r),a=0)}return f&&(e=r[a],o+=s[e>>4&15]+s[15&e],f>1&&(o+=s[e>>12&15]+s[e>>8&15]),f>2&&(o+=s[e>>20&15]+s[e>>16&15])),o},R.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,f=this.extraBytes,a=0,i=0,o=this.outputBits>>3;e=f?new ArrayBuffer(n+1<<2):new ArrayBuffer(o);for(var s=new Uint32Array(e);i<n;){for(a=0;a<t&&i<n;++a,++i)s[i]=r[a];i%t==0&&D(r)}return f&&(s[a]=r[a],e=e.slice(0,o)),e},R.prototype.buffer=R.prototype.arrayBuffer,R.prototype.digest=R.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,f=this.outputBlocks,a=this.extraBytes,i=0,o=0,s=[];o<f;){for(i=0;i<r&&o<f;++i,++o)e=o<<2,t=n[i],s[e]=255&t,s[e+1]=t>>8&255,s[e+2]=t>>16&255,s[e+3]=t>>24&255;o%r==0&&D(n)}return a&&(e=o<<2,t=n[i],s[e]=255&t,a>1&&(s[e+1]=t>>8&255),a>2&&(s[e+2]=t>>16&255)),s},M.prototype=new R,M.prototype.finalize=function(){return this.encode(this.outputBits,!0),R.prototype.finalize.call(this)};var D=function(e){var t,r,n,f,a,i,o,s,c,u,l,h,p,b,m,y,g,v,w,_,E,A,T,x,S,C,O,k,P,R,M,D,N,B,I,F,j,L,U,q,H,z,V,K,G,$,W,Y,J,X,Z,Q,ee,te,re,ne,fe,ae,ie,oe,se,ce,ue;for(n=0;n<48;n+=2)f=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],i=e[2]^e[12]^e[22]^e[32]^e[42],o=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],l=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(i<<1|o>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(o<<1|i>>>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=f^(s<<1|c>>>31),r=a^(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=i^(u<<1|l>>>31),r=o^(l<<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^(f<<1|a>>>31),r=l^(a<<1|f>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],$=e[11]<<4|e[10]>>>28,W=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,P=e[21]<<3|e[20]>>>29,oe=e[31]<<9|e[30]>>>23,se=e[30]<<9|e[31]>>>23,z=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,I=e[3]<<1|e[2]>>>31,y=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,R=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,w=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,D=e[45]<<29|e[44]>>>3,N=e[44]<<29|e[45]>>>3,x=e[6]<<28|e[7]>>>4,S=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,fe=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,_=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,K=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,ie=e[28]<<7|e[29]>>>25,q=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,T=e[49]<<14|e[48]>>>18,e[0]=b^~y&v,e[1]=m^~g&w,e[10]=x^~C&k,e[11]=S^~O&P,e[20]=B^~F&L,e[21]=I^~j&U,e[30]=K^~$&Y,e[31]=G^~W&J,e[40]=te^~ne&ae,e[41]=re^~fe&ie,e[2]=y^~v&_,e[3]=g^~w&E,e[12]=C^~k&R,e[13]=O^~P&M,e[22]=F^~L&q,e[23]=j^~U&H,e[32]=$^~Y&X,e[33]=W^~J&Z,e[42]=ne^~ae&oe,e[43]=fe^~ie&se,e[4]=v^~_&A,e[5]=w^~E&T,e[14]=k^~R&D,e[15]=P^~M&N,e[24]=L^~q&z,e[25]=U^~H&V,e[34]=Y^~X&Q,e[35]=J^~Z&ee,e[44]=ae^~oe&ce,e[45]=ie^~se&ue,e[6]=_^~A&b,e[7]=E^~T&m,e[16]=R^~D&x,e[17]=M^~N&S,e[26]=q^~z&B,e[27]=H^~V&I,e[36]=X^~Q&K,e[37]=Z^~ee&G,e[46]=oe^~ce&te,e[47]=se^~ue&re,e[8]=A^~b&y,e[9]=T^~m&g,e[18]=D^~x&C,e[19]=N^~S&O,e[28]=z^~B&F,e[29]=V^~I&j,e[38]=Q^~K&$,e[39]=ee^~G&W,e[48]=ce^~te&ne,e[49]=ue^~re&fe,e[0]^=d[n],e[1]^=d[n+1]};e.exports=A}).call(this,r(15),r(21))},function(e,t,r){"use strict";function n(e,t,r){var n=e[t]+e[r],f=e[t+1]+e[r+1];n>=4294967296&&f++,e[t]=n,e[t+1]=f}function f(e,t,r,n){var f=e[t]+r;r<0&&(f+=4294967296);var a=e[t+1]+n;f>=4294967296&&a++,e[t]=f,e[t+1]=a}function a(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function i(e,t,r,a,i,o){var s=u[i],d=u[i+1],l=u[o],h=u[o+1];n(c,e,t),f(c,e,s,d);var p=c[a]^c[e],b=c[a+1]^c[e+1];c[a]=b,c[a+1]=p,n(c,r,a),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),f(c,e,l,h),p=c[a]^c[e],b=c[a+1]^c[e+1],c[a]=p>>>16^b<<16,c[a+1]=b>>>16^p<<16,n(c,r,a),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 o=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 d(e,t){var r=0;for(r=0;r<16;r++)c[r]=e.h[r],c[r+16]=o[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]=a(e.b,4*r);for(r=0;r<12;r++)i(0,8,16,24,s[16*r+0],s[16*r+1]),i(2,10,18,26,s[16*r+2],s[16*r+3]),i(4,12,20,28,s[16*r+4],s[16*r+5]),i(6,14,22,30,s[16*r+6],s[16*r+7]),i(0,10,20,30,s[16*r+8],s[16*r+9]),i(2,12,22,24,s[16*r+10],s[16*r+11]),i(4,14,16,26,s[16*r+12],s[16*r+13]),i(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 l=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){l.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,l[0]=e,t&&(l[1]=t.length),l[2]=1,l[3]=1,r&&l.set(r,32),n&&l.set(n,48);for(var f=0;f<16;f++)this.h[f]=o[f]^a(l,4*f);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,d(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;d(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),f=0;f<e.length/8;f++){for(var a=[0,0,0,0,0,0,0,0],i=0;i<8;++i)a[i]=r.indexOf(e[8*f+i]);i=0;n[5*f+0]=a[i+0]<<3|a[i+1]>>2,n[5*f+1]=(3&a[i+1])<<6|a[i+2]<<1|a[i+3]>>4,n[5*f+2]=(15&a[i+3])<<4|a[i+4]>>1,n[5*f+3]=(1&a[i+4])<<7|a[i+5]<<2|a[i+6]>>3,n[5*f+4]=(7&a[i+6])<<5|a[i+7]}return n},b32encode:function(e){var t=[],n=Math.floor(e.length/5),f=e.length%5;if(0!=f){for(var a=0;a<5-f;a++)e+="\0";n+=1}for(a=0;a<n;a++)t.push(r.charAt(e.charCodeAt(5*a)>>3)),t.push(r.charAt((7&e.charCodeAt(5*a))<<2|e.charCodeAt(5*a+1)>>6)),t.push(r.charAt((63&e.charCodeAt(5*a+1))>>1)),t.push(r.charAt((1&e.charCodeAt(5*a+1))<<4|e.charCodeAt(5*a+2)>>4)),t.push(r.charAt((15&e.charCodeAt(5*a+2))<<1|e.charCodeAt(5*a+3)>>7)),t.push(r.charAt((127&e.charCodeAt(5*a+3))>>2)),t.push(r.charAt((3&e.charCodeAt(5*a+3))<<3|e.charCodeAt(5*a+4)>>5)),t.push(r.charAt(31&e.charCodeAt(5*a+4)));var i=0;1==f?i=6:2==f?i=4:3==f?i=3:4==f&&(i=1);for(a=0;a<i;a++)t.pop();for(a=0;a<i;a++)t.push("=");return t.join("")}}},function(e,t,r){(function(t){var r,n=1e9,f=1e6,a=20,i=4,o=-7,s=21,c=-n,u=n,d=!0,l=parseInt,h=v.prototype,p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",b=0,m=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,y=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=v(1);function v(e,t){var n,f,o,s,l,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=(o="number"==typeof e||"[object Number]"==Object.prototype.toString.call(e))&&0===e&&1/e<0?"-0":e+""),h=e,t===n&&m.test(e))g.s="-"==e.charAt(0)?(e=e.slice(1),-1):1;else{if(10==t)return x(e,a,i);if(e=y.call(e).replace(/^\+(?!-)/,""),g.s="-"==e.charAt(0)?(e=e.replace(/^-(?!-)/,""),-1):1,null!=t?t!=(0|t)&&d||(r=!(t>=2&&t<65))?(w(t,2),l=m.test(e)):(s="["+p.slice(0,t|=0)+"]+",e=e.replace(/\.$/,"").replace(/^\./,"0."),(l=new RegExp("^"+s+"(?:\\."+s+")?$",t<37?"i":"").test(e))?(o&&(e.replace(/^0\.0*|\./,"").length>15&&w(h,0),o=!o),e=_(e,10,t,g.s)):"Infinity"!=e&&"NaN"!=e&&(w(h,1,t),e="NaN")):l=m.test(e),!l)return g.c=g.e=null,"Infinity"!=e&&("NaN"!=e&&w(h,3),g.s=null),void(b=0)}for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(f=e.search(/e/i))>0?(n<0&&(n=f),n+=+e.slice(f+1),e=e.substring(0,f)):n<0&&(n=e.length),f=0;"0"==e.charAt(f);f++);if(t=e.length,o&&t>15&&e.slice(f).length>15&&w(h,0),b=0,(n-=f+1)>u)g.c=g.e=null;else if(f==t||n<c)g.c=[g.e=0];else{for(;"0"==e.charAt(--t););for(g.e=n,g.c=[],n=0;f<=t;g.c[n++]=+e.charAt(f++));}}function w(e,t,n,f,a,i){if(d){var o,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"+(a?" 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+(i?" not a boolean or binary digit":c+(f?" or not ["+(r?" negative, positive":" integer, integer")+" ]":"")))+": "+e,r=b=0,(o=new Error(c)).name="BigNumber Error",o}}function _(e,t,r,n){var f,a,i,o,s,c;function u(e,n){var f,a,i=0,o=e.length,s=[0];for(n=n||r;i<o;i++){for(a=s.length,f=0;f<a;s[f]*=n,f++);for(s[0]+=p.indexOf(e.charAt(i)),f=0;f<s.length;f++)s[f]>t-1&&(null==s[f+1]&&(s[f+1]=0),s[f+1]+=s[f]/t^0,s[f]%=t)}return s.reverse()}function d(e){for(var t=0,r=e.length,n="";t<r;n+=p.charAt(e[t++]));return n}if(r<37&&(e=e.toLowerCase()),(f=e.indexOf("."))>-1)if(f=e.length-f-1,a=u(new v(r).pow(f).toF(),10),i=u((o=e.split("."))[1]),o=u(o[0]),s=(c=E(i,a,i.length-a.length,n,t,1&o[o.length-1])).c,f=c.e){for(;++f;s.unshift(0));e=d(o)+"."+d(s)}else s[0]?o[f=o.length-1]<t-1?(++o[f],e=d(o)):e=new v(d(o),t).plus(g).toS(t):e=d(o);else e=d(u(e));return e}function E(e,t,r,n,f,i){var o,s,d,l,h,p=t.slice(),b=o=t.length,m=e.length,y=e.slice(0,o),w=y.length,_=new v(g),E=_.c=[],A=0,x=a+(_.e=r)+1;for(_.s=n,n=x<0?0:x;w++<o;y.push(0));p.unshift(0);do{for(d=0;d<f;d++){if(o!=(w=y.length))l=o>w?1:-1;else for(h=-1,l=0;++h<o;)if(t[h]!=y[h]){l=t[h]>y[h]?1:-1;break}if(!(l<0))break;for(s=w==o?t:p;w;){if(y[--w]<s[w]){for(h=w;h&&!y[--h];y[h]=f-1);--y[h],y[w]+=f}y[w]-=s[w]}for(;!y[0];y.shift());}E[A++]=l?d:++d,y[0]&&l?y[w]=e[b]||0:y=[e[b]]}while((b++<m||null!=y[0])&&n--);return E[0]||1==A||(--_.e,E.shift()),A>x&&T(_,a,f,i,null!=y[0]),_.e>u?_.c=_.e=null:_.e<c&&(_.c=[_.e=0]),_}function A(e,t,r){var n=t-(e=new v(e)).e,f=e.c;if(!f)return e.toS();for(f.length>++t&&T(e,n,10),n=0==f[0]?n+1:r?t:e.e+n+1;f.length<n;f.push(0));return n=e.e,1==r||2==r&&(--t<n||n<=o)?(e.s<0&&f[0]?"-":"")+(f.length>1?(f.splice(1,0,"."),f.join("")):f[0])+(n<0?"e":"e+")+n:e.toS()}function T(e,t,r,n,f){var a=e.c,o=e.s<0,s=r/2,c=e.e+t+1,u=a[c],d=f||c<0||null!=a[c+1];if(f=i<4?(null!=u||d)&&(0==i||2==i&&!o||3==i&&o):u>s||u==s&&(4==i||d||6==i&&(1&a[c-1]||!t&&n)||7==i&&!o||8==i&&o),c<1||!a[0])return a.length=0,a.push(0),f?(a[0]=1,e.e=-t):e.e=0,e;if(a.length=c--,f)for(--r;++a[c]>r;)a[c]=0,c--||(++e.e,a.unshift(1));for(c=a.length;!a[--c];a.pop());return e}function x(e,t,r){var n=i;return i=r,(e=new v(e)).c&&T(e,t,10),i=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 f=[],a=0;a<e.length;a+=n){for(var i=[],o=0;o<n;o++)i.push(e[a+("big"===r?o:n-o-1)]);f.push(i.map((function(e){return(e<16?"0":"")+e.toString(16)})).join(""))}return v(f.join(""),16)},v.config=function(){var e,t,f=0,h={},p=arguments,m=p[0],y="config",g=function(e,t,n){return!((r=e<t||e>n)||l(e)!=e&&0!==e)},v=m&&"object"==typeof m?function(){if(m.hasOwnProperty(t))return null!=(e=m[t])}:function(){if(p.length>f)return null!=(e=p[f++])};return v(t="DECIMAL_PLACES")&&(g(e,0,n)?a=0|e:w(e,t,y)),h[t]=a,v(t="ROUNDING_MODE")&&(g(e,0,8)?i=0|e:w(e,t,y)),h[t]=i,v(t="EXPONENTIAL_AT")&&(g(e,-n,n)?o=-(s=~~(e<0?-e:+e)):!r&&e&&g(e[0],-n,0)&&g(e[1],0,n)?(o=~~e[0],s=~~e[1]):w(e,t,y,1)),h[t]=[o,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]):w(e,t,y,1,1)),h[t]=[c,u],v(t="ERRORS")&&(e===!!e||1===e||0===e?(r=b=0,l=(d=!!e)?parseInt:parseFloat):w(e,t,y,0,0,1)),h[t]=d,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 x(this,0,2)},h.comparedTo=h.cmp=function(e,t){var r,n=this,f=n.c,a=(b=-b,e=new v(e,t)).c,i=n.s,o=e.s,s=n.e,c=e.e;if(!i||!o)return null;if(r=f&&!f[0],t=a&&!a[0],r||t)return r?t?0:-o:i;if(i!=o)return i;if(r=i<0,t=s==c,!f||!a)return t?0:!f^r?1:-1;if(!t)return s>c^r?1:-1;for(i=-1,o=(s=f.length)<(c=a.length)?s:c;++i<o;)if(f[i]!=a[i])return f[i]>a[i]^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,f=this.s,a=(b=2,e=new v(e,t)).c,i=e.e,o=e.s,s=f==o?1:-1;return(n||r&&r[0])&&(i||a&&a[0])?E(r,a,n-i,s,10):new v(f&&o&&(r?!a||r[0]!=a[0]:a)?r&&0==r[0]||!a?0*s:s/0:NaN)},h.equals=h.eq=function(e,t){return b=3,0===this.cmp(e,t)},h.floor=function(){return x(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,f,a,o=this,s=o.s;if(t=(b=8,e=new v(e,t)).s,!s||!t)return new v(NaN);if(s!=t)return e.s=-t,o.plus(e);var u=o.c,d=o.e,l=e.c,h=e.e;if(!d||!h){if(!u||!l)return u?(e.s=-t,e):new v(l?o:NaN);if(!u[0]||!l[0])return l[0]?(e.s=-t,e):new v(u[0]?o:3==i?-0:0)}if(u=u.slice(),s=d-h){for((r=(a=s<0)?(s=-s,u):(h=d,l)).reverse(),t=s;t--;r.push(0));r.reverse()}else for(f=((a=u.length<l.length)?u:l).length,s=t=0;t<f;t++)if(u[t]!=l[t]){a=u[t]<l[t];break}if(a&&(r=u,u=l,l=r,e.s=-e.s),(t=-((f=u.length)-l.length))>0)for(;t--;u[f++]=0);for(t=l.length;t>s;){if(u[--t]<l[t]){for(n=t;n&&!u[--n];u[n]=9);--u[n],u[t]+=10}u[t]-=l[t]}for(;0==u[--f];u.pop());for(;0==u[0];u.shift(),--h);return(h<c||!u[0])&&(u[0]||(e.s=3==i?-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,f=(b=9,e=new v(e,t)).c,o=r.s,s=e.s;return(t=!o||!s||f&&!f[0])||n&&!n[0]?new v(t?NaN:r):(r.s=e.s=1,t=1==e.cmp(r),r.s=o,e.s=s,t?new v(r):(o=a,s=i,a=0,i=1,r=r.div(e),a=o,i=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,f=n.s;if(t=(b=10,e=new v(e,t)).s,!f||!t)return new v(NaN);if(f!=t)return e.s=-t,n.minus(e);var a=n.e,i=n.c,o=e.e,s=e.c;if(!a||!o){if(!i||!s)return new v(f/0);if(!i[0]||!s[0])return s[0]?e:new v(i[0]?n:0*f)}if(i=i.slice(),f=a-o){for((r=f>0?(o=a,s):(f=-f,i)).reverse();f--;r.push(0));r.reverse()}for(i.length-s.length<0&&(r=s,s=i,i=r),f=s.length,t=0;f;t=(i[--f]=i[f]+s[f]+t)/10^0,i[f]%=10);for(t&&(i.unshift(t),++o>u&&(i=o=null)),f=i.length;0==i[--f];i.pop());return e.c=i,e.e=o,e},h.toPower=h.pow=function(e){var t=0*e==0?0|e:e,n=new v(this),a=new v(g);if(((r=e<-1e6||e>f)&&(t=1*e/0)||l(e)!=e&&0!==e&&!(t=NaN))&&!w(e,"exponent","pow")||!t)return new v(Math.pow(n.toS(),t));for(t=t<0?-t:t;1&t&&(a=a.times(n)),t>>=1;)n=n.times(n);return e<0?g.div(a):a},h.powm=function(e,t){return this.pow(e).mod(t)},h.round=function(e,t){return x(this,e=null==e||((r=e<0||e>n)||l(e)!=e)&&!w(e,"decimal places","round")?0:0|e,t=null==t||((r=t<0||t>8)||l(t)!=t&&0!==t)&&!w(t,"mode","round")?i:0|t)},h.squareRoot=h.sqrt=function(){var e,t,r,n,f=this,o=f.c,s=f.s,c=f.e,u=a,d=i,l=new v("0.5");if(1!==s||!o||!o[0])return new v(!s||s<0&&(!o||o[0])?NaN:o?f:1/0);for(s=Math.sqrt(f.toS()),i=1,0==s||s==1/0?((e=o.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)+(a+=4))<3&&(s=0),c=s;;)if(n=t,t=l.times(n.plus(f.div(n))),n.c.slice(0,s).join("")===t.c.slice(0,s).join("")){if(9!=(o=t.c)[s-=e&&t.e<r]||9!=o[s-1]||9!=o[s-2]||!(9==o[s-3]||e&&4==o[s-3])){if(!(o[c]||o[c-1]||o[c-2]||o[c-3]&&5!=o[c-3]||(o.length>c-2&&(o.length=c-2),t.times(t).eq(f)))){for(;o.length<c-3;)o.push(0);o[c-3]++}return i=d,T(t,a=u,10),t}if(e&&9==o[s-3]&&(n=t.round(u,0)).times(n).eq(f))return i=d,a=u,n;a+=4,s+=4,e=""}},h.times=h.mul=function(e,t){var r,n=this,f=n.c,a=(b=11,e=new v(e,t)).c,i=n.e,o=e.e,s=n.s;if(e.s=s==(t=e.s)?1:-1,!((i||f&&f[0])&&(o||a&&a[0])))return new v(!s||!t||f&&!f[0]&&!a||a&&!a[0]&&!f?NaN:f&&a?0*e.s:e.s/0);for(e.e=i+o,(s=f.length)<(t=a.length)&&(r=f,f=a,a=r,o=s,s=t,t=o),o=s+t,r=[];o--;r.push(0));for(i=t-1;i>-1;i--){for(t=0,o=s+i;o>i;t=r[o]+a[i]*f[o-i-1]+t,r[o--]=t%10|0,t=t/10|0);t&&(r[o]=(r[o]+t)%10)}for(t&&++e.e,!r[0]&&r.shift(),o=r.length;!r[--o];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 f=new t(4+n);n>0&&u.copy(f,4+(128&u[0]?1:0)),128&u[0]&&(f[4]=0),f[0]=n&255<<24,f[1]=n&255<<16,f[2]=65280&n,f[3]=255&n;var a=this.lt(0);if(a)for(var i=4;i<f.length;i++)f[i]=255-f[i];return f[4]=127&f[4]|(a?128:0),a&&f[f.length-1]++,f}e||(e={});var o={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"===o?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)||l(e)!=e&&0!==e)&&!w(e,"decimal places","toE"))&&this.c?this.c.length-1:0|e,1)},h.toFixed=h.toF=function(e){var t,f,a,i=this;return null==e||((r=e<0||e>n)||l(e)!=e&&0!==e)&&!w(e,"decimal places","toF")||(a=i.e+(0|e)),t=o,e=s,o=-(s=1/0),a==f?f=i.toS():(f=A(i,a),i.s<0&&i.c&&(i.c[0]?f.indexOf("-")<0&&(f="-"+f):f=f.replace(/^-/,""))),o=t,s=e,f},h.toFraction=h.toFr=function(e){var t,n,f,o,s,c,l,h=o=new v(g),p=f=new v("0"),m=this,y=m.c,_=u,E=a,A=i,T=new v(g);if(!y)return m.toS();for(l=T.e=y.length-m.e-1,(null==e||(!(b=12,c=new v(e)).s||(r=c.cmp(h)<0||!c.c)||d&&c.e<c.c.length-1)&&!w(e,"max denominator","toFr")||(e=c).cmp(T)>0)&&(e=l>0?T:h),u=1/0,c=new v(y.join("")),a=0,i=1;t=c.div(T),1!=(s=o.plus(t.times(p))).cmp(e);)o=p,p=s,h=f.plus(t.times(s=h)),f=s,T=c.minus(t.times(s=T)),c=s;return s=e.minus(o).div(p),f=f.plus(s.times(h)),o=o.plus(s.times(p)),f.s=h.s=m.s,a=2*l,i=A,n=h.div(p).minus(m).abs().cmp(f.div(o).minus(m).abs())<1?[h.toS(),p.toS()]:[f.toS(),o.toS()],u=_,a=E,n},h.toPrecision=h.toP=function(e){return null==e||((r=e<1||e>n)||l(e)!=e)&&!w(e,"precision","toP")?this.toS():A(this,0|--e,2)},h.toString=h.toS=function(e){var t,n,f,a=this,i=a.e;if(null===i)n=a.s?"Infinity":"NaN";else{if(e===t&&(i<=o||i>=s))return A(a,a.c.length-1,1);if(n=a.c.join(""),i<0){for(;++i;n="0"+n);n="0."+n}else if(f=n.length,i>0)if(++i>f)for(i-=f;i--;n+="0");else i<f&&(n=n.slice(0,i)+"."+n.slice(i));else if(t=n.charAt(0),f>1)n=t+"."+n.slice(1);else if("0"==t)return t;if(null!=e)if((r=!(e>=2&&e<65))||e!=(0|e)&&d)w(e,"base","toS");else if("0"==(n=_(n,0|e,10,a.s)))return n}return a.s<0?"-"+n:n},h.valueOf=function(){return this.toS()},e.exports=v}).call(this,r(6).Buffer)},function(e,t,r){var n=r(149);function f(e,t,r,n){for(var f=0,a=0,i=[],o=(1<<r)-1,s=0;s<e.length;++s){var c=e[s];if(c<0||c>>t!=0)return null;for(f=f<<t|c,a+=t;a>=r;)a-=r,i.push(f>>a&o)}if(n)a>0&&i.push(f<<r-a&o);else if(a>=t||f<<r-a&o)return null;return i}function a(e,t){var r=!1,a=n.decode(t,n.encodings.BECH32);if(null===a&&(a=n.decode(t,n.encodings.BECH32M),r=!0),null===a||a.hrp!==e||a.data.length<1||a.data[0]>16)return null;var i=f(a.data.slice(1),5,8,!1);return null===i||i.length<2||i.length>40||0===a.data[0]&&20!==i.length&&32!==i.length||0===a.data[0]&&r?null:0===a.data[0]||r?{version:a.data[0],program:i}:null}function i(e,t,r){var i=n.encodings.BECH32;t>0&&(i=n.encodings.BECH32M);var o=n.encode(e,[t].concat(f(r,8,5,!0)),i);return null===a(e,o)?null:o}var o="prod";e.exports={encode:i,decode:a,isValidAddress:function(e,t,r={}){if(!t.bech32Hrp||0===t.bech32Hrp.length)return!1;const{networkType:n=o}=r;var f;if("prod"===n||"testnet"===n)f=t.bech32Hrp[n];else{if(!t.bech32Hrp)return!1;f=t.bech32Hrp.prod.concat(t.bech32Hrp.testnet)}for(var s of f){var c=a(s,e);if(c)return i(s,c.version,c.program)===e.toLowerCase()}return!1}}},function(e,t,r){var n=r(532),f=r(286),a=r(107),i=r(248);function o(e){var t=function(e){try{var t=a.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],i=t[1];return"number"==typeof i&&f.crc32(r)==i}e.exports={isValidAddress:function(e,t,r={}){return o(e)||function(e,t,r){return i.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){var n,f;!function(a,i){"use strict";var o=Math.pow(2,-24),s=Math.pow(2,32),c=Math.pow(2,53);(f="function"==typeof(n={encode:function(e){var t,r=new ArrayBuffer(256),n=new DataView(r),f=0;function a(e){for(var a=r.byteLength,i=f+e;a<i;)a*=2;if(a!==r.byteLength){var o=n;r=new ArrayBuffer(a),n=new DataView(r);for(var s=f+3>>2,c=0;c<s;++c)n.setUint32(4*c,o.getUint32(4*c))}return t=e,n}function o(){f+=t}function u(e){o(a(1).setUint8(f,e))}function d(e){for(var t=a(e.length),r=0;r<e.length;++r)t.setUint8(f+r,e[r]);o()}function l(e,t){t<24?u(e<<5|t):t<256?(u(e<<5|24),u(t)):t<65536?(u(e<<5|25),function(e){o(a(2).setUint16(f,e))}(t)):t<4294967296?(u(e<<5|26),function(e){o(a(4).setUint32(f,e))}(t)):(u(e<<5|27),function(e){var t=e%s,r=(e-t)/s,n=a(8);n.setUint32(f,r),n.setUint32(f+4,t),o()}(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===i)return u(247);switch(typeof t){case"number":if(Math.floor(t)===t){if(0<=t&&t<=c)return l(0,t);if(-c<=t&&t<0)return l(1,-(t+1))}return u(251),function(e){o(a(8).setFloat64(f,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 l(3,n.length),d(n);default:var h;if(Array.isArray(t))for(l(4,h=t.length),r=0;r<h;++r)e(t[r]);else if(t instanceof Uint8Array)l(2,t.length),d(t);else{var p=Object.keys(t);for(l(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,f);for(var h=new ArrayBuffer(f),p=new DataView(h),b=0;b<f;++b)p.setUint8(b,n.getUint8(b));return h},decode:function(e,t,r){var n=new DataView(e),f=0;function a(e,t){return f+=t,e}function c(t){return a(new Uint8Array(e,f,t),t)}function u(){return a(n.getUint8(f),1)}function d(){return a(n.getUint16(f),2)}function l(){return a(n.getUint32(f),4)}function h(){return 255===n.getUint8(f)&&(f+=1,!0)}function p(e){if(e<24)return e;if(24===e)return u();if(25===e)return d();if(26===e)return l();if(27===e)return l()*s+l();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 m(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 i});var y=function e(){var s,l,y=u(),g=y>>5,v=31&y;if(7===g)switch(v){case 25:return function(){var e=new ArrayBuffer(4),t=new DataView(e),r=d(),n=32768&r,f=31744&r,a=1023&r;if(31744===f)f=261120;else if(0!==f)f+=114688;else if(0!==a)return a*o;return t.setUint32(0,n<<16|f<<13|a<<13),t.getFloat32(0)}();case 26:return a(n.getFloat32(f),4);case 27:return a(n.getFloat64(f),8)}if((l=p(v))<0&&(g<2||6<g))throw"Invalid length";switch(g){case 0:return l;case 1:return-1-l;case 2:if(l<0){for(var w=[],_=0;(l=b(g))>=0;)_+=l,w.push(c(l));var E=new Uint8Array(_),A=0;for(s=0;s<w.length;++s)E.set(w[s],A),A+=w[s].length;return E}return c(l);case 3:var T=[];if(l<0)for(;(l=b(g))>=0;)m(T,l);else m(T,l);return String.fromCharCode.apply(null,T);case 4:var x;if(l<0)for(x=[];!h();)x.push(e());else for(x=new Array(l),s=0;s<l;++s)x[s]=e();return x;case 5:var S={};for(s=0;s<l||l<0&&!h();++s){S[e()]=e()}return S;case 6:return t(e(),l);case 7:switch(l){case 20:return!1;case 21:return!0;case 22:return null;case 23:return i;default:return r(l)}}}();if(f!==e.byteLength)throw"Remaining bytes";return y}})?n.call(t,r,t,e):n)===i||(e.exports=f)}()},function(e,t,r){var n=r(30),f=r(534),a="prod",i=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95}$"),o=new RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{106}$");e.exports={isValidAddress:function(e,t,r={}){const{networkType:s=a}=r;var c="standard";if(!i.test(e)){if(!o.test(e))return!1;c="integrated"}var u=f.decode(e);return!!u&&(!!function(e,t,r,n){var f=t.addressTypes;"integrated"==n&&(f=t.iAddressTypes);var a=parseInt(e.substr(0,2),16).toString();switch(r){case"prod":return f.prod.indexOf(a)>=0;case"testnet":return f.testnet.indexOf(a)>=0;case"stagenet":return f.stagenet.indexOf(a)>=0;case"both":return f.prod.indexOf(a)>=0||f.testnet.indexOf(a)>=0||f.stagenet.indexOf(a)>=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(535).JSBigInt,f=function(){for(var e={},t="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",r=[],f=0;f<t.length;f++)r.push(t.charCodeAt(f));var a=[0,2,3,5,6,7,9,10,11],i=r.length,o=11,s=new n(2).pow(64);return e.encode_block=function(e,t,f){if(e.length<1||e.length>o)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),f=0;switch(9-e.length){case 1:t=t.add(e[f++]);case 2:t=t.multiply(r).add(e[f++]);case 3:t=t.multiply(r).add(e[f++]);case 4:t=t.multiply(r).add(e[f++]);case 5:t=t.multiply(r).add(e[f++]);case 6:t=t.multiply(r).add(e[f++]);case 7:t=t.multiply(r).add(e[f++]);case 8:t=t.multiply(r).add(e[f++]);break;default:throw"Impossible condition"}return t}(e),c=a[e.length]-1;1===s.compare(0);){var u=s.divRem(i),d=u[1];s=u[0],t[f+c]=r[d.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 f,i=Math.floor(n.length/8),s=n.length%8,c=i*o+a[s],u=new Uint8Array(c);for(f=0;f<c;++f)u[f]=r[0];for(f=0;f<i;f++)u=e.encode_block(n.subarray(8*f,8*f+8),u,f*o);return s>0&&(u=e.encode_block(n.subarray(8*i,8*i+s),u,i*o)),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,f){if(e.length<1||e.length>o)throw"Invalid block length: "+e.length;var c=a.indexOf(e.length);if(c<=0)throw"Invalid block size";for(var u=new n(0),d=new n(1),l=e.length-1;l>=0;l--){var h=r.indexOf(e[l]);if(h<0)throw"Invalid symbol";var p=d.multiply(h).add(u);if(1===p.compare(s))throw"Overflow";u=p,d=d.multiply(i)}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 f=new n(2).pow(8),a=t-1;a>=0;a--)r[a]=e.remainder(f).toJSValue(),e=e.divide(f);return r}(u,c),f),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/o),n=t.length%o,f=a.indexOf(n);if(f<0)throw"Invalid encoded length";for(var i=new Uint8Array(8*r+f),s=0;s<r;s++)i=e.decode_block(t.subarray(s*o,s*o+o),i,8*s);return n>0&&(i=e.decode_block(t.subarray(r*o,r*o+n),i,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("")}(i)},e}();e.exports=f},function(e,t,r){!function(e){"use strict";var t={};function r(e,n,a){if(a!==t)return e instanceof r?e:void 0===e?f: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 f=new r([],0,t);r.ZERO=f;var a=new r([1],1,t);r.ONE=a;var i=new r(a._d,-1,t);r.M_ONE=i,r._0=f,r._1=a,r.small=[f,a,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 f=this._d[n].toString();f.length<7;)f="0"+f;t+=f}return t}var a=r.digits;e=r.small[e];for(var i,o=this._s,s=this.abs(),c=[];0!==s._s;){var u=s.divRem(e);s=u[0],i=u[1],c.push(a[i.valueOf()])}return(o<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 a;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,f){var a=(f=+f)<0,i=r.length+f;e=(a?r:n).length,f=(f=Math.abs(f))>=e?f-e+a:0;var o=new Array(f+1).join("0"),s=r+n;return(t||"")+(a?s=o+s:s+=o).substr(0,i+=a?o.length:0)+(i<s.length?"."+s.substr(i):"")}))),a=void 0===n?"0[xcb]":16==n?"0x":8==n?"0c":2==n?"0b":"";var i=new RegExp("^([+\\-]?)("+a+")?([0-9a-z]*)(?:\\.\\d*)?$","i").exec(e);if(i){var o=i[1]||"+",s=i[2]||"",c=i[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 f;if(o="-"===o?-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,o,t)}u=f;n=r.small[n];for(var d=r.small,l=0;l<c.length;l++)u=u.multiply(n).add(d[parseInt(c[l],36)]);return new r(u._d,o,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 f,a=this._d,i=e._d,o=a.length,s=i.length,c=new Array(Math.max(o,s)+1),u=Math.min(o,s),d=0,l=0;l<u;l++)f=a[l]+i[l]+d,c[l]=f%n,d=f/n|0;for(s>o&&(a=i,o=s),l=u;d&&l<o;l++)f=a[l]+d,c[l]=f%n,d=f/n|0;for(d&&(c[l]=d);l<o;l++)c[l]=a[l];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 a=this;this._s<0&&(a=new r(e._d,1,t),e=new r(this._d,1,t));var i=a.compareAbs(e);if(0===i)return f;if(i<0){var o=e;e=a,a=o}var s,c,u=a._d,d=e._d,l=u.length,h=d.length,p=new Array(l),b=0;for(s=0;s<h;s++)(c=u[s]-b-d[s])<0?(c+=n,b=1):b=0,p[s]=c;for(s=h;s<l;s++){if(!((c=u[s]-b)<0)){p[s++]=c;break}c+=n,p[s]=c}for(;s<l;s++)p[s]=u[s];return new r(p,i,t)},function(){function e(e,f){for(var a=e._d,i=a.slice(),o=0;;){var s=(a[o]||0)+1;if(i[o]=s%n,s<=9999999)break;++o}return new r(i,f,t)}function f(e,f){for(var a=e._d,i=a.slice(),o=0;;){var s=(a[o]||0)-1;if(!(s<0)){i[o]=s;break}i[o]=s+n,++o}return new r(i,f,t)}r.prototype.next=function(){switch(this._s){case 0:return a;case-1:return f(this,-1);default:return e(this,1)}},r.prototype.prev=function(){switch(this._s){case 0:return i;case-1:return e(this,-1);default:return f(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 f=this._d,a=e._d,i=t-1;i>=0;i--)if(f[i]!==a[i])return f[i]<a[i]?-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===a||this===i||1===this._d.length&&1===this._d[0]},r.prototype.multiply=function(e){if(0===this._s)return f;if(0===(e=r(e))._s)return f;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 a,i=this._d.length>=e._d.length,o=(i?this:e)._d,s=(i?e:this)._d,c=o.length,u=s.length,d=c+u,l=new Array(d);for(a=0;a<d;a++)l[a]=0;for(a=0;a<u;a++){for(var h,p=0,b=s[a],m=c+a,y=a;y<m;y++)p=(h=l[y]+b*o[y-a]+p)/n|0,l[y]=h%n|0;p&&(p=(h=l[y]+p)/n|0,l[y]=h%n)}return new r(l,this._s*e._s,t)},r.prototype.multiplySingleDigit=function(e){if(0===e||0===this._s)return f;if(1===e)return this;var a;if(1===this._d.length)return new r((a=this._d[0]*e)>=n?[a%n|0,a/n|0]:[a],1,t);if(2===e)return this.add(this);if(this.isUnit())return new r([e],1,t);for(var i=this._d,o=i.length,s=o+1,c=new Array(s),u=0;u<s;u++)c[u]=0;for(var d=0,l=0;l<o;l++)d=(a=e*i[l]+d)/n|0,c[l]=a%n|0;return d&&(c[l]=d),new r(c,1,t)},r.prototype.square=function(){if(0===this._s)return f;if(this.isUnit())return a;var e,i,o,s,c=this._d,u=c.length,d=new Array(u+u+1);for(s=0;s<u;s++)o=2*s,i=(e=c[s]*c[s])/n|0,d[o]=e%n,d[o+1]=i;for(s=0;s<u;s++){i=0,o=2*s+1;for(var l=s+1;l<u;l++,o++)i=(e=c[l]*c[s]*2+d[o]+i)/n|0,d[o]=e%n;var h=i+d[o=u+s];i=h/n|0,d[o]=h%n,d[o+1]+=i}return new r(d,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[f,f];if(1===e._d.length)return this.divRemSmall(e._s*e._d[0]);switch(this.compareAbs(e)){case 0:return[this._s===e._s?a:i,f];case-1:return[f,this]}for(var o,s=this._s*e._s,c=e.abs(),u=this._d,d=u.length,l=(e._d.length,[]),h=new r([],0,t);d;)if(h._d.unshift(u[--d]),(h=new r(h._d,1,t)).compareAbs(e)<0)l.push(0);else{if(0===h._s)o=0;else{var p=h._d.length,b=c._d.length,m=h._d[p-1]*n+h._d[p-2],y=c._d[b-1]*n+c._d[b-2];h._d.length>c._d.length&&(m=(m+1)*n),o=Math.ceil(m/y)}do{var g=c.multiplySingleDigit(o);if(g.compareAbs(h)<=0)break;o--}while(o);if(l.push(o),o){var v=h.subtract(g);h._d=v._d.slice()}}return[new r(l.reverse(),s,t),new r(h._d,this._s,t)]},r.prototype.divRemSmall=function(e){var a;if(0===(e=+e))throw new Error("Divide by zero");var i=e<0?-1:1,o=this._s*i;if((e=Math.abs(e))<1||e>=n)throw new Error("Argument out of range");if(0===this._s)return[f,f];if(1===e||-1===e)return[1===o?this.abs():new r(this._d,o,t),f];if(1===this._d.length){var s=new r([this._d[0]/e|0],1,t);return a=new r([this._d[0]%e|0],1,t),o<0&&(s=s.negate()),this._s<0&&(a=a.negate()),[s,a]}for(var c,u=this._d.slice(),d=new Array(u.length),l=0,h=0,p=0;u.length;){if((l=l*n+u[u.length-1])<e)d[p++]=0,u.pop(),h=n*h+l;else h=l-e*(c=0===l?0:l/e|0),d[p++]=c,c?(u.pop(),l=h):u.pop()}return a=new r([h],1,t),this._s<0&&(a=a.negate()),[new r(d.reverse(),o,t),a]},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(o))throw new Error("exponent too large in BigInteger.exp10");if(0===this._s)return f;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 f;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 a;if(e._s<0){if(0===this._s)throw new Error("Divide by zero");return f}if(0===this._s)return f;if(e.isUnit())return this;if(e.compareAbs(o)>0)throw new Error("exponent too large in BigInteger.pow");for(var t=this,n=a,i=r.small[2];e.isPositive();){if(e.isOdd()&&(n=n.multiply(t),e.isUnit()))return n;t=t.square(),e=e.quotient(i)}return n},r.prototype.modPow=function(e,t){for(var n=a,f=this;e.isPositive();)e.isOdd()&&(n=n.multiply(f).remainder(t)),(e=e.quotient(r.small[2])).isPositive()&&(f=f.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 f=Math.ceil(30/7),a=this._d.slice(e-f);return Math.log(new r(a,1,t).valueOf())+(e-f)*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 o=r(2147483647);r.MAX_EXP=o,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,f){return e.call(r(t),r(n),r(f))}}!function(){var f,a,i="toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(","),o="compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(","),s=["modPow"];for(f=0;f<i.length;f++)r[a=i[f]]=e(r.prototype[a]);for(f=0;f<o.length;f++)r[a=o[f]]=t(r.prototype[a]);for(f=0;f<s.length;f++)r[a=s[f]]=n(r.prototype[a]);r.exp10=function(e,t){return r(e).exp10(t)}}()}(),e.JSBigInt=r}(t)},function(e,t,r){var n=r(30),f="13456789abcdefghijkmnopqrstuwxyz",a=r(147)(f),i=new RegExp("^(xrb|nano)_(["+f+"]{60})$");e.exports={isValidAddress:function(e){return!!i.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t=a.decode(i.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(30),f=r(538);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),a=n.blake2b(t,32).slice(0,12);return!!f(a,r)}}},function(e,t,r){(function(e,r){var n="__lodash_hash_undefined__",f=9007199254740991,a="[object Arguments]",i="[object Array]",o="[object Boolean]",s="[object Date]",c="[object Error]",u="[object Function]",d="[object Map]",l="[object Number]",h="[object Object]",p="[object Promise]",b="[object RegExp]",m="[object Set]",y="[object String]",g="[object Symbol]",v="[object WeakMap]",w="[object ArrayBuffer]",_="[object DataView]",E=/^\[object .+?Constructor\]$/,A=/^(?:0|[1-9]\d*)$/,T={};T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T[a]=T[i]=T[w]=T[o]=T[_]=T[s]=T[c]=T[u]=T[d]=T[l]=T[h]=T[b]=T[m]=T[y]=T[v]=!1;var x="object"==typeof e&&e&&e.Object===Object&&e,S="object"==typeof self&&self&&self.Object===Object&&self,C=x||S||Function("return this")(),O=t&&!t.nodeType&&t,k=O&&"object"==typeof r&&r&&!r.nodeType&&r,P=k&&k.exports===O,R=P&&x.process,M=function(){try{return R&&R.binding&&R.binding("util")}catch(e){}}(),D=M&&M.isTypedArray;function N(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 B(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function I(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,H=Object.prototype,z=C["__core-js_shared__"],V=q.toString,K=H.hasOwnProperty,G=(F=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||""))?"Symbol(src)_1."+F:"",$=H.toString,W=RegExp("^"+V.call(K).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Y=P?C.Buffer:void 0,J=C.Symbol,X=C.Uint8Array,Z=H.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))}),fe=Me(C,"DataView"),ae=Me(C,"Map"),ie=Me(C,"Promise"),oe=Me(C,"Set"),se=Me(C,"WeakMap"),ce=Me(Object,"create"),ue=Ie(fe),de=Ie(ae),le=Ie(ie),he=Ie(oe),pe=Ie(se),be=J?J.prototype:void 0,me=be?be.valueOf:void 0;function ye(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 we(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new ve;++t<r;)this.add(e[t])}function _e(e){var t=this.__data__=new ge(e);this.size=t.size}function Ee(e,t){var r=Le(e),n=!r&&je(e),f=!r&&!n&&Ue(e),a=!r&&!n&&!f&&Ke(e),i=r||n||f||a,o=i?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],s=o.length;for(var c in e)!t&&!K.call(e,c)||i&&("length"==c||f&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Be(c,s))||o.push(c);return o}function Ae(e,t){for(var r=e.length;r--;)if(Fe(e[r][0],t))return r;return-1}function Te(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ee&&ee in Object(e)?function(e){var t=K.call(e,ee),r=e[ee];try{e[ee]=void 0;var n=!0}catch(e){}var f=$.call(e);n&&(t?e[ee]=r:delete e[ee]);return f}(e):function(e){return $.call(e)}(e)}function xe(e){return Ve(e)&&Te(e)==a}function Se(e,t,r,n,f){return e===t||(null==e||null==t||!Ve(e)&&!Ve(t)?e!=e&&t!=t:function(e,t,r,n,f,u){var p=Le(e),v=Le(t),E=p?i:Ne(e),A=v?i:Ne(t),T=(E=E==a?h:E)==h,x=(A=A==a?h:A)==h,S=E==A;if(S&&Ue(e)){if(!Ue(t))return!1;p=!0,T=!1}if(S&&!T)return u||(u=new _e),p||Ke(e)?ke(e,t,r,n,f,u):function(e,t,r,n,f,a,i){switch(r){case _:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!a(new X(e),new X(t)));case o:case s:case l:return Fe(+e,+t);case c:return e.name==t.name&&e.message==t.message;case b:case y:return e==t+"";case d:var u=B;case m:var h=1&n;if(u||(u=I),e.size!=t.size&&!h)return!1;var p=i.get(e);if(p)return p==t;n|=2,i.set(e,t);var v=ke(u(e),u(t),n,f,a,i);return i.delete(e),v;case g:if(me)return me.call(e)==me.call(t)}return!1}(e,t,E,r,n,f,u);if(!(1&r)){var C=T&&K.call(e,"__wrapped__"),O=x&&K.call(t,"__wrapped__");if(C||O){var k=C?e.value():e,P=O?t.value():t;return u||(u=new _e),f(k,P,r,n,u)}}if(!S)return!1;return u||(u=new _e),function(e,t,r,n,f,a){var i=1&r,o=Pe(e),s=o.length,c=Pe(t).length;if(s!=c&&!i)return!1;var u=s;for(;u--;){var d=o[u];if(!(i?d in t:K.call(t,d)))return!1}var l=a.get(e);if(l&&a.get(t))return l==t;var h=!0;a.set(e,t),a.set(t,e);var p=i;for(;++u<s;){var b=e[d=o[u]],m=t[d];if(n)var y=i?n(m,b,d,t,e,a):n(b,m,d,e,t,a);if(!(void 0===y?b===m||f(b,m,r,n,a):y)){h=!1;break}p||(p="constructor"==d)}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 a.delete(e),a.delete(t),h}(e,t,r,n,f,u)}(e,t,r,n,Se,f))}function Ce(e){return!(!ze(e)||function(e){return!!G&&G in e}(e))&&(qe(e)?W:E).test(Ie(e))}function Oe(e){if(r=(t=e)&&t.constructor,n="function"==typeof r&&r.prototype||H,t!==n)return ne(e);var t,r,n,f=[];for(var a in Object(e))K.call(e,a)&&"constructor"!=a&&f.push(a);return f}function ke(e,t,r,n,f,a){var i=1&r,o=e.length,s=t.length;if(o!=s&&!(i&&s>o))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var u=-1,d=!0,l=2&r?new we:void 0;for(a.set(e,t),a.set(t,e);++u<o;){var h=e[u],p=t[u];if(n)var b=i?n(p,h,u,t,e,a):n(h,p,u,e,t,a);if(void 0!==b){if(b)continue;d=!1;break}if(l){if(!N(t,(function(e,t){if(i=t,!l.has(i)&&(h===e||f(h,e,r,n,a)))return l.push(t);var i}))){d=!1;break}}else if(h!==p&&!f(h,p,r,n,a)){d=!1;break}}return a.delete(e),a.delete(t),d}function Pe(e){return function(e,t,r){var n=t(e);return Le(e)?n:function(e,t){for(var r=-1,n=t.length,f=e.length;++r<n;)e[f+r]=t[r];return e}(n,r(e))}(e,Ge,De)}function Re(e,t){var r,n,f=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?f["string"==typeof t?"string":"hash"]:f.map}function Me(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return Ce(r)?r:void 0}ye.prototype.clear=function(){this.__data__=ce?ce(null):{},this.size=0},ye.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ye.prototype.get=function(e){var t=this.__data__;if(ce){var r=t[e];return r===n?void 0:r}return K.call(t,e)?t[e]:void 0},ye.prototype.has=function(e){var t=this.__data__;return ce?void 0!==t[e]:K.call(t,e)},ye.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 ye,map:new(ae||ge),string:new ye}},ve.prototype.delete=function(e){var t=Re(this,e).delete(e);return this.size-=t?1:0,t},ve.prototype.get=function(e){return Re(this,e).get(e)},ve.prototype.has=function(e){return Re(this,e).has(e)},ve.prototype.set=function(e,t){var r=Re(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},we.prototype.add=we.prototype.push=function(e){return this.__data__.set(e,n),this},we.prototype.has=function(e){return this.__data__.has(e)},_e.prototype.clear=function(){this.__data__=new ge,this.size=0},_e.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},_e.prototype.get=function(e){return this.__data__.get(e)},_e.prototype.has=function(e){return this.__data__.has(e)},_e.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ge){var n=r.__data__;if(!ae||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 De=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,f=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[f++]=i)}return a}(te(e),(function(t){return Z.call(e,t)})))}:function(){return[]},Ne=Te;function Be(e,t){return!!(t=null==t?f:t)&&("number"==typeof e||A.test(e))&&e>-1&&e%1==0&&e<t}function Ie(e){if(null!=e){try{return V.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fe(e,t){return e===t||e!=e&&t!=t}(fe&&Ne(new fe(new ArrayBuffer(1)))!=_||ae&&Ne(new ae)!=d||ie&&Ne(ie.resolve())!=p||oe&&Ne(new oe)!=m||se&&Ne(new se)!=v)&&(Ne=function(e){var t=Te(e),r=t==h?e.constructor:void 0,n=r?Ie(r):"";if(n)switch(n){case ue:return _;case de:return d;case le:return p;case he:return m;case pe:return v}return t});var je=xe(function(){return arguments}())?xe:function(e){return Ve(e)&&K.call(e,"callee")&&!Z.call(e,"callee")},Le=Array.isArray;var Ue=re||function(){return!1};function qe(e){if(!ze(e))return!1;var t=Te(e);return t==u||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function He(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=f}function ze(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ve(e){return null!=e&&"object"==typeof e}var Ke=D?function(e){return function(t){return e(t)}}(D):function(e){return Ve(e)&&He(e.length)&&!!T[Te(e)]};function Ge(e){return null!=(t=e)&&He(t.length)&&!qe(t)?Ee(e):Oe(e);var t}r.exports=function(e,t){return Se(e,t)}}).call(this,r(21),r(97)(e))},function(e,t,r){var n=r(30);e.exports={isValidAddress:function(e,t,r){var f=r?r.networkType:"",a=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,f=t.slice(r);t=t.slice(0,r);var a=n.sha256(n.byteArray2hexStr(t)),i=n.hexStr2byteArray(n.sha256(a)).slice(0,4);return f[0]===i[0]&&f[1]===i[1]&&f[2]===i[2]&&f[3]===i[3]&&t}(e);return!!a&&(21===a.length&&function(e,t){var r=t||"prod";return"prod"!==r&&"testnet"!==r&&(r="prod"),e.addressTypes[r][0]}(t,f)===a[0])}}},function(e,t,r){(function(t){var n=r(30);e.exports={isValidAddress:function(e){var r=e.toString().toUpperCase().replace(/-/g,"");if(!r||40!==r.length)return!1;var f=n.toHex(n.base32.b32decode(r));return n.keccak256Checksum(t.from(f.slice(0,42),"hex"))===f.slice(42)}}}).call(this,r(6).Buffer)},function(e,t,r){(function(t){var n=r(30),f=new RegExp("^[0-9]{1,20}L$");e.exports={isValidAddress:function(e){return!!f.test(e)&&this.verifyAddress(e)},verifyAddress:function(e){var r=e.substring(0,e.length-1),f=n.bigNumberToBuffer(r);return t.from(f).slice(0,8).equals(f)}}}).call(this,r(6).Buffer)},function(e,t,r){var n=r(30),f=r(149),a=r(148);e.exports={isValidAddress:function(e,t,r){return function(e,t,r){var a,i=r?r.networkType:"",o="bitcoincash",s=new RegExp(t.regexp),c=e.split(":");if(1===c.length)a=e;else{if("bitcoincash"!==c[0])return!1;a=c[1]}if(!s.test(a))return!1;if(a.toLowerCase()!=a&&a.toUpperCase()!=a)return!1;var u=n.base32.b32decode(a);"testnet"===i&&(o="bchtest");try{if(f.verifyChecksum(o,u,f.encodings.BECH32))return!1}catch(e){return!1}return!0}(e,t,r)||a.isValidAddress(e,t,r)}}},function(e,t,r){var n=r(147),f=r(286),a=r(30),i="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",o=n(i),s=new RegExp("^["+i+"]{56}$");e.exports={isValidAddress:function(e){return!!s.test(e)&&this.verifyChecksum(e)},verifyChecksum:function(e){var t,r=o.decode(e);return 48===r[0]&&a.numberToHex((255&(t=f.crc16xmodem(r.slice(0,-2))))<<8|t>>8&255,4)===a.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(107),f=r(30),a=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=f.hexStr2byteArray(f.sha256x2(f.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(a.length),!0)}catch(e){return!1}}}},function(e,t,r){var n=r(148),f=r(247);e.exports={isValidAddress:function(e,t,r){if(r){if("erc20"===r.chainType)return f.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)||f.isValidAddress(e,t,r)}(e,t,r)}}},function(e,t,r){const n=r(30);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),f=n.byteArray2hexStr(t.slice(-4)).toString("HEX");return n.sha512_256(n.byteArray2hexStr(r)).substr(-8)===f}}}},function(e,t,r){const n=r(30),f=[{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),a=n.byteArray2hexStr(r.slice(0,1)),i=r.slice(1),o=f.find((e=>e.addressLength===i.length));if(!o)throw new Erorr("Invalid address length");const s=n.byteArray2hexStr(i.slice(0,o.accountIndexLength)),c=n.byteArray2hexStr(i.slice(-o.checkSumLength));return n.blake2b(t+a+s,64).substr(0,2*o.checkSumLength).toUpperCase()==c}catch(e){return!1}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=[{code:"AED",number:"784",digits:2,currency:"UAE Dirham",countries:["United Arab Emirates (The)"]},{code:"AFN",number:"971",digits:2,currency:"Afghani",countries:["Afghanistan"]},{code:"ALL",number:"008",digits:2,currency:"Lek",countries:["Albania"]},{code:"AMD",number:"051",digits:2,currency:"Armenian Dram",countries:["Armenia"]},{code:"ANG",number:"532",digits:2,currency:"Netherlands Antillean Guilder",countries:["Curaçao","Sint Maarten (Dutch Part)"]},{code:"AOA",number:"973",digits:2,currency:"Kwanza",countries:["Angola"]},{code:"ARS",number:"032",digits:2,currency:"Argentine Peso",countries:["Argentina"]},{code:"AUD",number:"036",digits:2,currency:"Australian Dollar",countries:["Australia","Christmas Island","Cocos (Keeling) Islands (The)","Heard Island and Mcdonald Islands","Kiribati","Nauru","Norfolk Island","Tuvalu"]},{code:"AWG",number:"533",digits:2,currency:"Aruban Florin",countries:["Aruba"]},{code:"AZN",number:"944",digits:2,currency:"Azerbaijan Manat",countries:["Azerbaijan"]},{code:"BAM",number:"977",digits:2,currency:"Convertible Mark",countries:["Bosnia and Herzegovina"]},{code:"BBD",number:"052",digits:2,currency:"Barbados Dollar",countries:["Barbados"]},{code:"BDT",number:"050",digits:2,currency:"Taka",countries:["Bangladesh"]},{code:"BGN",number:"975",digits:2,currency:"Bulgarian Lev",countries:["Bulgaria"]},{code:"BHD",number:"048",digits:3,currency:"Bahraini Dinar",countries:["Bahrain"]},{code:"BIF",number:"108",digits:0,currency:"Burundi Franc",countries:["Burundi"]},{code:"BMD",number:"060",digits:2,currency:"Bermudian Dollar",countries:["Bermuda"]},{code:"BND",number:"096",digits:2,currency:"Brunei Dollar",countries:["Brunei Darussalam"]},{code:"BOB",number:"068",digits:2,currency:"Boliviano",countries:["Bolivia (Plurinational State Of)"]},{code:"BOV",number:"984",digits:2,currency:"Mvdol",countries:["Bolivia (Plurinational State Of)"]},{code:"BRL",number:"986",digits:2,currency:"Brazilian Real",countries:["Brazil"]},{code:"BSD",number:"044",digits:2,currency:"Bahamian Dollar",countries:["Bahamas (The)"]},{code:"BTN",number:"064",digits:2,currency:"Ngultrum",countries:["Bhutan"]},{code:"BWP",number:"072",digits:2,currency:"Pula",countries:["Botswana"]},{code:"BYN",number:"933",digits:2,currency:"Belarusian Ruble",countries:["Belarus"]},{code:"BZD",number:"084",digits:2,currency:"Belize Dollar",countries:["Belize"]},{code:"CAD",number:"124",digits:2,currency:"Canadian Dollar",countries:["Canada"]},{code:"CDF",number:"976",digits:2,currency:"Congolese Franc",countries:["Congo (The Democratic Republic of The)"]},{code:"CHE",number:"947",digits:2,currency:"WIR Euro",countries:["Switzerland"]},{code:"CHF",number:"756",digits:2,currency:"Swiss Franc",countries:["Liechtenstein","Switzerland"]},{code:"CHW",number:"948",digits:2,currency:"WIR Franc",countries:["Switzerland"]},{code:"CLF",number:"990",digits:4,currency:"Unidad de Fomento",countries:["Chile"]},{code:"CLP",number:"152",digits:0,currency:"Chilean Peso",countries:["Chile"]},{code:"CNY",number:"156",digits:2,currency:"Yuan Renminbi",countries:["China"]},{code:"COP",number:"170",digits:2,currency:"Colombian Peso",countries:["Colombia"]},{code:"COU",number:"970",digits:2,currency:"Unidad de Valor Real",countries:["Colombia"]},{code:"CRC",number:"188",digits:2,currency:"Costa Rican Colon",countries:["Costa Rica"]},{code:"CUC",number:"931",digits:2,currency:"Peso Convertible",countries:["Cuba"]},{code:"CUP",number:"192",digits:2,currency:"Cuban Peso",countries:["Cuba"]},{code:"CVE",number:"132",digits:2,currency:"Cabo Verde Escudo",countries:["Cabo Verde"]},{code:"CZK",number:"203",digits:2,currency:"Czech Koruna",countries:["Czechia"]},{code:"DJF",number:"262",digits:0,currency:"Djibouti Franc",countries:["Djibouti"]},{code:"DKK",number:"208",digits:2,currency:"Danish Krone",countries:["Denmark","Faroe Islands (The)","Greenland"]},{code:"DOP",number:"214",digits:2,currency:"Dominican Peso",countries:["Dominican Republic (The)"]},{code:"DZD",number:"012",digits:2,currency:"Algerian Dinar",countries:["Algeria"]},{code:"EGP",number:"818",digits:2,currency:"Egyptian Pound",countries:["Egypt"]},{code:"ERN",number:"232",digits:2,currency:"Nakfa",countries:["Eritrea"]},{code:"ETB",number:"230",digits:2,currency:"Ethiopian Birr",countries:["Ethiopia"]},{code:"EUR",number:"978",digits:2,currency:"Euro",countries:["Åland Islands","Andorra","Austria","Belgium","Cyprus","Estonia","European Union","Finland","France","French Guiana","French Southern Territories (The)","Germany","Greece","Guadeloupe","Holy See (The)","Ireland","Italy","Latvia","Lithuania","Luxembourg","Malta","Martinique","Mayotte","Monaco","Montenegro","Netherlands (The)","Portugal","Réunion","Saint Barthélemy","Saint Martin (French Part)","Saint Pierre and Miquelon","San Marino","Slovakia","Slovenia","Spain"]},{code:"FJD",number:"242",digits:2,currency:"Fiji Dollar",countries:["Fiji"]},{code:"FKP",number:"238",digits:2,currency:"Falkland Islands Pound",countries:["Falkland Islands (The) [Malvinas]"]},{code:"GBP",number:"826",digits:2,currency:"Pound Sterling",countries:["Guernsey","Isle of Man","Jersey","United Kingdom of Great Britain and Northern Ireland (The)"]},{code:"GEL",number:"981",digits:2,currency:"Lari",countries:["Georgia"]},{code:"GHS",number:"936",digits:2,currency:"Ghana Cedi",countries:["Ghana"]},{code:"GIP",number:"292",digits:2,currency:"Gibraltar Pound",countries:["Gibraltar"]},{code:"GMD",number:"270",digits:2,currency:"Dalasi",countries:["Gambia (The)"]},{code:"GNF",number:"324",digits:0,currency:"Guinean Franc",countries:["Guinea"]},{code:"GTQ",number:"320",digits:2,currency:"Quetzal",countries:["Guatemala"]},{code:"GYD",number:"328",digits:2,currency:"Guyana Dollar",countries:["Guyana"]},{code:"HKD",number:"344",digits:2,currency:"Hong Kong Dollar",countries:["Hong Kong"]},{code:"HNL",number:"340",digits:2,currency:"Lempira",countries:["Honduras"]},{code:"HRK",number:"191",digits:2,currency:"Kuna",countries:["Croatia"]},{code:"HTG",number:"332",digits:2,currency:"Gourde",countries:["Haiti"]},{code:"HUF",number:"348",digits:2,currency:"Forint",countries:["Hungary"]},{code:"IDR",number:"360",digits:2,currency:"Rupiah",countries:["Indonesia"]},{code:"ILS",number:"376",digits:2,currency:"New Israeli Sheqel",countries:["Israel"]},{code:"INR",number:"356",digits:2,currency:"Indian Rupee",countries:["Bhutan","India"]},{code:"IQD",number:"368",digits:3,currency:"Iraqi Dinar",countries:["Iraq"]},{code:"IRR",number:"364",digits:2,currency:"Iranian Rial",countries:["Iran (Islamic Republic Of)"]},{code:"ISK",number:"352",digits:0,currency:"Iceland Krona",countries:["Iceland"]},{code:"JMD",number:"388",digits:2,currency:"Jamaican Dollar",countries:["Jamaica"]},{code:"JOD",number:"400",digits:3,currency:"Jordanian Dinar",countries:["Jordan"]},{code:"JPY",number:"392",digits:0,currency:"Yen",countries:["Japan"]},{code:"KES",number:"404",digits:2,currency:"Kenyan Shilling",countries:["Kenya"]},{code:"KGS",number:"417",digits:2,currency:"Som",countries:["Kyrgyzstan"]},{code:"KHR",number:"116",digits:2,currency:"Riel",countries:["Cambodia"]},{code:"KMF",number:"174",digits:0,currency:"Comorian Franc ",countries:["Comoros (The)"]},{code:"KPW",number:"408",digits:2,currency:"North Korean Won",countries:["Korea (The Democratic People’s Republic Of)"]},{code:"KRW",number:"410",digits:0,currency:"Won",countries:["Korea (The Republic Of)"]},{code:"KWD",number:"414",digits:3,currency:"Kuwaiti Dinar",countries:["Kuwait"]},{code:"KYD",number:"136",digits:2,currency:"Cayman Islands Dollar",countries:["Cayman Islands (The)"]},{code:"KZT",number:"398",digits:2,currency:"Tenge",countries:["Kazakhstan"]},{code:"LAK",number:"418",digits:2,currency:"Lao Kip",countries:["Lao People’s Democratic Republic (The)"]},{code:"LBP",number:"422",digits:2,currency:"Lebanese Pound",countries:["Lebanon"]},{code:"LKR",number:"144",digits:2,currency:"Sri Lanka Rupee",countries:["Sri Lanka"]},{code:"LRD",number:"430",digits:2,currency:"Liberian Dollar",countries:["Liberia"]},{code:"LSL",number:"426",digits:2,currency:"Loti",countries:["Lesotho"]},{code:"LYD",number:"434",digits:3,currency:"Libyan Dinar",countries:["Libya"]},{code:"MAD",number:"504",digits:2,currency:"Moroccan Dirham",countries:["Morocco","Western Sahara"]},{code:"MDL",number:"498",digits:2,currency:"Moldovan Leu",countries:["Moldova (The Republic Of)"]},{code:"MGA",number:"969",digits:2,currency:"Malagasy Ariary",countries:["Madagascar"]},{code:"MKD",number:"807",digits:2,currency:"Denar",countries:["Macedonia (The Former Yugoslav Republic Of)"]},{code:"MMK",number:"104",digits:2,currency:"Kyat",countries:["Myanmar"]},{code:"MNT",number:"496",digits:2,currency:"Tugrik",countries:["Mongolia"]},{code:"MOP",number:"446",digits:2,currency:"Pataca",countries:["Macao"]},{code:"MRU",number:"929",digits:2,currency:"Ouguiya",countries:["Mauritania"]},{code:"MUR",number:"480",digits:2,currency:"Mauritius Rupee",countries:["Mauritius"]},{code:"MVR",number:"462",digits:2,currency:"Rufiyaa",countries:["Maldives"]},{code:"MWK",number:"454",digits:2,currency:"Malawi Kwacha",countries:["Malawi"]},{code:"MXN",number:"484",digits:2,currency:"Mexican Peso",countries:["Mexico"]},{code:"MXV",number:"979",digits:2,currency:"Mexican Unidad de Inversion (UDI)",countries:["Mexico"]},{code:"MYR",number:"458",digits:2,currency:"Malaysian Ringgit",countries:["Malaysia"]},{code:"MZN",number:"943",digits:2,currency:"Mozambique Metical",countries:["Mozambique"]},{code:"NAD",number:"516",digits:2,currency:"Namibia Dollar",countries:["Namibia"]},{code:"NGN",number:"566",digits:2,currency:"Naira",countries:["Nigeria"]},{code:"NIO",number:"558",digits:2,currency:"Cordoba Oro",countries:["Nicaragua"]},{code:"NOK",number:"578",digits:2,currency:"Norwegian Krone",countries:["Bouvet Island","Norway","Svalbard and Jan Mayen"]},{code:"NPR",number:"524",digits:2,currency:"Nepalese Rupee",countries:["Nepal"]},{code:"NZD",number:"554",digits:2,currency:"New Zealand Dollar",countries:["Cook Islands (The)","New Zealand","Niue","Pitcairn","Tokelau"]},{code:"OMR",number:"512",digits:3,currency:"Rial Omani",countries:["Oman"]},{code:"PAB",number:"590",digits:2,currency:"Balboa",countries:["Panama"]},{code:"PEN",number:"604",digits:2,currency:"Sol",countries:["Peru"]},{code:"PGK",number:"598",digits:2,currency:"Kina",countries:["Papua New Guinea"]},{code:"PHP",number:"608",digits:2,currency:"Philippine Peso",countries:["Philippines (The)"]},{code:"PKR",number:"586",digits:2,currency:"Pakistan Rupee",countries:["Pakistan"]},{code:"PLN",number:"985",digits:2,currency:"Zloty",countries:["Poland"]},{code:"PYG",number:"600",digits:0,currency:"Guarani",countries:["Paraguay"]},{code:"QAR",number:"634",digits:2,currency:"Qatari Rial",countries:["Qatar"]},{code:"RON",number:"946",digits:2,currency:"Romanian Leu",countries:["Romania"]},{code:"RSD",number:"941",digits:2,currency:"Serbian Dinar",countries:["Serbia"]},{code:"RUB",number:"643",digits:2,currency:"Russian Ruble",countries:["Russian Federation (The)"]},{code:"RWF",number:"646",digits:0,currency:"Rwanda Franc",countries:["Rwanda"]},{code:"SAR",number:"682",digits:2,currency:"Saudi Riyal",countries:["Saudi Arabia"]},{code:"SBD",number:"090",digits:2,currency:"Solomon Islands Dollar",countries:["Solomon Islands"]},{code:"SCR",number:"690",digits:2,currency:"Seychelles Rupee",countries:["Seychelles"]},{code:"SDG",number:"938",digits:2,currency:"Sudanese Pound",countries:["Sudan (The)"]},{code:"SEK",number:"752",digits:2,currency:"Swedish Krona",countries:["Sweden"]},{code:"SGD",number:"702",digits:2,currency:"Singapore Dollar",countries:["Singapore"]},{code:"SHP",number:"654",digits:2,currency:"Saint Helena Pound",countries:["Saint Helena, Ascension and Tristan Da Cunha"]},{code:"SLL",number:"694",digits:2,currency:"Leone",countries:["Sierra Leone"]},{code:"SOS",number:"706",digits:2,currency:"Somali Shilling",countries:["Somalia"]},{code:"SRD",number:"968",digits:2,currency:"Surinam Dollar",countries:["Suriname"]},{code:"SSP",number:"728",digits:2,currency:"South Sudanese Pound",countries:["South Sudan"]},{code:"STN",number:"930",digits:2,currency:"Dobra",countries:["Sao Tome and Principe"]},{code:"SVC",number:"222",digits:2,currency:"El Salvador Colon",countries:["El Salvador"]},{code:"SYP",number:"760",digits:2,currency:"Syrian Pound",countries:["Syrian Arab Republic"]},{code:"SZL",number:"748",digits:2,currency:"Lilangeni",countries:["Eswatini"]},{code:"THB",number:"764",digits:2,currency:"Baht",countries:["Thailand"]},{code:"TJS",number:"972",digits:2,currency:"Somoni",countries:["Tajikistan"]},{code:"TMT",number:"934",digits:2,currency:"Turkmenistan New Manat",countries:["Turkmenistan"]},{code:"TND",number:"788",digits:3,currency:"Tunisian Dinar",countries:["Tunisia"]},{code:"TOP",number:"776",digits:2,currency:"Pa’anga",countries:["Tonga"]},{code:"TRY",number:"949",digits:2,currency:"Turkish Lira",countries:["Turkey"]},{code:"TTD",number:"780",digits:2,currency:"Trinidad and Tobago Dollar",countries:["Trinidad and Tobago"]},{code:"TWD",number:"901",digits:2,currency:"New Taiwan Dollar",countries:["Taiwan (Province of China)"]},{code:"TZS",number:"834",digits:2,currency:"Tanzanian Shilling",countries:["Tanzania, United Republic Of"]},{code:"UAH",number:"980",digits:2,currency:"Hryvnia",countries:["Ukraine"]},{code:"UGX",number:"800",digits:0,currency:"Uganda Shilling",countries:["Uganda"]},{code:"USD",number:"840",digits:2,currency:"US Dollar",countries:["American Samoa","Bonaire, Sint Eustatius and Saba","British Indian Ocean Territory (The)","Ecuador","El Salvador","Guam","Haiti","Marshall Islands (The)","Micronesia (Federated States Of)","Northern Mariana Islands (The)","Palau","Panama","Puerto Rico","Timor-Leste","Turks and Caicos Islands (The)","United States Minor Outlying Islands (The)","United States of America (The)","Virgin Islands (British)","Virgin Islands (U.S.)"]},{code:"USN",number:"997",digits:2,currency:"US Dollar (Next day)",countries:["United States of America (The)"]},{code:"UYI",number:"940",digits:0,currency:"Uruguay Peso en Unidades Indexadas (UI)",countries:["Uruguay"]},{code:"UYU",number:"858",digits:2,currency:"Peso Uruguayo",countries:["Uruguay"]},{code:"UYW",number:"927",digits:4,currency:"Unidad Previsional",countries:["Uruguay"]},{code:"UZS",number:"860",digits:2,currency:"Uzbekistan Sum",countries:["Uzbekistan"]},{code:"VES",number:"928",digits:2,currency:"Bolívar Soberano",countries:["Venezuela (Bolivarian Republic Of)"]},{code:"VND",number:"704",digits:0,currency:"Dong",countries:["Viet Nam"]},{code:"VUV",number:"548",digits:0,currency:"Vatu",countries:["Vanuatu"]},{code:"WST",number:"882",digits:2,currency:"Tala",countries:["Samoa"]},{code:"XAF",number:"950",digits:0,currency:"CFA Franc BEAC",countries:["Cameroon","Central African Republic (The)","Chad","Congo (The)","Equatorial Guinea","Gabon"]},{code:"XAG",number:"961",digits:0,currency:"Silver",countries:["Zz11_silver"]},{code:"XAU",number:"959",digits:0,currency:"Gold",countries:["Zz08_gold"]},{code:"XBA",number:"955",digits:0,currency:"Bond Markets Unit European Composite Unit (EURCO)",countries:["Zz01_bond Markets Unit European_eurco"]},{code:"XBB",number:"956",digits:0,currency:"Bond Markets Unit European Monetary Unit (E.M.U.-6)",countries:["Zz02_bond Markets Unit European_emu-6"]},{code:"XBC",number:"957",digits:0,currency:"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)",countries:["Zz03_bond Markets Unit European_eua-9"]},{code:"XBD",number:"958",digits:0,currency:"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)",countries:["Zz04_bond Markets Unit European_eua-17"]},{code:"XCD",number:"951",digits:2,currency:"East Caribbean Dollar",countries:["Anguilla","Antigua and Barbuda","Dominica","Grenada","Montserrat","Saint Kitts and Nevis","Saint Lucia","Saint Vincent and the Grenadines"]},{code:"XDR",number:"960",digits:0,currency:"SDR (Special Drawing Right)",countries:["International Monetary Fund (Imf) "]},{code:"XOF",number:"952",digits:0,currency:"CFA Franc BCEAO",countries:["Benin","Burkina Faso","Côte d'Ivoire","Guinea-Bissau","Mali","Niger (The)","Senegal","Togo"]},{code:"XPD",number:"964",digits:0,currency:"Palladium",countries:["Zz09_palladium"]},{code:"XPF",number:"953",digits:0,currency:"CFP Franc",countries:["French Polynesia","New Caledonia","Wallis and Futuna"]},{code:"XPT",number:"962",digits:0,currency:"Platinum",countries:["Zz10_platinum"]},{code:"XSU",number:"994",digits:0,currency:"Sucre",countries:["Sistema Unitario De Compensacion Regional De Pagos 'Sucre'"]},{code:"XTS",number:"963",digits:0,currency:"Codes specifically reserved for testing purposes",countries:["Zz06_testing_code"]},{code:"XUA",number:"965",digits:0,currency:"ADB Unit of Account",countries:["Member Countries of the African Development Bank Group"]},{code:"XXX",number:"999",digits:0,currency:"The codes assigned for transactions where no currency is involved",countries:["Zz07_no_currency"]},{code:"YER",number:"886",digits:2,currency:"Yemeni Rial",countries:["Yemen"]},{code:"ZAR",number:"710",digits:2,currency:"Rand",countries:["Lesotho","Namibia","South Africa"]},{code:"ZMW",number:"967",digits:2,currency:"Zambian Kwacha",countries:["Zambia"]},{code:"ZWL",number:"932",digits:2,currency:"Zimbabwe Dollar",countries:["Zimbabwe"]}]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nativeCurrencies=void 0;const n=r(3);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"},{symbol:"ARETH",decimals:18,name:"Arbitrum Testnet",network:"arbitrum-rinkeby"},{symbol:"AETH",decimals:18,name:"Arbitrum Ether",network:"arbitrum-one"},{symbol:"AVAX",decimals:18,name:"AVAX",network:"avalanche"}],[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})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnsupportedCurrencyError=void 0;class n extends Error{constructor(e){const{symbol:t,network:r}=(e=>{if("string"==typeof e){const[t,r]=e.split("-");return{symbol:t,network:r}}const{value:t,network:r}=e;return{symbol:t,network:r}})(e);super(`The currency '${t}'${r?` on ${r}`:""} is unknown or not supported.`),this.symbol=t,this.network=r}}t.UnsupportedCurrencyError=n},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.GnosisSafeProxy__factory=t.EtherPaymentFallback__factory=t.BytesUtilsMock__factory=t.AggregatorMock__factory=t.StorageFeeCollector__factory=t.RequestOpenHashSubmitter__factory=t.RequestHashStorage__factory=t.RequestDeployer__factory=t.Migrations__factory=t.WhitelistedRole__factory=t.WhitelistAdminRole__factory=t.IERC20ConversionProxy__factory=t.IEthereumFeeProxy__factory=t.IERC20FeeProxy__factory=t.FakeSwapRouter__factory=t.EthereumProxy__factory=t.EthereumFeeProxy__factory=t.EthConversionProxy__factory=t.IUniswapV2Router02__factory=t.ERC20SwapToPay__factory=t.ISwapRouter__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.BatchPayments__factory=t.UpgradedStandardToken__factory=t.StandardToken__factory=t.ERC20Basic__factory=t.BlackList__factory=t.BasicToken__factory=t.BadERC20__factory=t.IERC1820Implementer__factory=t.ERC1820Implementer__factory=t.IERC20__factory=t.IERC20Metadata__factory=t.ERC20__factory=t.Pausable__factory=t.Ownable__factory=void 0;var n=r(554);Object.defineProperty(t,"Ownable__factory",{enumerable:!0,get:function(){return n.Ownable__factory}});var f=r(555);Object.defineProperty(t,"Pausable__factory",{enumerable:!0,get:function(){return f.Pausable__factory}});var a=r(556);Object.defineProperty(t,"ERC20__factory",{enumerable:!0,get:function(){return a.ERC20__factory}});var i=r(557);Object.defineProperty(t,"IERC20Metadata__factory",{enumerable:!0,get:function(){return i.IERC20Metadata__factory}});var o=r(558);Object.defineProperty(t,"IERC20__factory",{enumerable:!0,get:function(){return o.IERC20__factory}});var s=r(559);Object.defineProperty(t,"ERC1820Implementer__factory",{enumerable:!0,get:function(){return s.ERC1820Implementer__factory}});var c=r(560);Object.defineProperty(t,"IERC1820Implementer__factory",{enumerable:!0,get:function(){return c.IERC1820Implementer__factory}});var u=r(561);Object.defineProperty(t,"BadERC20__factory",{enumerable:!0,get:function(){return u.BadERC20__factory}});var d=r(562);Object.defineProperty(t,"BasicToken__factory",{enumerable:!0,get:function(){return d.BasicToken__factory}});var l=r(563);Object.defineProperty(t,"BlackList__factory",{enumerable:!0,get:function(){return l.BlackList__factory}});var h=r(564);Object.defineProperty(t,"ERC20Basic__factory",{enumerable:!0,get:function(){return h.ERC20Basic__factory}});var p=r(565);Object.defineProperty(t,"StandardToken__factory",{enumerable:!0,get:function(){return p.StandardToken__factory}});var b=r(566);Object.defineProperty(t,"UpgradedStandardToken__factory",{enumerable:!0,get:function(){return b.UpgradedStandardToken__factory}});var m=r(567);Object.defineProperty(t,"BatchPayments__factory",{enumerable:!0,get:function(){return m.BatchPayments__factory}});var y=r(568);Object.defineProperty(t,"AggregatorFraction__factory",{enumerable:!0,get:function(){return y.AggregatorFraction__factory}});var g=r(569);Object.defineProperty(t,"ChainlinkConversionPath__factory",{enumerable:!0,get:function(){return g.ChainlinkConversionPath__factory}});var v=r(570);Object.defineProperty(t,"ERC20fraction__factory",{enumerable:!0,get:function(){return v.ERC20fraction__factory}});var w=r(571);Object.defineProperty(t,"Erc20ConversionProxy__factory",{enumerable:!0,get:function(){return w.Erc20ConversionProxy__factory}});var _=r(572);Object.defineProperty(t,"ERC20EscrowToPay__factory",{enumerable:!0,get:function(){return _.ERC20EscrowToPay__factory}});var E=r(573);Object.defineProperty(t,"ERC20FeeProxy__factory",{enumerable:!0,get:function(){return E.ERC20FeeProxy__factory}});var A=r(574);Object.defineProperty(t,"ERC20Proxy__factory",{enumerable:!0,get:function(){return A.ERC20Proxy__factory}});var T=r(575);Object.defineProperty(t,"ERC20SwapToConversion__factory",{enumerable:!0,get:function(){return T.ERC20SwapToConversion__factory}});var x=r(576);Object.defineProperty(t,"ISwapRouter__factory",{enumerable:!0,get:function(){return x.ISwapRouter__factory}});var S=r(577);Object.defineProperty(t,"ERC20SwapToPay__factory",{enumerable:!0,get:function(){return S.ERC20SwapToPay__factory}});var C=r(578);Object.defineProperty(t,"IUniswapV2Router02__factory",{enumerable:!0,get:function(){return C.IUniswapV2Router02__factory}});var O=r(579);Object.defineProperty(t,"EthConversionProxy__factory",{enumerable:!0,get:function(){return O.EthConversionProxy__factory}});var k=r(580);Object.defineProperty(t,"EthereumFeeProxy__factory",{enumerable:!0,get:function(){return k.EthereumFeeProxy__factory}});var P=r(581);Object.defineProperty(t,"EthereumProxy__factory",{enumerable:!0,get:function(){return P.EthereumProxy__factory}});var R=r(582);Object.defineProperty(t,"FakeSwapRouter__factory",{enumerable:!0,get:function(){return R.FakeSwapRouter__factory}});var M=r(583);Object.defineProperty(t,"IERC20FeeProxy__factory",{enumerable:!0,get:function(){return M.IERC20FeeProxy__factory}});var D=r(584);Object.defineProperty(t,"IEthereumFeeProxy__factory",{enumerable:!0,get:function(){return D.IEthereumFeeProxy__factory}});var N=r(585);Object.defineProperty(t,"IERC20ConversionProxy__factory",{enumerable:!0,get:function(){return N.IERC20ConversionProxy__factory}});var B=r(586);Object.defineProperty(t,"WhitelistAdminRole__factory",{enumerable:!0,get:function(){return B.WhitelistAdminRole__factory}});var I=r(587);Object.defineProperty(t,"WhitelistedRole__factory",{enumerable:!0,get:function(){return I.WhitelistedRole__factory}});var F=r(588);Object.defineProperty(t,"Migrations__factory",{enumerable:!0,get:function(){return F.Migrations__factory}});var j=r(589);Object.defineProperty(t,"RequestDeployer__factory",{enumerable:!0,get:function(){return j.RequestDeployer__factory}});var L=r(590);Object.defineProperty(t,"RequestHashStorage__factory",{enumerable:!0,get:function(){return L.RequestHashStorage__factory}});var U=r(591);Object.defineProperty(t,"RequestOpenHashSubmitter__factory",{enumerable:!0,get:function(){return U.RequestOpenHashSubmitter__factory}});var q=r(592);Object.defineProperty(t,"StorageFeeCollector__factory",{enumerable:!0,get:function(){return q.StorageFeeCollector__factory}});var H=r(593);Object.defineProperty(t,"AggregatorMock__factory",{enumerable:!0,get:function(){return H.AggregatorMock__factory}});var z=r(594);Object.defineProperty(t,"BytesUtilsMock__factory",{enumerable:!0,get:function(){return z.BytesUtilsMock__factory}});var V=r(595);Object.defineProperty(t,"EtherPaymentFallback__factory",{enumerable:!0,get:function(){return V.EtherPaymentFallback__factory}});var K=r(596);Object.defineProperty(t,"GnosisSafeProxy__factory",{enumerable:!0,get:function(){return K.GnosisSafeProxy__factory}});var G=r(597);Object.defineProperty(t,"UsdtFake__factory",{enumerable:!0,get:function(){return G.UsdtFake__factory}});var $=r(598);Object.defineProperty(t,"ERC20Alpha__factory",{enumerable:!0,get:function(){return $.ERC20Alpha__factory}});var W=r(599);Object.defineProperty(t,"ERC20False__factory",{enumerable:!0,get:function(){return W.ERC20False__factory}});var Y=r(600);Object.defineProperty(t,"ERC20NoReturn__factory",{enumerable:!0,get:function(){return Y.ERC20NoReturn__factory}});var J=r(601);Object.defineProperty(t,"ERC20Revert__factory",{enumerable:!0,get:function(){return J.ERC20Revert__factory}});var X=r(602);Object.defineProperty(t,"ERC20True__factory",{enumerable:!0,get:function(){return X.ERC20True__factory}});var Z=r(603);Object.defineProperty(t,"TestERC20__factory",{enumerable:!0,get:function(){return Z.TestERC20__factory}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Ownable__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Ownable__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Pausable__factory=void 0;const n=r(4),f=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Pausable__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20Metadata__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20Metadata__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC1820Implementer__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"bytes32",name:"interfaceHash",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"canImplementInterfaceForAddress",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"}],a="0x608060405234801561001057600080fd5b5061022f806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063249cb3fa14610030575b600080fd5b61004a6004803603810190610045919061018f565b610060565b60405161005791906101de565b60405180910390f35b600080600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166100cc576000801b6100ee565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b905092915050565b600080fd5b6000819050919050565b61010e816100fb565b811461011957600080fd5b50565b60008135905061012b81610105565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061015c82610131565b9050919050565b61016c81610151565b811461017757600080fd5b50565b60008135905061018981610163565b92915050565b600080604083850312156101a6576101a56100f6565b5b60006101b48582860161011c565b92505060206101c58582860161017a565b9150509250929050565b6101d8816100fb565b82525050565b60006020820190506101f360008301846101cf565b9291505056fea26469706673582212200435afd8e1118415b91d8baf1ae8a7f465704298d05a42bc3ef694af903a059064736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC1820Implementer__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC1820Implementer__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"bytes32",name:"interfaceHash",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"canImplementInterfaceForAddress",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC1820Implementer__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BadERC20__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405260008060146101000a81548160ff021916908315150217905550600060035560006004553480156200003557600080fd5b50604051620037eb380380620037eb83398181016040528101906200005b9190620004b0565b6200007b6200006f6200013360201b60201c565b6200013b60201b60201c565b8360018190555082600790805190602001906200009a92919062000228565b508160089080519060200190620000b392919062000228565b50806009819055508360026000620000d0620001ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60146101000a81548160ff02191690831515021790555050505050620005c5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000236906200058f565b90600052602060002090601f0160209004810192826200025a5760008555620002a6565b82601f106200027557805160ff1916838001178555620002a6565b82800160010185558215620002a6579182015b82811115620002a557825182559160200191906001019062000288565b5b509050620002b59190620002b9565b5090565b5b80821115620002d4576000816000905550600101620002ba565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6200030181620002ec565b81146200030d57600080fd5b50565b6000815190506200032181620002f6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200037c8262000331565b810181811067ffffffffffffffff821117156200039e576200039d62000342565b5b80604052505050565b6000620003b3620002d8565b9050620003c1828262000371565b919050565b600067ffffffffffffffff821115620003e457620003e362000342565b5b620003ef8262000331565b9050602081019050919050565b60005b838110156200041c578082015181840152602081019050620003ff565b838111156200042c576000848401525b50505050565b6000620004496200044384620003c6565b620003a7565b9050828152602081018484840111156200046857620004676200032c565b5b62000475848285620003fc565b509392505050565b600082601f83011262000495576200049462000327565b5b8151620004a784826020860162000432565b91505092915050565b60008060008060808587031215620004cd57620004cc620002e2565b5b6000620004dd8782880162000310565b945050602085015167ffffffffffffffff811115620005015762000500620002e7565b5b6200050f878288016200047d565b935050604085015167ffffffffffffffff811115620005335762000532620002e7565b5b62000541878288016200047d565b9250506060620005548782880162000310565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005a857607f821691505b60208210811415620005bf57620005be62000560565b5b50919050565b61321680620005d56000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063cc872b66116100ad578063e47d60601161007c578063e47d606014610556578063e4997dc514610586578063e5b5019a146105a2578063f2fde38b146105c0578063f3bdc228146105dc576101fb565b8063cc872b66146104d0578063db006a75146104ec578063dd62ed3e14610508578063dd644f7214610538576101fb565b80638da5cb5b116100e95780638da5cb5b1461045c57806395d89b411461047a578063a9059cbb14610498578063c0324c77146104b4576101fb565b806370a08231146103fa578063715018a61461042a5780638456cb5914610434578063893d20e81461043e576101fb565b806327e235e3116101925780633f4ba83a116101615780633f4ba83a1461037257806359bf1abe1461037c5780635c658165146103ac5780635c975abb146103dc576101fb565b806327e235e3146102e8578063313ce5671461031857806335390714146103365780633eaaf86b14610354576101fb565b80630ecb93c0116101ce5780630ecb93c01461027457806318160ddd1461029057806323b872dd146102ae57806326976e3f146102ca576101fb565b806306fdde03146102005780630753c30c1461021e578063095ea7b31461023a5780630e136b1914610256575b600080fd5b6102086105f8565b604051610215919061295f565b60405180910390f35b610238600480360381019061023391906129e4565b610686565b005b610254600480360381019061024f9190612a47565b610798565b005b61025e6108a8565b60405161026b9190612aa2565b60405180910390f35b61028e600480360381019061028991906129e4565b6108bb565b005b6102986109c9565b6040516102a59190612acc565b60405180910390f35b6102c860048036038101906102c39190612ae7565b610a90565b005b6102d2610c2b565b6040516102df9190612b49565b60405180910390f35b61030260048036038101906102fd91906129e4565b610c51565b60405161030f9190612acc565b60405180910390f35b610320610c69565b60405161032d9190612acc565b60405180910390f35b61033e610c6f565b60405161034b9190612acc565b60405180910390f35b61035c610c75565b6040516103699190612acc565b60405180910390f35b61037a610c7b565b005b610396600480360381019061039191906129e4565b610d8e565b6040516103a39190612aa2565b60405180910390f35b6103c660048036038101906103c19190612b64565b610de4565b6040516103d39190612acc565b60405180910390f35b6103e4610e09565b6040516103f19190612aa2565b60405180910390f35b610414600480360381019061040f91906129e4565b610e1c565b6040516104219190612acc565b60405180910390f35b610432610ef6565b005b61043c610f7e565b005b610446611093565b6040516104539190612b49565b60405180910390f35b6104646110a2565b6040516104719190612b49565b60405180910390f35b6104826110cb565b60405161048f919061295f565b60405180910390f35b6104b260048036038101906104ad9190612a47565b611159565b005b6104ce60048036038101906104c99190612ba4565b6112f0565b005b6104ea60048036038101906104e59190612be4565b61145a565b005b61050660048036038101906105019190612be4565b6116b0565b005b610522600480360381019061051d9190612b64565b6118aa565b60405161052f9190612acc565b60405180910390f35b610540611988565b60405161054d9190612acc565b60405180910390f35b610570600480360381019061056b91906129e4565b61198e565b60405161057d9190612aa2565b60405180910390f35b6105a0600480360381019061059b91906129e4565b6119ae565b005b6105aa611abc565b6040516105b79190612acc565b60405180910390f35b6105da60048036038101906105d591906129e4565b611ae0565b005b6105f660048036038101906105f191906129e4565b611bd8565b005b6007805461060590612c40565b80601f016020809104026020016040519081016040528092919081815260200182805461063190612c40565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b61068e611d88565b73ffffffffffffffffffffffffffffffffffffffff166106ac6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612cbe565b60405180910390fd5b6001600a60146101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e8160405161078d9190612b49565b60405180910390a150565b60406004816107a79190612d0d565b600036905010156107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612d89565b60405180910390fd5b600a60149054906101000a900460ff161561089857600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b815260040161086193929190612da9565b600060405180830381600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506108a3565b6108a28383611d90565b5b505050565b600a60149054906101000a900460ff1681565b6108c3611d88565b73ffffffffffffffffffffffffffffffffffffffff166108e16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90612cbe565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc816040516109be9190612b49565b60405180910390a150565b6000600a60149054906101000a900460ff1615610a8757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612df5565b9050610a8d565b60015490505b90565b600060149054906101000a900460ff1615610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790612d89565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612d89565b60405180910390fd5b600a60149054906101000a900460ff1615610c1a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff1660e01b8152600401610be39493929190612e22565b600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b50505050610c26565b610c25838383611f9e565b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090505481565b60095481565b60045481565b60015481565b610c83611d88565b73ffffffffffffffffffffffffffffffffffffffff16610ca16110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612cbe565b60405180910390fd5b600060149054906101000a900460ff16610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612d89565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b6000600a60149054906101000a900460ff1615610ee557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610e8e9190612b49565b60206040518083038186803b158015610ea657600080fd5b505afa158015610eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ede9190612df5565b9050610ef1565b610eee82612404565b90505b919050565b610efe611d88565b73ffffffffffffffffffffffffffffffffffffffff16610f1c6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612cbe565b60405180910390fd5b610f7c600061244d565b565b610f86611d88565b73ffffffffffffffffffffffffffffffffffffffff16610fa46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612cbe565b60405180910390fd5b600060149054906101000a900460ff161561104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612d89565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600061109d6110a2565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600880546110d890612c40565b80601f016020809104026020016040519081016040528092919081815260200182805461110490612c40565b80156111515780601f1061112657610100808354040283529160200191611151565b820191906000526020600020905b81548152906001019060200180831161113457829003601f168201915b505050505081565b600060149054906101000a900460ff16156111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612d89565b60405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612d89565b60405180910390fd5b600a60149054906101000a900460ff16156112e157600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff1660e01b81526004016112aa93929190612da9565b600060405180830381600087803b1580156112c457600080fd5b505af11580156112d8573d6000803e3d6000fd5b505050506112ec565b6112eb8282612511565b5b5050565b6112f8611d88565b73ffffffffffffffffffffffffffffffffffffffff166113166110a2565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612cbe565b60405180910390fd5b601482106113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612d89565b60405180910390fd5b603281106113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612d89565b60405180910390fd5b81600381905550600954600a6114089190612f9a565b816114139190612fe5565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e60035460045460405161144e92919061303f565b60405180910390a15050565b611462611d88565b73ffffffffffffffffffffffffffffffffffffffff166114806110a2565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612cbe565b60405180910390fd5b600154816001546114e79190612d0d565b11611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612d89565b60405180910390fd5b600260006115336110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816002600061157b6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c09190612d0d565b11611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612d89565b60405180910390fd5b806002600061160d6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116569190612d0d565b92505081905550806001600082825461166f9190612d0d565b925050819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040516116a59190612acc565b60405180910390a150565b6116b8611d88565b73ffffffffffffffffffffffffffffffffffffffff166116d66110a2565b73ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390612cbe565b60405180910390fd5b806001541015611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612d89565b60405180910390fd5b806002600061177e6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190612d89565b60405180910390fd5b806001600082825461180c9190613068565b9250508190555080600260006118206110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118699190613068565b925050819055507f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a448160405161189f9190612acc565b60405180910390a150565b6000600a60149054906101000a900460ff161561197557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b815260040161191e92919061309c565b60206040518083038186803b15801561193657600080fd5b505afa15801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e9190612df5565b9050611982565b61197f838361283f565b90505b92915050565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6119b6611d88565b73ffffffffffffffffffffffffffffffffffffffff166119d46110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612cbe565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051611ab19190612b49565b60405180910390a150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b611ae8611d88565b73ffffffffffffffffffffffffffffffffffffffff16611b066110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390612cbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390613137565b60405180910390fd5b611bd58161244d565b50565b611be0611d88565b73ffffffffffffffffffffffffffffffffffffffff16611bfe6110a2565b73ffffffffffffffffffffffffffffffffffffffff1614611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b90612cbe565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790612d89565b60405180910390fd5b6000611ceb82610e1c565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060016000828254611d449190613068565b925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051611d7c929190613157565b60405180910390a15050565b600033905090565b6040600481611d9f9190612d0d565b60003690501015611de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddc90612d89565b60405180910390fd5b60008214158015611e7357506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90612d89565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611f919190612acc565b60405180910390a3505050565b6060600481611fad9190612d0d565b60003690501015611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90612d89565b60405180910390fd5b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612710600354856120879190612fe5565b61209191906131af565b90506004548111156120a35760045490505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8210156121585783826120d79190613068565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600081856121669190613068565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b39190613068565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122419190612d0d565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561239657816002600061229a6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122df9190612d0d565b600260006122eb6110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123316110a2565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161238d9190612acc565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123f39190612acc565b60405180910390a350505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60406004816125209190612d0d565b60003690501015612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90612d89565b60405180910390fd5b6000612710600354846125799190612fe5565b61258391906131af565b90506004548111156125955760045490505b600081846125a39190613068565b905083600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f09190613068565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267e9190612d0d565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156127d35781600260006126d76110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271c9190612d0d565b600260006127286110a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276e6110a2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ca9190612acc565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128309190612acc565b60405180910390a35050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129005780820151818401526020810190506128e5565b8381111561290f576000848401525b50505050565b6000601f19601f8301169050919050565b6000612931826128c6565b61293b81856128d1565b935061294b8185602086016128e2565b61295481612915565b840191505092915050565b600060208201905081810360008301526129798184612926565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129b182612986565b9050919050565b6129c1816129a6565b81146129cc57600080fd5b50565b6000813590506129de816129b8565b92915050565b6000602082840312156129fa576129f9612981565b5b6000612a08848285016129cf565b91505092915050565b6000819050919050565b612a2481612a11565b8114612a2f57600080fd5b50565b600081359050612a4181612a1b565b92915050565b60008060408385031215612a5e57612a5d612981565b5b6000612a6c858286016129cf565b9250506020612a7d85828601612a32565b9150509250929050565b60008115159050919050565b612a9c81612a87565b82525050565b6000602082019050612ab76000830184612a93565b92915050565b612ac681612a11565b82525050565b6000602082019050612ae16000830184612abd565b92915050565b600080600060608486031215612b0057612aff612981565b5b6000612b0e868287016129cf565b9350506020612b1f868287016129cf565b9250506040612b3086828701612a32565b9150509250925092565b612b43816129a6565b82525050565b6000602082019050612b5e6000830184612b3a565b92915050565b60008060408385031215612b7b57612b7a612981565b5b6000612b89858286016129cf565b9250506020612b9a858286016129cf565b9150509250929050565b60008060408385031215612bbb57612bba612981565b5b6000612bc985828601612a32565b9250506020612bda85828601612a32565b9150509250929050565b600060208284031215612bfa57612bf9612981565b5b6000612c0884828501612a32565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c5857607f821691505b60208210811415612c6c57612c6b612c11565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca86020836128d1565b9150612cb382612c72565b602082019050919050565b60006020820190508181036000830152612cd781612c9b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d1882612a11565b9150612d2383612a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d5857612d57612cde565b5b828201905092915050565b50565b6000612d736000836128d1565b9150612d7e82612d63565b600082019050919050565b60006020820190508181036000830152612da281612d66565b9050919050565b6000606082019050612dbe6000830186612b3a565b612dcb6020830185612b3a565b612dd86040830184612abd565b949350505050565b600081519050612def81612a1b565b92915050565b600060208284031215612e0b57612e0a612981565b5b6000612e1984828501612de0565b91505092915050565b6000608082019050612e376000830187612b3a565b612e446020830186612b3a565b612e516040830185612b3a565b612e5e6060830184612abd565b95945050505050565b60008160011c9050919050565b6000808291508390505b6001851115612ebe57808604811115612e9a57612e99612cde565b5b6001851615612ea95780820291505b8081029050612eb785612e67565b9450612e7e565b94509492505050565b600082612ed75760019050612f93565b81612ee55760009050612f93565b8160018114612efb5760028114612f0557612f34565b6001915050612f93565b60ff841115612f1757612f16612cde565b5b8360020a915084821115612f2e57612f2d612cde565b5b50612f93565b5060208310610133831016604e8410600b8410161715612f695782820a905083811115612f6457612f63612cde565b5b612f93565b612f768484846001612e74565b92509050818404811115612f8d57612f8c612cde565b5b81810290505b9392505050565b6000612fa582612a11565b9150612fb083612a11565b9250612fdd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ec7565b905092915050565b6000612ff082612a11565b9150612ffb83612a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561303457613033612cde565b5b828202905092915050565b60006040820190506130546000830185612abd565b6130616020830184612abd565b9392505050565b600061307382612a11565b915061307e83612a11565b92508282101561309157613090612cde565b5b828203905092915050565b60006040820190506130b16000830185612b3a565b6130be6020830184612b3a565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131216026836128d1565b915061312c826130c5565b604082019050919050565b6000602082019050818103600083015261315081613114565b9050919050565b600060408201905061316c6000830185612b3a565b6131796020830184612abd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ba82612a11565b91506131c583612a11565b9250826131d5576131d4613180565b5b82820490509291505056fea2646970667358221220ffcb488de35e4b5d9e0a405ef1f3b00a3ace59778eb6f847f93a52a3923055de64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,e)}deploy(e,t,r,n,f){return super.deploy(e,t,r,n,f||{})}getDeployTransaction(e,t,r,n,f){return super.getDeployTransaction(e,t,r,n,f||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BadERC20__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BasicToken__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BasicToken__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlackList__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BlackList__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Basic__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Basic__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardToken__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.StandardToken__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UpgradedStandardToken__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.UpgradedStandardToken__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchPayments__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_paymentErc20FeeProxy",type:"address"},{internalType:"address",name:"_paymentEthFeeProxy",type:"address"},{internalType:"address",name:"_owner",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:"_tokenAddresses",type:"address[]"},{internalType:"address[]",name:"_recipients",type:"address[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bytes[]",name:"_paymentReferences",type:"bytes[]"},{internalType:"uint256[]",name:"_feeAmounts",type:"uint256[]"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"batchERC20PaymentsMultiTokensWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address[]",name:"_recipients",type:"address[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bytes[]",name:"_paymentReferences",type:"bytes[]"},{internalType:"uint256[]",name:"_feeAmounts",type:"uint256[]"},{internalType:"address",name:"_feeAddress",type:"address"}],name:"batchERC20PaymentsWithReference",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_recipients",type:"address[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bytes[]",name:"_paymentReferences",type:"bytes[]"},{internalType:"uint256[]",name:"_feeAmounts",type:"uint256[]"},{internalType:"address payable",name:"_feeAddress",type:"address"}],name:"batchEthPaymentsWithReference",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"batchFee",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:"paymentErc20FeeProxy",outputs:[{internalType:"contract IERC20FeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentEthFeeProxy",outputs:[{internalType:"contract IEthereumFeeProxy",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_batchFee",type:"uint256"}],name:"setBatchFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentErc20FeeProxy",type:"address"}],name:"setPaymentErc20FeeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentEthFeeProxy",type:"address"}],name:"setPaymentEthFeeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],a="0x60806040523480156200001157600080fd5b506040516200376938038062003769833981810160405281019062000037919062000377565b620000576200004b6200010260201b60201c565b6200010a60201b60201c565b6001808190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000f181620001ce60201b60201c565b6000600481905550505050620004ee565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001de6200010260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000204620002e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200025d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002549062000434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620002d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c790620004cc565b60405180910390fd5b620002e1816200010a60201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200033f8262000312565b9050919050565b620003518162000332565b81146200035d57600080fd5b50565b600081519050620003718162000346565b92915050565b6000806000606084860312156200039357620003926200030d565b5b6000620003a38682870162000360565b9350506020620003b68682870162000360565b9250506040620003c98682870162000360565b9150509250925092565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200041c602083620003d3565b91506200042982620003e4565b602082019050919050565b600060208201905081810360008301526200044f816200040d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620004b4602683620003d3565b9150620004c18262000456565b604082019050919050565b60006020820190508181036000830152620004e781620004a5565b9050919050565b61326b80620004fe6000396000f3fe6080604052600436106100c65760003560e01c8063a09b241d1161007f578063d5073f6f11610059578063d5073f6f1461026d578063f2fde38b14610296578063f8b823e4146102bf578063fa733142146102ea57610110565b8063a09b241d146101f0578063a524679214610219578063c6e6d98b1461024457610110565b806310ed256614610115578063224115091461013e57806356959cf014610169578063715018a61461019257806373535e55146101a95780638da5cb5b146101c557610110565b36610110576000341461010e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101059061200c565b60405180910390fd5b005b600080fd5b34801561012157600080fd5b5061013c60048036038101906101379190612094565b610313565b005b34801561014a57600080fd5b506101536103d3565b6040516101609190612120565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190612094565b6103f9565b005b34801561019e57600080fd5b506101a76104b9565b005b6101c360048036038101906101be919061228a565b610541565b005b3480156101d157600080fd5b506101da61096a565b6040516101e79190612395565b60405180910390f35b3480156101fc57600080fd5b5061021760048036038101906102129190612094565b610993565b005b34801561022557600080fd5b5061022e610a10565b60405161023b91906123d1565b60405180910390f35b34801561025057600080fd5b5061026b600480360381019061026691906123ec565b610a36565b005b34801561027957600080fd5b50610294600480360381019061028f9190612532565b611051565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190612094565b6110d7565b005b3480156102cb57600080fd5b506102d46111cf565b6040516102e1919061256e565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612589565b6111d5565b005b61031b611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661033961096a565b73ffffffffffffffffffffffffffffffffffffffff161461038f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038690612706565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610401611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661041f61096a565b73ffffffffffffffffffffffffffffffffffffffff1614610475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046c90612706565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104c1611bf9565b73ffffffffffffffffffffffffffffffffffffffff166104df61096a565b73ffffffffffffffffffffffffffffffffffffffff1614610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052c90612706565b60405180910390fd5b61053f6000611c01565b565b60026001541415610587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057e90612772565b60405180910390fd5b600260018190555086869050898990501480156105a957508484905089899050145b80156105ba57508282905089899050145b6105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f090612804565b60405180910390fd5b6000805b8a8a90508110156107f85784848281811061061b5761061a612824565b5b9050602002013589898381811061063557610634612824565b5b905060200201356106469190612882565b471015610688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067f90612924565b60405180910390fd5b88888281811061069b5761069a612824565b5b90506020020135826106ad9190612882565b9150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b868980b868684818110610700576106ff612824565b5b905060200201358b8b8581811061071a57610719612824565b5b9050602002013561072b9190612882565b8d8d8581811061073e5761073d612824565b5b90506020020160208101906107539190612094565b8a8a8681811061076657610765612824565b5b90506020028101906107789190612953565b8a8a8881811061078b5761078a612824565b5b90506020020135896040518763ffffffff1660e01b81526004016107b3959493929190612a23565b6000604051808303818588803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b505050505080806107f090612a71565b9150506105fd565b506103e86004548261080a9190612aba565b6108149190612b43565b905080471015610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085090612bc0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561089f573d6000803e3d6000fd5b5060004711156109575760003373ffffffffffffffffffffffffffffffffffffffff16476040516108cf90612c11565b60006040518083038185875af1925050503d806000811461090c576040519150601f19603f3d011682016040523d82523d6000602084013e610911565b606091505b5050905080610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094c90612c98565b60405180910390fd5b505b5060018081905550505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610a0a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611cc59092919063ffffffff16565b50505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8686905089899050148015610a5057508484905089899050145b8015610a6157508282905089899050145b610aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9790612804565b60405180910390fd5b6000805b8a8a9050811015610b0d57848482818110610ac257610ac1612824565b5b90506020020135898983818110610adc57610adb612824565b5b90506020020135610aed9190612882565b82610af89190612882565b91508080610b0590612a71565b915050610aa4565b5060008b9050818173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610b4f929190612cb8565b60206040518083038186803b158015610b6757600080fd5b505afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190612cf6565b1015610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd790612d95565b60405180910390fd5b818173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610c1a9190612395565b60206040518083038186803b158015610c3257600080fd5b505afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612cf6565b1015610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290612924565b60405180910390fd5b610cb68c3084611df9565b610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90612e01565b60405180910390fd5b818173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401610d53929190612cb8565b60206040518083038186803b158015610d6b57600080fd5b505afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da39190612cf6565b1015610db357610db281610993565b5b60005b8b8b9050811015610f1057858582818110610dd457610dd3612824565b5b9050602002013583610de69190612e21565b9250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8e8e8e85818110610e3a57610e39612824565b5b9050602002016020810190610e4f9190612094565b8d8d86818110610e6257610e61612824565b5b905060200201358c8c87818110610e7c57610e7b612824565b5b9050602002810190610e8e9190612953565b8c8c89818110610ea157610ea0612824565b5b905060200201358b6040518863ffffffff1660e01b8152600401610ecb9796959493929190612e55565b600060405180830381600087803b158015610ee557600080fd5b505af1158015610ef9573d6000803e3d6000fd5b505050508080610f0890612a71565b915050610db6565b506103e860045483610f229190612aba565b610f2c9190612b43565b9150818173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610f689190612395565b60206040518083038186803b158015610f8057600080fd5b505afa158015610f94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb89190612cf6565b1015610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090612f31565b60405180910390fd5b6110048c8484611df9565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f9d565b60405180910390fd5b505050505050505050505050565b611059611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661107761096a565b73ffffffffffffffffffffffffffffffffffffffff16146110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490612706565b60405180910390fd5b8060048190555050565b6110df611bf9565b73ffffffffffffffffffffffffffffffffffffffff166110fd61096a565b73ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90612706565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba9061302f565b60405180910390fd5b6111cc81611c01565b50565b60045481565b888890508b8b90501480156111ef5750868690508b8b9050145b80156112005750848490508b8b9050145b80156112115750828290508b8b9050145b611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612804565b60405180910390fd5b60008b8b905067ffffffffffffffff81111561126f5761126e61304f565b5b6040519080825280602002602001820160405280156112a857816020015b611295611f78565b81526020019060019003908161128d5790505b50905060005b8c8c90508110156115b45760005b8d8d90508110156115a0578d8d838181106112da576112d9612824565b5b90506020020160208101906112ef9190612094565b73ffffffffffffffffffffffffffffffffffffffff1683828151811061131857611317612824565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614156114015785858381811061135357611352612824565b5b905060200201358a8a8481811061136d5761136c612824565b5b9050602002013561137e9190612882565b83828151811061139157611390612824565b5b60200260200101516020018181516113a99190612882565b915081815250508989838181106113c3576113c2612824565b5b905060200201358382815181106113dd576113dc612824565b5b60200260200101516040018181516113f59190612882565b915081815250506115a0565b600083828151811061141657611415612824565b5b60200260200101516020015114801561146c5750600086868481811061143f5761143e612824565b5b905060200201358b8b8581811061145957611458612824565b5b9050602002013561146a9190612882565b115b1561158d578d8d8381811061148457611483612824565b5b90506020020160208101906114999190612094565b8382815181106114ac576114ab612824565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508585838181106114fd576114fc612824565b5b905060200201358a8a8481811061151757611516612824565b5b905060200201356115289190612882565b83828151811061153b5761153a612824565b5b6020026020010151602001818152505089898381811061155e5761155d612824565b5b9050602002013583828151811061157857611577612824565b5b602002602001015160400181815250506115a0565b808061159890612a71565b9150506112bc565b5080806115ac90612a71565b9150506112ae565b5060005b8151811080156115e6575060008282815181106115d8576115d7612824565b5b602002602001015160200151115b15611a8c576103e860045483838151811061160457611603612824565b5b60200260200101516040015161161a9190612aba565b6116249190612b43565b82828151811061163757611636612824565b5b60200260200101516040018181525050600082828151811061165c5761165b612824565b5b602002602001015160000151905082828151811061167d5761167c612824565b5b60200260200101516040015183838151811061169c5761169b612824565b5b6020026020010151602001516116b29190612882565b8173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016116ed929190612cb8565b60206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612cf6565b101561177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590612d95565b60405180910390fd5b82828151811061179157611790612824565b5b6020026020010151604001518383815181106117b0576117af612824565b5b6020026020010151602001516117c69190612882565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016117ff9190612395565b60206040518083038186803b15801561181757600080fd5b505afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612cf6565b1015611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790612924565b60405180910390fd5b6118d78383815181106118a6576118a5612824565b5b602002602001015160000151308585815181106118c6576118c5612824565b5b602002602001015160200151611df9565b611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90612e01565b60405180910390fd5b82828151811061192957611928612824565b5b6020026020010151602001518173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611992929190612cb8565b60206040518083038186803b1580156119aa57600080fd5b505afa1580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e29190612cf6565b10156119f2576119f181610993565b5b611a39838381518110611a0857611a07612824565b5b60200260200101516000015185858581518110611a2857611a27612824565b5b602002602001015160400151611df9565b611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90612f9d565b60405180910390fd5b508080611a8490612a71565b9150506115b8565b5060005b8a8a9050811015611bea57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8e8e84818110611aec57611aeb612824565b5b9050602002016020810190611b019190612094565b8d8d85818110611b1457611b13612824565b5b9050602002016020810190611b299190612094565b8c8c86818110611b3c57611b3b612824565b5b905060200201358b8b87818110611b5657611b55612824565b5b9050602002810190611b689190612953565b8b8b89818110611b7b57611b7a612824565b5b905060200201358a6040518863ffffffff1660e01b8152600401611ba59796959493929190612e55565b600060405180830381600087803b158015611bbf57600080fd5b505af1158015611bd3573d6000803e3d6000fd5b505050508080611be290612a71565b915050611a90565b50505050505050505050505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401611cf492919061307e565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d7e9190613116565b6000604051808303816000865af19150503d8060008114611dbb576040519150601f19603f3d011682016040523d82523d6000602084013e611dc0565b606091505b5091509150818015611dee5750600081511480611ded575080806020019051810190611dec9190613165565b5b5b925050509392505050565b6000833b611e0657600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16338585604051602401611e3493929190613192565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ebe9190613116565b6000604051808303816000865af19150503d8060008114611efb576040519150601f19603f3d011682016040523d82523d6000602084013e611f00565b606091505b505090503d60008114611f1a5760208114611f2357600080fd5b60019250611f2f565b60206000803e60005192505b5080611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613215565b60405180910390fd5b509392505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b600082825260208201905092915050565b7f4e6f6e2d70617961626c65000000000000000000000000000000000000000000600082015250565b6000611ff6600b83611faf565b915061200182611fc0565b602082019050919050565b6000602082019050818103600083015261202581611fe9565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061206182612036565b9050919050565b61207181612056565b811461207c57600080fd5b50565b60008135905061208e81612068565b92915050565b6000602082840312156120aa576120a961202c565b5b60006120b88482850161207f565b91505092915050565b6000819050919050565b60006120e66120e16120dc84612036565b6120c1565b612036565b9050919050565b60006120f8826120cb565b9050919050565b600061210a826120ed565b9050919050565b61211a816120ff565b82525050565b60006020820190506121356000830184612111565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121605761215f61213b565b5b8235905067ffffffffffffffff81111561217d5761217c612140565b5b60208301915083602082028301111561219957612198612145565b5b9250929050565b60008083601f8401126121b6576121b561213b565b5b8235905067ffffffffffffffff8111156121d3576121d2612140565b5b6020830191508360208202830111156121ef576121ee612145565b5b9250929050565b60008083601f84011261220c5761220b61213b565b5b8235905067ffffffffffffffff81111561222957612228612140565b5b60208301915083602082028301111561224557612244612145565b5b9250929050565b600061225782612036565b9050919050565b6122678161224c565b811461227257600080fd5b50565b6000813590506122848161225e565b92915050565b600080600080600080600080600060a08a8c0312156122ac576122ab61202c565b5b60008a013567ffffffffffffffff8111156122ca576122c9612031565b5b6122d68c828d0161214a565b995099505060208a013567ffffffffffffffff8111156122f9576122f8612031565b5b6123058c828d016121a0565b975097505060408a013567ffffffffffffffff81111561232857612327612031565b5b6123348c828d016121f6565b955095505060608a013567ffffffffffffffff81111561235757612356612031565b5b6123638c828d016121a0565b935093505060806123768c828d01612275565b9150509295985092959850929598565b61238f81612056565b82525050565b60006020820190506123aa6000830184612386565b92915050565b60006123bb826120ed565b9050919050565b6123cb816123b0565b82525050565b60006020820190506123e660008301846123c2565b92915050565b60008060008060008060008060008060c08b8d03121561240f5761240e61202c565b5b600061241d8d828e0161207f565b9a505060208b013567ffffffffffffffff81111561243e5761243d612031565b5b61244a8d828e0161214a565b995099505060408b013567ffffffffffffffff81111561246d5761246c612031565b5b6124798d828e016121a0565b975097505060608b013567ffffffffffffffff81111561249c5761249b612031565b5b6124a88d828e016121f6565b955095505060808b013567ffffffffffffffff8111156124cb576124ca612031565b5b6124d78d828e016121a0565b935093505060a06124ea8d828e0161207f565b9150509295989b9194979a5092959850565b6000819050919050565b61250f816124fc565b811461251a57600080fd5b50565b60008135905061252c81612506565b92915050565b6000602082840312156125485761254761202c565b5b60006125568482850161251d565b91505092915050565b612568816124fc565b82525050565b6000602082019050612583600083018461255f565b92915050565b600080600080600080600080600080600060c08c8e0312156125ae576125ad61202c565b5b60008c013567ffffffffffffffff8111156125cc576125cb612031565b5b6125d88e828f0161214a565b9b509b505060208c013567ffffffffffffffff8111156125fb576125fa612031565b5b6126078e828f0161214a565b995099505060408c013567ffffffffffffffff81111561262a57612629612031565b5b6126368e828f016121a0565b975097505060608c013567ffffffffffffffff81111561265957612658612031565b5b6126658e828f016121f6565b955095505060808c013567ffffffffffffffff81111561268857612687612031565b5b6126948e828f016121a0565b935093505060a06126a78e828f0161207f565b9150509295989b509295989b9093969950565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126f0602083611faf565b91506126fb826126ba565b602082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061275c601f83611faf565b915061276782612726565b602082019050919050565b6000602082019050818103600083015261278b8161274f565b9050919050565b7f74686520696e70757420617272617973206d757374206861766520746865207360008201527f616d65206c656e67746800000000000000000000000000000000000000000000602082015250565b60006127ee602a83611faf565b91506127f982612792565b604082019050919050565b6000602082019050818103600083015261281d816127e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061288d826124fc565b9150612898836124fc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128cd576128cc612853565b5b828201905092915050565b7f6e6f7420656e6f7567682066756e647300000000000000000000000000000000600082015250565b600061290e601083611faf565b9150612919826128d8565b602082019050919050565b6000602082019050818103600083015261293d81612901565b9050919050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126129705761296f612944565b5b80840192508235915067ffffffffffffffff82111561299257612991612949565b5b6020830192506001820236038313156129ae576129ad61294e565b5b509250929050565b6129bf8161224c565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000612a0283856129c5565b9350612a0f8385846129d6565b612a18836129e5565b840190509392505050565b6000608082019050612a3860008301886129b6565b8181036020830152612a4b8186886129f6565b9050612a5a604083018561255f565b612a6760608301846129b6565b9695505050505050565b6000612a7c826124fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612aaf57612aae612853565b5b600182019050919050565b6000612ac5826124fc565b9150612ad0836124fc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b0957612b08612853565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b4e826124fc565b9150612b59836124fc565b925082612b6957612b68612b14565b5b828204905092915050565b7f6e6f7420656e6f7567682066756e647320666f72206261746368206665650000600082015250565b6000612baa601e83611faf565b9150612bb582612b74565b602082019050919050565b60006020820190508181036000830152612bd981612b9d565b9050919050565b600081905092915050565b50565b6000612bfb600083612be0565b9150612c0682612beb565b600082019050919050565b6000612c1c82612bee565b9150819050919050565b7f436f756c64206e6f742073656e642072656d61696e696e672066756e6473207460008201527f6f20746865207061796572000000000000000000000000000000000000000000602082015250565b6000612c82602b83611faf565b9150612c8d82612c26565b604082019050919050565b60006020820190508181036000830152612cb181612c75565b9050919050565b6000604082019050612ccd6000830185612386565b612cda6020830184612386565b9392505050565b600081519050612cf081612506565b92915050565b600060208284031215612d0c57612d0b61202c565b5b6000612d1a84828501612ce1565b91505092915050565b7f4e6f742073756666696369656e7420616c6c6f77616e636520666f722062617460008201527f636820746f207061790000000000000000000000000000000000000000000000602082015250565b6000612d7f602983611faf565b9150612d8a82612d23565b604082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f7061796d656e74207472616e7366657246726f6d2829206661696c6564000000600082015250565b6000612deb601d83611faf565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b6000612e2c826124fc565b9150612e37836124fc565b925082821015612e4a57612e49612853565b5b828203905092915050565b600060c082019050612e6a600083018a612386565b612e776020830189612386565b612e84604083018861255f565b8181036060830152612e978186886129f6565b9050612ea6608083018561255f565b612eb360a0830184612386565b98975050505050505050565b7f6e6f7420656e6f7567682066756e647320666f7220746865206261746368206660008201527f6565000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1b602283611faf565b9150612f2682612ebf565b604082019050919050565b60006020820190508181036000830152612f4a81612f0e565b9050919050565b7f626174636820666565207472616e7366657246726f6d2829206661696c656400600082015250565b6000612f87601f83611faf565b9150612f9282612f51565b602082019050919050565b60006020820190508181036000830152612fb681612f7a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613019602683611faf565b915061302482612fbd565b604082019050919050565b600060208201905081810360008301526130488161300c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006040820190506130936000830185612386565b6130a0602083018461255f565b9392505050565b600081519050919050565b60005b838110156130d05780820151818401526020810190506130b5565b838111156130df576000848401525b50505050565b60006130f0826130a7565b6130fa8185612be0565b935061310a8185602086016130b2565b80840191505092915050565b600061312282846130e5565b915081905092915050565b60008115159050919050565b6131428161312d565b811461314d57600080fd5b50565b60008151905061315f81613139565b92915050565b60006020828403121561317b5761317a61202c565b5b600061318984828501613150565b91505092915050565b60006060820190506131a76000830186612386565b6131b46020830185612386565b6131c1604083018461255f565b949350505050565b7f7472616e7366657246726f6d282920686173206265656e207265766572746564600082015250565b60006131ff602083611faf565b915061320a826131c9565b602082019050919050565b6000602082019050818103600083015261322e816131f2565b905091905056fea2646970667358221220193d754d631edcfef735dcf3d8fb61e707951cfab1646f74719a2884857025ac64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BatchPayments__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorFraction__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.AggregatorFraction__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChainlinkConversionPath__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_nativeTokenHash",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{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:"nativeTokenHash",outputs:[{internalType:"address",name:"",type:"address"}],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"}],a="0x60806040523480156200001157600080fd5b5060405162002249380380620022498339818101604052810190620000379190620002f0565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200043d565b600033905090565b620000c28160006200010860201b62000ace1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200011a8282620001bb60201b60201c565b156200015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001549062000383565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000226906200041b565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b8826200028b565b9050919050565b620002ca81620002ab565b8114620002d657600080fd5b50565b600081519050620002ea81620002bf565b92915050565b60006020828403121562000309576200030862000286565b5b60006200031984828501620002d9565b91505092915050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b60006200036b601f8362000322565b9150620003788262000333565b602082019050919050565b600060208201905081810360008301526200039e816200035c565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200040360228362000322565b91506200041082620003a5565b604082019050919050565b600060208201905081810360008301526200043681620003f4565b9050919050565b611dfc806200044d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806397edd4fa1161006657806397edd4fa1461010a578063a3d7afa31461013c578063bb5f747b14610158578063d515bb0314610188578063fbd4122a146101a657610093565b806308d5bc58146100985780634b6c8879146100c85780634c5a628c146100e45780637362d9c8146100ee575b600080fd5b6100b260048036038101906100ad919061113a565b6101d7565b6040516100bf9190611189565b60405180910390f35b6100e260048036038101906100dd91906111a4565b610219565b005b6100ec610363565b005b610108600480360381019061010391906111f7565b610375565b005b610124600480360381019061011f919061137d565b6103d0565b604051610133939291906113df565b60405180910390f35b61015660048036038101906101519190611471565b610723565b005b610172600480360381019061016d91906111f7565b610a0c565b60405161017f9190611540565b60405180910390f35b610190610a29565b60405161019d9190611189565b60405180910390f35b6101c060048036038101906101bb9190611587565b610a4f565b6040516101ce9291906115e7565b60405180910390f35b60026020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610229610224610b76565b610a0c565b610268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90611693565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf838383604051610356939291906116b3565b60405180910390a1505050565b61037361036e610b76565b610b7e565b565b610385610380610b76565b610a0c565b6103c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bb90611693565b60405180910390fd5b6103cd81610bd8565b50565b6000806000670de0b6b3a76400009250670de0b6b3a7640000905042915060005b600185516103ff9190611719565b81101561071b576000806000806104568986815181106104225761042161174d565b5b60200260200101518a600188610438919061177c565b815181106104495761044861174d565b5b6020026020010151610c32565b935093509350935060008473ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a657600080fd5b505afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de91906117e7565b9050878110156104ec578097505b60008573ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561053457600080fd5b505afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c919061184a565b905060008673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105b657600080fd5b505afa1580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee91906118b0565b60ff169050848111156106215784816106079190611719565b600a6106139190611a10565b8b61061e9190611a5b565b9a505b8381101561064f5780846106359190611719565b600a6106419190611a10565b8b61064c9190611a5b565b9a505b851561067f578181600a6106639190611a10565b8c61066e9190611a5b565b6106789190611ae4565b9a506106a5565b80600a61068c9190611a10565b828c6106989190611a5b565b6106a29190611ae4565b9a505b848110156106d35780856106b99190611719565b600a6106c59190611a10565b8b6106d09190611ae4565b9a505b838111156107015783816106e79190611719565b600a6106f39190611a10565b8b6106fe9190611ae4565b9a505b50505050505050808061071390611b15565b9150506103f1565b509193909250565b61073361072e610b76565b610a0c565b610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990611693565b60405180910390fd5b8383905086869050146107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190611baa565b60405180910390fd5b818190508686905014610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990611baa565b60405180910390fd5b60005b86869050811015610a03578282828181106108235761082261174d565b5b905060200201602081019061083891906111f7565b6002600089898581811061084f5761084e61174d565b5b905060200201602081019061086491906111f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008787858181106108b3576108b261174d565b5b90506020020160208101906108c891906111f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f589e912830d38d62f14a6cf3cea8f8a002fc9288b37f0d914b5e7dc107d278bf8787838181106109745761097361174d565b5b905060200201602081019061098991906111f7565b86868481811061099c5761099b61174d565b5b90506020020160208101906109b191906111f7565b8585858181106109c4576109c361174d565b5b90506020020160208101906109d991906111f7565b6040516109e8939291906116b3565b60405180910390a180806109fb90611b15565b915050610805565b50505050505050565b6000610a22826000610e4390919063ffffffff16565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000610aa1878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506103d0565b925092509250808389610ab49190611a5b565b610abe9190611ae4565b9450819350505050935093915050565b610ad88282610e43565b15610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611c16565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b610b92816000610f0b90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b610bec816000610ace90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b600080600080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935060009250600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610db457600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600192505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b90611c82565b60405180910390fd5b610e2d86610fb2565b9150610e3885610fb2565b905092959194509250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90611d14565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f158282610e43565b610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611da6565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600060089050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561101757601290506110aa565b611020826110af565b156110a9578173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561106b57600080fd5b505afa15801561107f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a391906118b0565b60ff1690505b5b919050565b600080823b905060008163ffffffff1611915050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611107826110dc565b9050919050565b611117816110fc565b811461112257600080fd5b50565b6000813590506111348161110e565b92915050565b60008060408385031215611151576111506110d2565b5b600061115f85828601611125565b925050602061117085828601611125565b9150509250929050565b611183816110fc565b82525050565b600060208201905061119e600083018461117a565b92915050565b6000806000606084860312156111bd576111bc6110d2565b5b60006111cb86828701611125565b93505060206111dc86828701611125565b92505060406111ed86828701611125565b9150509250925092565b60006020828403121561120d5761120c6110d2565b5b600061121b84828501611125565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61127282611229565b810181811067ffffffffffffffff821117156112915761129061123a565b5b80604052505050565b60006112a46110c8565b90506112b08282611269565b919050565b600067ffffffffffffffff8211156112d0576112cf61123a565b5b602082029050602081019050919050565b600080fd5b60006112f96112f4846112b5565b61129a565b9050808382526020820190506020840283018581111561131c5761131b6112e1565b5b835b8181101561134557806113318882611125565b84526020840193505060208101905061131e565b5050509392505050565b600082601f83011261136457611363611224565b5b81356113748482602086016112e6565b91505092915050565b600060208284031215611393576113926110d2565b5b600082013567ffffffffffffffff8111156113b1576113b06110d7565b5b6113bd8482850161134f565b91505092915050565b6000819050919050565b6113d9816113c6565b82525050565b60006060820190506113f460008301866113d0565b61140160208301856113d0565b61140e60408301846113d0565b949350505050565b600080fd5b60008083601f84011261143157611430611224565b5b8235905067ffffffffffffffff81111561144e5761144d611416565b5b60208301915083602082028301111561146a576114696112e1565b5b9250929050565b6000806000806000806060878903121561148e5761148d6110d2565b5b600087013567ffffffffffffffff8111156114ac576114ab6110d7565b5b6114b889828a0161141b565b9650965050602087013567ffffffffffffffff8111156114db576114da6110d7565b5b6114e789828a0161141b565b9450945050604087013567ffffffffffffffff81111561150a576115096110d7565b5b61151689828a0161141b565b92509250509295509295509295565b60008115159050919050565b61153a81611525565b82525050565b60006020820190506115556000830184611531565b92915050565b611564816113c6565b811461156f57600080fd5b50565b6000813590506115818161155b565b92915050565b6000806000604084860312156115a05761159f6110d2565b5b60006115ae86828701611572565b935050602084013567ffffffffffffffff8111156115cf576115ce6110d7565b5b6115db8682870161141b565b92509250509250925092565b60006040820190506115fc60008301856113d0565b61160960208301846113d0565b9392505050565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b600061167d604083611610565b915061168882611621565b604082019050919050565b600060208201905081810360008301526116ac81611670565b9050919050565b60006060820190506116c8600083018661117a565b6116d5602083018561117a565b6116e2604083018461117a565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611724826113c6565b915061172f836113c6565b925082821015611742576117416116ea565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611787826113c6565b9150611792836113c6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117c7576117c66116ea565b5b828201905092915050565b6000815190506117e18161155b565b92915050565b6000602082840312156117fd576117fc6110d2565b5b600061180b848285016117d2565b91505092915050565b6000819050919050565b61182781611814565b811461183257600080fd5b50565b6000815190506118448161181e565b92915050565b6000602082840312156118605761185f6110d2565b5b600061186e84828501611835565b91505092915050565b600060ff82169050919050565b61188d81611877565b811461189857600080fd5b50565b6000815190506118aa81611884565b92915050565b6000602082840312156118c6576118c56110d2565b5b60006118d48482850161189b565b91505092915050565b60008160011c9050919050565b6000808291508390505b6001851115611934578086048111156119105761190f6116ea565b5b600185161561191f5780820291505b808102905061192d856118dd565b94506118f4565b94509492505050565b60008261194d5760019050611a09565b8161195b5760009050611a09565b8160018114611971576002811461197b576119aa565b6001915050611a09565b60ff84111561198d5761198c6116ea565b5b8360020a9150848211156119a4576119a36116ea565b5b50611a09565b5060208310610133831016604e8410600b84101617156119df5782820a9050838111156119da576119d96116ea565b5b611a09565b6119ec84848460016118ea565b92509050818404811115611a0357611a026116ea565b5b81810290505b9392505050565b6000611a1b826113c6565b9150611a26836113c6565b9250611a537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461193d565b905092915050565b6000611a66826113c6565b9150611a71836113c6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611aaa57611aa96116ea565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611aef826113c6565b9150611afa836113c6565b925082611b0a57611b09611ab5565b5b828204905092915050565b6000611b20826113c6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b5357611b526116ea565b5b600182019050919050565b7f617272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b6000611b94602083611610565b9150611b9f82611b5e565b602082019050919050565b60006020820190508181036000830152611bc381611b87565b9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000611c00601f83611610565b9150611c0b82611bca565b602082019050919050565b60006020820190508181036000830152611c2f81611bf3565b9050919050565b7f4e6f2061676772656761746f7220666f756e6400000000000000000000000000600082015250565b6000611c6c601383611610565b9150611c7782611c36565b602082019050919050565b60006020820190508181036000830152611c9b81611c5f565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cfe602283611610565b9150611d0982611ca2565b604082019050919050565b60006020820190508181036000830152611d2d81611cf1565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d90602183611610565b9150611d9b82611d34565b604082019050919050565b60006020820190508181036000830152611dbf81611d83565b905091905056fea26469706673582212200101fcd30f1a7439cac7c137f33ea9e5628909fed79c292b14572dc35e9e146564736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ChainlinkConversionPath__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20fraction__factory=void 0;const n=r(4),f=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20fraction__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Erc20ConversionProxy__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"},{internalType:"address",name:"_owner",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"},{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:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paymentProxy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",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"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"}],name:"updateConversionPathAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"updateConversionProxyAddress",outputs:[],stateMutability:"nonpayable",type:"function"}],a="0x60806040523480156200001157600080fd5b506040516200197638038062001976833981810160405281019062000037919062000368565b620000576200004b620000f360201b60201c565b620000fb60201b60201c565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000ea81620001bf60201b60201c565b505050620004df565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001cf620000f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001f5620002d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200024e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002459062000425565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620002c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b890620004bd565b60405180910390fd5b620002d281620000fb60201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003308262000303565b9050919050565b620003428162000323565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b600080600060608486031215620003845762000383620002fe565b5b6000620003948682870162000351565b9350506020620003a78682870162000351565b9250506040620003ba8682870162000351565b9150509250925092565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200040d602083620003c4565b91506200041a82620003d5565b602082019050919050565b600060208201905081810360008301526200044081620003fe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620004a5602683620003c4565b9150620004b28262000447565b604082019050919050565b60006020820190508181036000830152620004d88162000496565b9050919050565b61148780620004ef6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637a38d1cb1161005b5780637a38d1cb146100ed5780638da5cb5b14610109578063946647f114610127578063f2fde38b1461014557610088565b80633af2c0121461008d5780633cd3efef146100a95780635536bcde146100c7578063715018a6146100e3575b600080fd5b6100a760048036038101906100a29190610b15565b610161565b005b6100b161042b565b6040516100be9190610c1b565b60405180910390f35b6100e160048036038101906100dc9190610c36565b610451565b005b6100eb610511565b005b61010760048036038101906101029190610c36565b610599565b005b610111610659565b60405161011e9190610c1b565b60405180910390f35b61012f610682565b60405161013c9190610cc2565b60405180910390f35b61015f600480360381019061015a9190610c36565b6106a8565b005b6000806101b18a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508c88866107a0565b915091508381836101c29190610d0c565b1115610203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fa90610de5565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b8b60018e8e90506102509190610e05565b8181106102605761025f610e39565b5b90506020020160208101906102759190610c36565b8e858c8c878c6040516024016102919796959493929190610ed5565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161031b9190610fb9565b600060405180830381855af49150503d8060008114610356576040519150601f19603f3d011682016040523d82523d6000602084013e61035b565b606091505b505090508061039f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039690611042565b60405180910390fd5b88886040516103af929190611087565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8d8d8d60008181106103ed576103ec610e39565b5b90506020020160208101906104029190610c36565b8a8860405161041494939291906110a0565b60405180910390a250505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6104596108f0565b73ffffffffffffffffffffffffffffffffffffffff16610477610659565b73ffffffffffffffffffffffffffffffffffffffff16146104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c490611131565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6105196108f0565b73ffffffffffffffffffffffffffffffffffffffff16610537610659565b73ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611131565b60405180910390fd5b61059760006108f8565b565b6105a16108f0565b73ffffffffffffffffffffffffffffffffffffffff166105bf610659565b73ffffffffffffffffffffffffffffffffffffffff1614610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611131565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6106b06108f0565b73ffffffffffffffffffffffffffffffffffffffff166106ce610659565b73ffffffffffffffffffffffffffffffffffffffff1614610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611131565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b906111c3565b60405180910390fd5b61079d816108f8565b50565b6000806000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b815260040161080391906112a1565b60606040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085391906112d8565b925092509250600086148061087357508582426108709190610e05565b11155b6108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990611377565b60405180910390fd5b8083896108bf9190611397565b6108c99190611420565b94508083886108d89190611397565b6108e29190611420565b935050505094509492505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109f1826109c6565b9050919050565b610a01816109e6565b8114610a0c57600080fd5b50565b600081359050610a1e816109f8565b92915050565b6000819050919050565b610a3781610a24565b8114610a4257600080fd5b50565b600081359050610a5481610a2e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610a7f57610a7e610a5a565b5b8235905067ffffffffffffffff811115610a9c57610a9b610a5f565b5b602083019150836020820283011115610ab857610ab7610a64565b5b9250929050565b60008083601f840112610ad557610ad4610a5a565b5b8235905067ffffffffffffffff811115610af257610af1610a5f565b5b602083019150836001820283011115610b0e57610b0d610a64565b5b9250929050565b6000806000806000806000806000806101008b8d031215610b3957610b386109bc565b5b6000610b478d828e01610a0f565b9a50506020610b588d828e01610a45565b99505060408b013567ffffffffffffffff811115610b7957610b786109c1565b5b610b858d828e01610a69565b985098505060608b013567ffffffffffffffff811115610ba857610ba76109c1565b5b610bb48d828e01610abf565b96509650506080610bc78d828e01610a45565b94505060a0610bd88d828e01610a0f565b93505060c0610be98d828e01610a45565b92505060e0610bfa8d828e01610a45565b9150509295989b9194979a5092959850565b610c15816109e6565b82525050565b6000602082019050610c306000830184610c0c565b92915050565b600060208284031215610c4c57610c4b6109bc565b5b6000610c5a84828501610a0f565b91505092915050565b6000819050919050565b6000610c88610c83610c7e846109c6565b610c63565b6109c6565b9050919050565b6000610c9a82610c6d565b9050919050565b6000610cac82610c8f565b9050919050565b610cbc81610ca1565b82525050565b6000602082019050610cd76000830184610cb3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d1782610a24565b9150610d2283610a24565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d5757610d56610cdd565b5b828201905092915050565b600082825260208201905092915050565b7f416d6f756e7420746f20706179206973206f766572207468652075736572206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b6000610dcf602483610d62565b9150610dda82610d73565b604082019050919050565b60006020820190508181036000830152610dfe81610dc2565b9050919050565b6000610e1082610a24565b9150610e1b83610a24565b925082821015610e2e57610e2d610cdd565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b610e7181610a24565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610eb48385610e77565b9350610ec1838584610e88565b610eca83610e97565b840190509392505050565b600060c082019050610eea600083018a610c0c565b610ef76020830189610c0c565b610f046040830188610e68565b8181036060830152610f17818688610ea8565b9050610f266080830185610e68565b610f3360a0830184610c0c565b98975050505050505050565b600081519050919050565b600081905092915050565b60005b83811015610f73578082015181840152602081019050610f58565b83811115610f82576000848401525b50505050565b6000610f9382610f3f565b610f9d8185610f4a565b9350610fad818560208601610f55565b80840191505092915050565b6000610fc58284610f88565b915081905092915050565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b600061102c602683610d62565b915061103782610fd0565b604082019050919050565b6000602082019050818103600083015261105b8161101f565b9050919050565b600061106e8385610f4a565b935061107b838584610e88565b82840190509392505050565b6000611094828486611062565b91508190509392505050565b60006080820190506110b56000830187610e68565b6110c26020830186610c0c565b6110cf6040830185610e68565b6110dc6060830184610e68565b95945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061111b602083610d62565b9150611126826110e5565b602082019050919050565b6000602082019050818103600083015261114a8161110e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006111ad602683610d62565b91506111b882611151565b604082019050919050565b600060208201905081810360008301526111dc816111a0565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611218816109e6565b82525050565b600061122a838361120f565b60208301905092915050565b6000602082019050919050565b600061124e826111e3565b61125881856111ee565b9350611263836111ff565b8060005b8381101561129457815161127b888261121e565b975061128683611236565b925050600181019050611267565b5085935050505092915050565b600060208201905081810360008301526112bb8184611243565b905092915050565b6000815190506112d281610a2e565b92915050565b6000806000606084860312156112f1576112f06109bc565b5b60006112ff868287016112c3565b9350506020611310868287016112c3565b9250506040611321868287016112c3565b9150509250925092565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b6000611361601b83610d62565b915061136c8261132b565b602082019050919050565b6000602082019050818103600083015261139081611354565b9050919050565b60006113a282610a24565b91506113ad83610a24565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113e6576113e5610cdd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061142b82610a24565b915061143683610a24565b925082611446576114456113f1565b5b82820490509291505056fea2646970667358221220136f6e6324c27791056dc8f87d2a3d545ec401c6a091b8c4e9402300175ebc4864736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Erc20ConversionProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20EscrowToPay__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"},{internalType:"address",name:"_admin",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:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",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:[],name:"emergencyClaimPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"freezeRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"frozenPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_paymentRef",type:"bytes"}],name:"initiateEmergencyClaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",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:[],name:"renounceOwnership",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"},{inputs:[{internalType:"uint256",name:"_emergencyClaimPeriod",type:"uint256"}],name:"setEmergencyClaimPeriod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_frozenPeriod",type:"uint256"}],name:"setFrozenPeriod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],a="0x608060405262dd7c006003556301dfe2006004553480156200002057600080fd5b5060405162003b7638038062003b76833981810160405281019062000046919062000335565b620000666200005a620000c060201b60201c565b620000c860201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000b8816200018c60201b60201c565b505062000497565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200019c620000c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001c2620002a260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200021b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021290620003dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200028e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002859062000475565b60405180910390fd5b6200029f81620000c860201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002fd82620002d0565b9050919050565b6200030f81620002f0565b81146200031b57600080fd5b50565b6000815190506200032f8162000304565b92915050565b600080604083850312156200034f576200034e620002cb565b5b60006200035f858286016200031e565b925050602062000372858286016200031e565b9150509250929050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620003c56020836200037c565b9150620003d2826200038d565b602082019050919050565b60006020820190508181036000830152620003f881620003b6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200045d6026836200037c565b91506200046a82620003ff565b604082019050919050565b6000602082019050818103600083015262000490816200044e565b9050919050565b6136cf80620004a76000396000f3fe6080604052600436106101025760003560e01c80633cd3efef116100955780638da5cb5b116100645780638da5cb5b14610325578063a09b241d14610350578063a58ad6bc14610379578063f0d4b377146103bd578063f2fde38b146103e857610142565b80633cd3efef146102915780636662e1e0146102bc578063715018a6146102e557806382865e9d146102fc57610142565b80632a16f4c3116100d15780632a16f4c3146101eb5780632c77ddfd14610214578063325a00f01461023f5780633a322d451461026857610142565b8063079756081461014757806308e0ae99146101705780631189551b146101995780631a77f53a146101c257610142565b36610142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013990612595565b60405180910390fd5b600080fd5b34801561015357600080fd5b5061016e6004803603810190610169919061270f565b610411565b005b34801561017c57600080fd5b506101976004803603810190610192919061278e565b6106ad565b005b3480156101a557600080fd5b506101c060048036038101906101bb919061278e565b610779565b005b3480156101ce57600080fd5b506101e960048036038101906101e4919061270f565b610845565b005b3480156101f757600080fd5b50610212600480360381019061020d919061270f565b610ab5565b005b34801561022057600080fd5b50610229610d3b565b60405161023691906127ca565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612843565b610d41565b005b34801561027457600080fd5b5061028f600480360381019061028a919061270f565b6111ab565b005b34801561029d57600080fd5b506102a6611456565b6040516102b3919061294b565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de919061270f565b61147c565b005b3480156102f157600080fd5b506102fa61178d565b005b34801561030857600080fd5b50610323600480360381019061031e919061270f565b611815565b005b34801561033157600080fd5b5061033a611b27565b6040516103479190612975565b60405180910390f35b34801561035c57600080fd5b5061037760048036038101906103729190612990565b611b50565b005b34801561038557600080fd5b506103a0600480360381019061039b919061270f565b611bcd565b6040516103b49897969594939291906129d8565b60405180910390f35b3480156103c957600080fd5b506103d2611ca5565b6040516103df91906127ca565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190612990565b611cab565b005b806002816040516104229190612ad0565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b890612b33565b60405180910390fd5b8160006002826040516104d49190612ad0565b90815260200160405180910390206003015411610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90612b9f565b60405180910390fd5b826002816040516105379190612ad0565b908152602001604051809103902060060160019054906101000a900460ff1615610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d90612c0b565b60405180910390fd5b6002846040516105a69190612ad0565b908152602001604051809103902060060160009054906101000a900460ff16610604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fb90612c77565b60405180910390fd5b60006002856040516106169190612ad0565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006002856040516106509190612ad0565b908152602001604051809103902060050181905550836040516106739190612ad0565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a250505050565b6106b5611da3565b73ffffffffffffffffffffffffffffffffffffffff166106d3611b27565b73ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090612ce3565b60405180910390fd5b62278d0081101561076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076690612d4f565b60405180910390fd5b8060048190555050565b610781611da3565b73ffffffffffffffffffffffffffffffffffffffff1661079f611b27565b73ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90612ce3565b60405180910390fd5b62278d0081101561083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290612dbb565b60405180910390fd5b8060038190555050565b8060006002826040516108589190612ad0565b908152602001604051809103902060030154116108aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a190612b9f565b60405180910390fd5b816002816040516108bb9190612ad0565b908152602001604051809103902060060160009054906101000a900460ff161561091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190612e27565b60405180910390fd5b60028360405161092a9190612ad0565b908152602001604051809103902060060160019054906101000a900460ff16610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f90612e93565b60405180910390fd5b426002846040516109999190612ad0565b90815260200160405180910390206004015411156109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e390612eff565b60405180910390fd5b60006002846040516109fe9190612ad0565b908152602001604051809103902060060160016101000a81548160ff021916908315150217905550610a7183600285604051610a3a9190612ad0565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611dab565b610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790612f6b565b60405180910390fd5b505050565b80600281604051610ac69190612ad0565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90612b33565b60405180910390fd5b816000600282604051610b789190612ad0565b90815260200160405180910390206003015411610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190612b9f565b60405180910390fd5b82600281604051610bdb9190612ad0565b908152602001604051809103902060060160009054906101000a900460ff1615610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190612e27565b60405180910390fd5b83600281604051610c4b9190612ad0565b908152602001604051809103902060060160019054906101000a900460ff1615610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190612c0b565b60405180910390fd5b610cf585600287604051610cbe9190612ad0565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611dab565b610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b90612f6b565b60405180910390fd5b5050505050565b60045481565b826000600282604051610d549190612ad0565b90815260200160405180910390206003015414610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612fd7565b60405180910390fd5b6000851480610db55750600083145b15610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90613043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906130af565b60405180910390fd5b6040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001868152602001600081526020016000815260200160001515815260200160001515815250600285604051610ef99190612ad0565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff0219169083151502179055509050506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1688308888888860405160240161109396959493929190613119565b6040516020818303038152906040527fc219a14d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161111d9190612ad0565b600060405180830381855af49150503d8060008114611158576040519150601f19603f3d011682016040523d82523d6000602084013e61115d565b606091505b50509050806111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906131f3565b60405180910390fd5b5050505050505050565b806002816040516111bc9190612ad0565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290612b33565b60405180910390fd5b81600060028260405161126e9190612ad0565b908152602001604051809103902060030154116112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790612b9f565b60405180910390fd5b826002816040516112d19190612ad0565b908152602001604051809103902060060160009054906101000a900460ff1615611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790612e27565b60405180910390fd5b836002816040516113419190612ad0565b908152602001604051809103902060060160019054906101000a900460ff16156113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612c0b565b60405180910390fd5b600354426113ae9190613242565b6002866040516113be9190612ad0565b90815260200160405180910390206005018190555060016002866040516113e59190612ad0565b908152602001604051809103902060060160006101000a81548160ff0219169083151502179055508460405161141b9190612ad0565b60405180910390207f37b4fae7fd90ce3674204f79d686d40c4069a66c402976717d4f30817c0c093960405160405180910390a25050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8060028160405161148d9190612ad0565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612b33565b60405180910390fd5b81600060028260405161153f9190612ad0565b90815260200160405180910390206003015411611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890612b9f565b60405180910390fd5b826002816040516115a29190612ad0565b908152602001604051809103902060060160019054906101000a900460ff1615611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890612c0b565b60405180910390fd5b6002846040516116119190612ad0565b908152602001604051809103902060060160009054906101000a900460ff16801561165d5750426002856040516116489190612ad0565b90815260200160405180910390206005015411155b61169c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611693906132e4565b60405180910390fd5b60006002856040516116ae9190612ad0565b908152602001604051809103902060060160006101000a81548160ff02191690831515021790555060006002856040516116e89190612ad0565b908152602001604051809103902060050181905550611748846002866040516117119190612ad0565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611dab565b611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613350565b60405180910390fd5b50505050565b611795611da3565b73ffffffffffffffffffffffffffffffffffffffff166117b3611b27565b73ffffffffffffffffffffffffffffffffffffffff1614611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180090612ce3565b60405180910390fd5b6118136000612340565b565b806002816040516118269190612ad0565b908152602001604051809103902060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc90612b33565b60405180910390fd5b8160006002826040516118d89190612ad0565b9081526020016040518091039020600301541161192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192190612b9f565b60405180910390fd5b8260028160405161193b9190612ad0565b908152602001604051809103902060060160019054906101000a900460ff161561199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190612c0b565b60405180910390fd5b6002846040516119aa9190612ad0565b908152602001604051809103902060060160009054906101000a900460ff1615611a725760006002856040516119e09190612ad0565b908152602001604051809103902060060160006101000a81548160ff0219169083151502179055506000600285604051611a1a9190612ad0565b90815260200160405180910390206005018190555083604051611a3d9190612ad0565b60405180910390207fcc401323a0bd24a2e6e1564e168c52332731fff1a2937d998ee25462588ba0fa60405160405180910390a25b6001600285604051611a849190612ad0565b908152602001604051809103902060060160016101000a81548160ff02191690831515021790555060045442611aba9190613242565b600285604051611aca9190612ad0565b90815260200160405180910390206004018190555083604051611aed9190612ad0565b60405180910390207f5e14b9b7c3d9675ce5ecb24ee8181d371561709a08aa9c412acb36627386dba860405160405180910390a250505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050611bc7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166124049092919063ffffffff16565b50505050565b6002818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154908060050154908060060160009054906101000a900460ff16908060060160019054906101000a900460ff16905088565b60035481565b611cb3611da3565b73ffffffffffffffffffffffffffffffffffffffff16611cd1611b27565b73ffffffffffffffffffffffffffffffffffffffff1614611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90612ce3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8e906133e2565b60405180910390fd5b611da081612340565b50565b600033905090565b6000826000600282604051611dc09190612ad0565b90815260200160405180910390206003015411611e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0990612b9f565b60405180910390fd5b83600281604051611e239190612ad0565b908152602001604051809103902060060160009054906101000a900460ff1615611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7990612e27565b60405180910390fd5b84600281604051611e939190612ad0565b908152602001604051809103902060060160019054906101000a900460ff1615611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990612c0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f599061344e565b60405180910390fd5b6000600287604051611f749190612ad0565b90815260200160405180910390206003015411611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd906134ba565b60405180910390fd5b6000600287604051611fd89190612ad0565b908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060028860405161201e9190612ad0565b908152602001604051809103902060030154905060006002896040516120449190612ad0565b908152602001604051809103902060030181905550808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016120b79291906134da565b60206040518083038186803b1580156120cf57600080fd5b505afa1580156120e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121079190613518565b10156121175761211682611b50565b5b60006002896040516121299190612ad0565b9081526020016040518091039020600301541461214957612148613545565b5b6002886040516121599190612ad0565b908152602001604051809103902060060160019054906101000a900460ff161561218657612185613545565b5b6002886040516121969190612ad0565b908152602001604051809103902060060160009054906101000a900460ff16156121c3576121c2613545565b5b6002886040516121d39190612ad0565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160009055600482016000905560058201600090556006820160006101000a81549060ff02191690556006820160016101000a81549060ff02191690555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d8389848c6000806040518763ffffffff1660e01b81526004016122ff969594939291906135af565b600060405180830381600087803b15801561231957600080fd5b505af115801561232d573d6000803e3d6000fd5b5050505060019550505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401612433929190613617565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124bd9190612ad0565b6000604051808303816000865af19150503d80600081146124fa576040519150601f19603f3d011682016040523d82523d6000602084013e6124ff565b606091505b509150915081801561252d575060008151148061252c57508080602001905181019061252b919061366c565b5b5b925050509392505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b600061257f601383612538565b915061258a82612549565b602082019050919050565b600060208201905081810360008301526125ae81612572565b9050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61261c826125d3565b810181811067ffffffffffffffff8211171561263b5761263a6125e4565b5b80604052505050565b600061264e6125b5565b905061265a8282612613565b919050565b600067ffffffffffffffff82111561267a576126796125e4565b5b612683826125d3565b9050602081019050919050565b82818337600083830152505050565b60006126b26126ad8461265f565b612644565b9050828152602081018484840111156126ce576126cd6125ce565b5b6126d9848285612690565b509392505050565b600082601f8301126126f6576126f56125c9565b5b813561270684826020860161269f565b91505092915050565b600060208284031215612725576127246125bf565b5b600082013567ffffffffffffffff811115612743576127426125c4565b5b61274f848285016126e1565b91505092915050565b6000819050919050565b61276b81612758565b811461277657600080fd5b50565b60008135905061278881612762565b92915050565b6000602082840312156127a4576127a36125bf565b5b60006127b284828501612779565b91505092915050565b6127c481612758565b82525050565b60006020820190506127df60008301846127bb565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612810826127e5565b9050919050565b61282081612805565b811461282b57600080fd5b50565b60008135905061283d81612817565b92915050565b60008060008060008060c087890312156128605761285f6125bf565b5b600061286e89828a0161282e565b965050602061287f89828a0161282e565b955050604061289089828a01612779565b945050606087013567ffffffffffffffff8111156128b1576128b06125c4565b5b6128bd89828a016126e1565b93505060806128ce89828a01612779565b92505060a06128df89828a0161282e565b9150509295509295509295565b6000819050919050565b600061291161290c612907846127e5565b6128ec565b6127e5565b9050919050565b6000612923826128f6565b9050919050565b600061293582612918565b9050919050565b6129458161292a565b82525050565b6000602082019050612960600083018461293c565b92915050565b61296f81612805565b82525050565b600060208201905061298a6000830184612966565b92915050565b6000602082840312156129a6576129a56125bf565b5b60006129b48482850161282e565b91505092915050565b60008115159050919050565b6129d2816129bd565b82525050565b6000610100820190506129ee600083018b612966565b6129fb602083018a612966565b612a086040830189612966565b612a1560608301886127bb565b612a2260808301876127bb565b612a2f60a08301866127bb565b612a3c60c08301856129c9565b612a4960e08301846129c9565b9998505050505050505050565b600081519050919050565b600081905092915050565b60005b83811015612a8a578082015181840152602081019050612a6f565b83811115612a99576000848401525b50505050565b6000612aaa82612a56565b612ab48185612a61565b9350612ac4818560208601612a6c565b80840191505092915050565b6000612adc8284612a9f565b915081905092915050565b7f4e6f7420417574686f72697a65642e0000000000000000000000000000000000600082015250565b6000612b1d600f83612538565b9150612b2882612ae7565b602082019050919050565b60006020820190508181036000830152612b4c81612b10565b9050919050565b7f4e6f7420696e20657363726f772e000000000000000000000000000000000000600082015250565b6000612b89600e83612538565b9150612b9482612b53565b602082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b7f526571756573742046726f7a656e210000000000000000000000000000000000600082015250565b6000612bf5600f83612538565b9150612c0082612bbf565b602082019050919050565b60006020820190508181036000830152612c2481612be8565b9050919050565b7f456d657267656e6379436c61696d204e4f5420696e6974696174656400000000600082015250565b6000612c61601c83612538565b9150612c6c82612c2b565b602082019050919050565b60006020820190508181036000830152612c9081612c54565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ccd602083612538565b9150612cd882612c97565b602082019050919050565b60006020820190508181036000830152612cfc81612cc0565b9050919050565b7f66726f7a656e20706572696f6420746f6f2073686f7274000000000000000000600082015250565b6000612d39601783612538565b9150612d4482612d03565b602082019050919050565b60006020820190508181036000830152612d6881612d2c565b9050919050565b7f656d657267656e637920706572696f6420746f6f2073686f7274000000000000600082015250565b6000612da5601a83612538565b9150612db082612d6f565b602082019050919050565b60006020820190508181036000830152612dd481612d98565b9050919050565b7f496e20656d657267656e63795374617465000000000000000000000000000000600082015250565b6000612e11601183612538565b9150612e1c82612ddb565b602082019050919050565b60006020820190508181036000830152612e4081612e04565b9050919050565b7f4e6f742066726f7a656e21000000000000000000000000000000000000000000600082015250565b6000612e7d600b83612538565b9150612e8882612e47565b602082019050919050565b60006020820190508181036000830152612eac81612e70565b9050919050565b7f4e6f742059657421000000000000000000000000000000000000000000000000600082015250565b6000612ee9600883612538565b9150612ef482612eb3565b602082019050919050565b60006020820190508181036000830152612f1881612edc565b9050919050565b7f5769746864726177204661696c65642100000000000000000000000000000000600082015250565b6000612f55601083612538565b9150612f6082612f1f565b602082019050919050565b60006020820190508181036000830152612f8481612f48565b9050919050565b7f416c726561647920696e20457363726f772e0000000000000000000000000000600082015250565b6000612fc1601283612538565b9150612fcc82612f8b565b602082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f5a65726f2056616c756500000000000000000000000000000000000000000000600082015250565b600061302d600a83612538565b915061303882612ff7565b602082019050919050565b6000602082019050818103600083015261305c81613020565b9050919050565b7f706179656520616464726573732063616e6e6f74206265203000000000000000600082015250565b6000613099601983612538565b91506130a482613063565b602082019050919050565b600060208201905081810360008301526130c88161308c565b9050919050565b600082825260208201905092915050565b60006130eb82612a56565b6130f581856130cf565b9350613105818560208601612a6c565b61310e816125d3565b840191505092915050565b600060c08201905061312e6000830189612966565b61313b6020830188612966565b61314860408301876127bb565b818103606083015261315a81866130e0565b905061316960808301856127bb565b61317660a0830184612966565b979650505050505050565b7f7472616e7366657246726f6d576974685265666572656e6365416e644665652060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b60006131dd602683612538565b91506131e882613181565b604082019050919050565b6000602082019050818103600083015261320c816131d0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061324d82612758565b915061325883612758565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561328d5761328c613213565b5b828201905092915050565b7f4e6f742079657421000000000000000000000000000000000000000000000000600082015250565b60006132ce600883612538565b91506132d982613298565b602082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b7f5769746864726177206661696c65642100000000000000000000000000000000600082015250565b600061333a601083612538565b915061334582613304565b602082019050919050565b600060208201905081810360008301526133698161332d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133cc602683612538565b91506133d782613370565b604082019050919050565b600060208201905081810360008301526133fb816133bf565b9050919050565b7f5a45524f20616464647265737300000000000000000000000000000000000000600082015250565b6000613438600d83612538565b915061344382613402565b602082019050919050565b600060208201905081810360008301526134678161342b565b9050919050565b7f5a45524f20416d6f756e74000000000000000000000000000000000000000000600082015250565b60006134a4600b83612538565b91506134af8261346e565b602082019050919050565b600060208201905081810360008301526134d381613497565b9050919050565b60006040820190506134ef6000830185612966565b6134fc6020830184612966565b9392505050565b60008151905061351281612762565b92915050565b60006020828403121561352e5761352d6125bf565b5b600061353c84828501613503565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000819050919050565b600061359961359461358f84613574565b6128ec565b612758565b9050919050565b6135a98161357e565b82525050565b600060c0820190506135c46000830189612966565b6135d16020830188612966565b6135de60408301876127bb565b81810360608301526135f081866130e0565b90506135ff60808301856135a0565b61360c60a0830184612966565b979650505050505050565b600060408201905061362c6000830185612966565b61363960208301846127bb565b9392505050565b613649816129bd565b811461365457600080fd5b50565b60008151905061366681613640565b92915050565b600060208284031215613682576136816125bf565b5b600061369084828501613657565b9150509291505056fea26469706673582212200fd72264c627ff95e4d47cf78708b503a413237e157f9003d486cbc3e2252a5a64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20EscrowToPay__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20FeeProxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610875806100206000396000f3fe6080604052600436106100225760003560e01c8063c219a14d1461006757610062565b36610062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610059906103a3565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e600480360381019061008991906104c6565b610090565b005b61009b8787876101c7565b6100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906105c1565b60405180910390fd5b6000821180156101175750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610167576101278782846101c7565b610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d9061062d565b60405180910390fd5b5b838360405161017792919061068c565b60405180910390207f9f16cbcc523c67a60c450e5ffe4f3b7b6dbe772e7abcadb2686ce029a9a0a2b688888886866040516101b69594939291906106c3565b60405180910390a250505050505050565b6000833b6101d457600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff1633858560405160240161020293929190610716565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161028c91906107bc565b6000604051808303816000865af19150503d80600081146102c9576040519150601f19603f3d011682016040523d82523d6000602084013e6102ce565b606091505b505090503d600081146102e857602081146102f157600080fd5b600192506102fd565b60206000803e60005192505b508061033e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103359061081f565b60405180910390fd5b509392505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b600061038d601383610346565b915061039882610357565b602082019050919050565b600060208201905081810360008301526103bc81610380565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f8826103cd565b9050919050565b610408816103ed565b811461041357600080fd5b50565b600081359050610425816103ff565b92915050565b6000819050919050565b61043e8161042b565b811461044957600080fd5b50565b60008135905061045b81610435565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261048657610485610461565b5b8235905067ffffffffffffffff8111156104a3576104a2610466565b5b6020830191508360018202830111156104bf576104be61046b565b5b9250929050565b600080600080600080600060c0888a0312156104e5576104e46103c3565b5b60006104f38a828b01610416565b97505060206105048a828b01610416565b96505060406105158a828b0161044c565b955050606088013567ffffffffffffffff811115610536576105356103c8565b5b6105428a828b01610470565b945094505060806105558a828b0161044c565b92505060a06105668a828b01610416565b91505092959891949750929550565b7f7061796d656e74207472616e7366657246726f6d2829206661696c6564000000600082015250565b60006105ab601d83610346565b91506105b682610575565b602082019050919050565b600060208201905081810360008301526105da8161059e565b9050919050565b7f666565207472616e7366657246726f6d2829206661696c656400000000000000600082015250565b6000610617601983610346565b9150610622826105e1565b602082019050919050565b600060208201905081810360008301526106468161060a565b9050919050565b600081905092915050565b82818337600083830152505050565b6000610673838561064d565b9350610680838584610658565b82840190509392505050565b6000610699828486610667565b91508190509392505050565b6106ae816103ed565b82525050565b6106bd8161042b565b82525050565b600060a0820190506106d860008301886106a5565b6106e560208301876106a5565b6106f260408301866106b4565b6106ff60608301856106b4565b61070c60808301846106a5565b9695505050505050565b600060608201905061072b60008301866106a5565b61073860208301856106a5565b61074560408301846106b4565b949350505050565b600081519050919050565b60005b8381101561077657808201518184015260208101905061075b565b83811115610785576000848401525b50505050565b60006107968261074d565b6107a0818561064d565b93506107b0818560208601610758565b80840191505092915050565b60006107c8828461078b565b915081905092915050565b7f7472616e7366657246726f6d282920686173206265656e207265766572746564600082015250565b6000610809602083610346565b9150610814826107d3565b602082019050919050565b60006020820190508181036000830152610838816107fc565b905091905056fea2646970667358221220b9b836a03da1aa90d1c7846f44a91220029e4ac0ef63cf70084474dd70ea1a2364736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20FeeProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Proxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b5061057a806100206000396000f3fe6080604052600436106100225760003560e01c80630784bca31461006757610062565b36610062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100599061021b565b60405180910390fd5b600080fd5b34801561007357600080fd5b5061008e6004803603810190610089919061033e565b610090565b005b60008590508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3387876040518463ffffffff1660e01b81526004016100d2939291906103e4565b602060405180830381600087803b1580156100ec57600080fd5b505af1158015610100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101249190610453565b610163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015a906104cc565b60405180910390fd5b828260405161017392919061052b565b60405180910390207f4d4e9dbb7207a31cc25529ccb52e52ddba30ded7734e32691d13da66df7f81da8787876040516101ae939291906103e4565b60405180910390a2505050505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b60006102056013836101be565b9150610210826101cf565b602082019050919050565b60006020820190508181036000830152610234816101f8565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061027082610245565b9050919050565b61028081610265565b811461028b57600080fd5b50565b60008135905061029d81610277565b92915050565b6000819050919050565b6102b6816102a3565b81146102c157600080fd5b50565b6000813590506102d3816102ad565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126102fe576102fd6102d9565b5b8235905067ffffffffffffffff81111561031b5761031a6102de565b5b602083019150836001820283011115610337576103366102e3565b5b9250929050565b60008060008060006080868803121561035a5761035961023b565b5b60006103688882890161028e565b95505060206103798882890161028e565b945050604061038a888289016102c4565b935050606086013567ffffffffffffffff8111156103ab576103aa610240565b5b6103b7888289016102e8565b92509250509295509295909350565b6103cf81610265565b82525050565b6103de816102a3565b82525050565b60006060820190506103f960008301866103c6565b61040660208301856103c6565b61041360408301846103d5565b949350505050565b60008115159050919050565b6104308161041b565b811461043b57600080fd5b50565b60008151905061044d81610427565b92915050565b6000602082840312156104695761046861023b565b5b60006104778482850161043e565b91505092915050565b7f7472616e7366657246726f6d2829206661696c65640000000000000000000000600082015250565b60006104b66015836101be565b91506104c182610480565b602082019050919050565b600060208201905081810360008301526104e5816104a9565b9050919050565b600081905092915050565b82818337600083830152505050565b600061051283856104ec565b935061051f8385846104f7565b82840190509392505050565b6000610538828486610506565b9150819050939250505056fea2646970667358221220cf1d986b69990e99d1bacdec2fc867a95742d7328b90ab8aa029c13738a873a764736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Proxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToConversion__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_owner",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"},{internalType:"address",name:"_paymentProxy",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:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestSwapFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_newSwapRouterAddress",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"swapRouter",outputs:[{internalType:"contract ISwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxy",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_requestAmount",type:"uint256"},{internalType:"uint256",name:"_amountInMax",type:"uint256"},{internalType:"address[]",name:"_swapRouterPath",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:"_deadline",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"},{inputs:[{internalType:"address",name:"_chainlinkConversionPath",type:"address"}],name:"updateConversionPathAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_newRequestSwapFees",type:"uint256"}],name:"updateRequestSwapFees",outputs:[],stateMutability:"nonpayable",type:"function"}],a="0x60806040523480156200001157600080fd5b50604051620026c7380380620026c78339818101604052810190620000379190620001a5565b620000576200004b6200006f60201b60201c565b6200007760201b60201c565b62000068816200007760201b60201c565b50620001d7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200016d8262000140565b9050919050565b6200017f8162000160565b81146200018b57600080fd5b50565b6000815190506200019f8162000174565b92915050565b600060208284031215620001be57620001bd6200013b565b5b6000620001ce848285016200018e565b91505092915050565b6124e080620001e76000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063946647f111610071578063946647f114610153578063ad2f5be614610171578063ad6d61061461018d578063c0d78655146101a9578063c31c9c07146101c5578063f2fde38b146101e3576100b4565b80631d7bc74b146100b957806330e175c9146100d55780633e952c1a146100f1578063715018a61461010f5780637a38d1cb146101195780638da5cb5b14610135575b600080fd5b6100d360048036038101906100ce9190611554565b6101ff565b005b6100ef60048036038101906100ea91906115df565b610285565b005b6100f9610302565b604051610106919061161b565b60405180910390f35b610117610308565b005b610133600480360381019061012e91906115df565b610390565b005b61013d610450565b60405161014a9190611645565b60405180910390f35b61015b610479565b60405161016891906116bf565b60405180910390f35b61018b600480360381019061018691906116da565b61049f565b005b6101a760048036038101906101a29190611928565b6104fb565b005b6101c360048036038101906101be91906115df565b610b91565b005b6101cd610c51565b6040516101da9190611a91565b60405180910390f35b6101fd60048036038101906101f891906115df565b610c77565b005b610207610d6f565b73ffffffffffffffffffffffffffffffffffffffff16610225610450565b73ffffffffffffffffffffffffffffffffffffffff161461027b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027290611b09565b60405180910390fd5b8060038190555050565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506102fc600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d779092919063ffffffff16565b50505050565b60035481565b610310610d6f565b73ffffffffffffffffffffffffffffffffffffffff1661032e610450565b73ffffffffffffffffffffffffffffffffffffffff1614610384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037b90611b09565b60405180910390fd5b61038e6000610eab565b565b610398610d6f565b73ffffffffffffffffffffffffffffffffffffffff166103b6610450565b73ffffffffffffffffffffffffffffffffffffffff161461040c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040390611b09565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506104f483828473ffffffffffffffffffffffffffffffffffffffff16610d779092919063ffffffff16565b5050505050565b856001875161050a9190611b58565b8151811061051b5761051a611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1687600189516105489190611b58565b8151811061055957610558611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061e90611cbf565b60405180910390fd5b6000610634878b87610f6f565b905060006103e8600354836106499190611cdf565b6106539190611d68565b905061069d33308c8c60008151811061066f5761066e611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16611034909392919063ffffffff16565b6106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d390611e0b565b60405180910390fd5b6106f48d8b8b8785876106ef9190611e2b565b61116b565b60008d90508073ffffffffffffffffffffffffffffffffffffffff16633af2c0128e8e8c8c8c8c8a8c6040518963ffffffff1660e01b8152600401610740989796959493929190611fc7565b600060405180830381600087803b15801561075a57600080fd5b505af192505050801561076b575060015b6107dc573d806000811461079b576040519150601f19603f3d011682016040523d82523d6000602084013e6107a0565b606091505b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d39061209f565b60405180910390fd5b61082e86838c60018e516107f09190611b58565b8151811061080157610800611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166113d69092919063ffffffff16565b5060008a60008151811061084557610844611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108859190611645565b60206040518083038186803b15801561089d57600080fd5b505afa1580156108b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d591906120d4565b11156109c6576109c4338b6000815181106108f3576108f2611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109339190611645565b60206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098391906120d4565b8c60008151811061099757610996611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166113d69092919063ffffffff16565b505b60008a60018c516109d79190611b58565b815181106109e8576109e7611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a289190611645565b60206040518083038186803b158015610a4057600080fd5b505afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7891906120d4565b1115610b8157610b7f338b60018d51610a919190611b58565b81518110610aa257610aa1611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ae29190611645565b60206040518083038186803b158015610afa57600080fd5b505afa158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3291906120d4565b8c60018e51610b419190611b58565b81518110610b5257610b51611b8c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166113d69092919063ffffffff16565b505b5050505050505050505050505050565b610b99610d6f565b73ffffffffffffffffffffffffffffffffffffffff16610bb7610450565b73ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490611b09565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c7f610d6f565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610450565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90611b09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90612173565b60405180910390fd5b610d6c81610eab565b50565b600033905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610da6929190612193565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e3091906121f8565b6000604051808303816000865af19150503d8060008114610e6d576040519150601f19603f3d011682016040523d82523d6000602084013e610e72565b606091505b5091509150818015610ea05750600081511480610e9f575080806020019051810190610e9e9190612247565b5b5b925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbd4122a8385610fbb9190611e2b565b866040518363ffffffff1660e01b8152600401610fd9929190612274565b604080518083038186803b158015610ff057600080fd5b505afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906122a4565b50809150509392505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff16868686604051602401611065939291906122e4565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ef91906121f8565b6000604051808303816000865af19150503d806000811461112c576040519150601f19603f3d011682016040523d82523d6000602084013e611131565b606091505b509150915081801561115f575060008151148061115e57508080602001905181019061115d9190612247565b5b5b92505050949350505050565b60008360008151811061118157611180611b8c565b5b60200260200101519050848173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016111e992919061231b565b60206040518083038186803b15801561120157600080fd5b505afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123991906120d4565b10156112495761124881610285565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee83878730886040518663ffffffff1660e01b81526004016112ac959493929190612344565b600060405180830381600087803b1580156112c657600080fd5b505af11580156112da573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113039190612461565b50600084600186516113159190611b58565b8151811061132657611325611b8c565b5b60200260200101519050828173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e308a6040518363ffffffff1660e01b815260040161136c92919061231b565b60206040518083038186803b15801561138457600080fd5b505afa158015611398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bc91906120d4565b10156113cd576113cc818861049f565b5b50505050505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401611405929190612193565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161148f91906121f8565b6000604051808303816000865af19150503d80600081146114cc576040519150601f19603f3d011682016040523d82523d6000602084013e6114d1565b606091505b50915091508180156114ff57506000815114806114fe5750808060200190518101906114fd9190612247565b5b5b925050509392505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6115318161151e565b811461153c57600080fd5b50565b60008135905061154e81611528565b92915050565b60006020828403121561156a57611569611514565b5b60006115788482850161153f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115ac82611581565b9050919050565b6115bc816115a1565b81146115c757600080fd5b50565b6000813590506115d9816115b3565b92915050565b6000602082840312156115f5576115f4611514565b5b6000611603848285016115ca565b91505092915050565b6116158161151e565b82525050565b6000602082019050611630600083018461160c565b92915050565b61163f816115a1565b82525050565b600060208201905061165a6000830184611636565b92915050565b6000819050919050565b600061168561168061167b84611581565b611660565b611581565b9050919050565b60006116978261166a565b9050919050565b60006116a98261168c565b9050919050565b6116b98161169e565b82525050565b60006020820190506116d460008301846116b0565b92915050565b600080604083850312156116f1576116f0611514565b5b60006116ff858286016115ca565b9250506020611710858286016115ca565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6117688261171f565b810181811067ffffffffffffffff8211171561178757611786611730565b5b80604052505050565b600061179a61150a565b90506117a6828261175f565b919050565b600067ffffffffffffffff8211156117c6576117c5611730565b5b602082029050602081019050919050565b600080fd5b60006117ef6117ea846117ab565b611790565b90508083825260208201905060208402830185811115611812576118116117d7565b5b835b8181101561183b578061182788826115ca565b845260208401935050602081019050611814565b5050509392505050565b600082601f83011261185a5761185961171a565b5b813561186a8482602086016117dc565b91505092915050565b600080fd5b600067ffffffffffffffff82111561189357611892611730565b5b61189c8261171f565b9050602081019050919050565b82818337600083830152505050565b60006118cb6118c684611878565b611790565b9050828152602081018484840111156118e7576118e6611873565b5b6118f28482856118a9565b509392505050565b600082601f83011261190f5761190e61171a565b5b813561191f8482602086016118b8565b91505092915050565b60008060008060008060008060008060006101608c8e03121561194e5761194d611514565b5b600061195c8e828f016115ca565b9b5050602061196d8e828f016115ca565b9a5050604061197e8e828f0161153f565b995050606061198f8e828f0161153f565b98505060808c013567ffffffffffffffff8111156119b0576119af611519565b5b6119bc8e828f01611845565b97505060a08c013567ffffffffffffffff8111156119dd576119dc611519565b5b6119e98e828f01611845565b96505060c08c013567ffffffffffffffff811115611a0a57611a09611519565b5b611a168e828f016118fa565b95505060e0611a278e828f0161153f565b945050610100611a398e828f016115ca565b935050610120611a4b8e828f0161153f565b925050610140611a5d8e828f0161153f565b9150509295989b509295989b9093969950565b6000611a7b8261168c565b9050919050565b611a8b81611a70565b82525050565b6000602082019050611aa66000830184611a82565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611af3602083611aac565b9150611afe82611abd565b602082019050919050565b60006020820190508181036000830152611b2281611ae6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b638261151e565b9150611b6e8361151e565b925082821015611b8157611b80611b29565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f7468652072657175657374656420746f6b656e206f6e2074686520737761702060008201527f726f75746572206d75737420626520746865207061796d656e7420637572726560208201527f6e63790000000000000000000000000000000000000000000000000000000000604082015250565b6000611c3d604383611aac565b9150611c4882611bbb565b606082019050919050565b60006020820190508181036000830152611c6c81611c30565b9050919050565b7f496e76616c696420666565206164647265730000000000000000000000000000600082015250565b6000611ca9601283611aac565b9150611cb482611c73565b602082019050919050565b60006020820190508181036000830152611cd881611c9c565b9050919050565b6000611cea8261151e565b9150611cf58361151e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d2e57611d2d611b29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611d738261151e565b9150611d7e8361151e565b925082611d8e57611d8d611d39565b5b828204905092915050565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b6000611df5603383611aac565b9150611e0082611d99565b604082019050919050565b60006020820190508181036000830152611e2481611de8565b9050919050565b6000611e368261151e565b9150611e418361151e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e7657611e75611b29565b5b828201905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611eb6816115a1565b82525050565b6000611ec88383611ead565b60208301905092915050565b6000602082019050919050565b6000611eec82611e81565b611ef68185611e8c565b9350611f0183611e9d565b8060005b83811015611f32578151611f198882611ebc565b9750611f2483611ed4565b925050600181019050611f05565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f79578082015181840152602081019050611f5e565b83811115611f88576000848401525b50505050565b6000611f9982611f3f565b611fa38185611f4a565b9350611fb3818560208601611f5b565b611fbc8161171f565b840191505092915050565b600061010082019050611fdd600083018b611636565b611fea602083018a61160c565b8181036040830152611ffc8189611ee1565b905081810360608301526120108188611f8e565b905061201f608083018761160c565b61202c60a0830186611636565b61203960c083018561160c565b61204660e083018461160c565b9998505050505050505050565b7f496e76616c6964207061796d656e742070726f78790000000000000000000000600082015250565b6000612089601583611aac565b915061209482612053565b602082019050919050565b600060208201905081810360008301526120b88161207c565b9050919050565b6000815190506120ce81611528565b92915050565b6000602082840312156120ea576120e9611514565b5b60006120f8848285016120bf565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061215d602683611aac565b915061216882612101565b604082019050919050565b6000602082019050818103600083015261218c81612150565b9050919050565b60006040820190506121a86000830185611636565b6121b5602083018461160c565b9392505050565b600081905092915050565b60006121d282611f3f565b6121dc81856121bc565b93506121ec818560208601611f5b565b80840191505092915050565b600061220482846121c7565b915081905092915050565b60008115159050919050565b6122248161220f565b811461222f57600080fd5b50565b6000815190506122418161221b565b92915050565b60006020828403121561225d5761225c611514565b5b600061226b84828501612232565b91505092915050565b6000604082019050612289600083018561160c565b818103602083015261229b8184611ee1565b90509392505050565b600080604083850312156122bb576122ba611514565b5b60006122c9858286016120bf565b92505060206122da858286016120bf565b9150509250929050565b60006060820190506122f96000830186611636565b6123066020830185611636565b612313604083018461160c565b949350505050565b60006040820190506123306000830185611636565b61233d6020830184611636565b9392505050565b600060a082019050612359600083018861160c565b612366602083018761160c565b81810360408301526123788186611ee1565b90506123876060830185611636565b612394608083018461160c565b9695505050505050565b600067ffffffffffffffff8211156123b9576123b8611730565b5b602082029050602081019050919050565b60006123dd6123d88461239e565b611790565b90508083825260208201905060208402830185811115612400576123ff6117d7565b5b835b81811015612429578061241588826120bf565b845260208401935050602081019050612402565b5050509392505050565b600082601f8301126124485761244761171a565b5b81516124588482602086016123ca565b91505092915050565b60006020828403121561247757612476611514565b5b600082015167ffffffffffffffff81111561249557612494611519565b5b6124a184828501612433565b9150509291505056fea26469706673582212207dca6640f9f7c6efbbc63e24d307c8e42c74cbdab2effc4340482043a31e58d764736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20SwapToConversion__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ISwapRouter__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ISwapRouter__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20SwapToPay__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b506040516200200a3803806200200a833981810160405281019062000037919062000217565b620000576200004b620000e160201b60201c565b620000e960201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200025e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001df82620001b2565b9050919050565b620001f181620001d2565b8114620001fd57600080fd5b50565b6000815190506200021181620001e6565b92915050565b60008060408385031215620002315762000230620001ad565b5b6000620002418582860162000200565b9250506020620002548582860162000200565b9150509250929050565b611d9c806200026e6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461011f578063a09b241d1461013d578063c0d7865514610159578063c31c9c0714610175578063f2fde38b146101935761009e565b806330e175c9146100a35780633cd3efef146100bf578063715018a6146100dd5780637262b4c5146100e75780638d09fe2b14610103575b600080fd5b6100bd60048036038101906100b89190611218565b6101af565b005b6100c761022c565b6040516100d491906112a4565b60405180910390f35b6100e5610252565b005b61010160048036038101906100fc9190611218565b6102da565b005b61011d600480360381019061011891906113b0565b61039a565b005b610127610ab7565b60405161013491906114b6565b60405180910390f35b61015760048036038101906101529190611218565b610ae0565b005b610173600480360381019061016e9190611218565b610b5d565b005b61017d610c1d565b60405161018a91906114f2565b60405180910390f35b6101ad60048036038101906101a89190611218565b610c43565b005b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610226600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d3b9092919063ffffffff16565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61025a610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610278610ab7565b73ffffffffffffffffffffffffffffffffffffffff16146102ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c59061156a565b60405180910390fd5b6102d86000610e77565b565b6102e2610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610300610ab7565b73ffffffffffffffffffffffffffffffffffffffff1614610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061156a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000878760008181106103b0576103af61158a565b5b90506020020160208101906103c59190611218565b90506000888860018b8b90506103db91906115e8565b8181106103eb576103ea61158a565b5b90506020020160208101906104009190611218565b90506000858c610410919061161c565b90508a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161044e929190611672565b60206040518083038186803b15801561046657600080fd5b505afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906116b0565b116104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d59061174f565b60405180910390fd5b61050b33308d8673ffffffffffffffffffffffffffffffffffffffff16610f3b909392919063ffffffff16565b61054a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610541906117e1565b60405180910390fd5b8a8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105a8929190611672565b60206040518083038186803b1580156105c057600080fd5b505afa1580156105d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f891906116b0565b101561060857610607836101af565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee828d8d8d308a6040518763ffffffff1660e01b815260040161066d969594939291906118d3565b600060405180830381600087803b15801561068757600080fd5b505af115801561069b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106c49190611a7e565b50808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401610723929190611672565b60206040518083038186803b15801561073b57600080fd5b505afa15801561074f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077391906116b0565b10156107835761078282610ae0565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c219a14d838f8f8c8c8c8c6040518863ffffffff1660e01b81526004016107ea9796959493929190611b14565b600060405180830381600087803b15801561080457600080fd5b505af1158015610818573d6000803e3d6000fd5b5050505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161085791906114b6565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116b0565b111561096257610960338473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108ea91906114b6565b60206040518083038186803b15801561090257600080fd5b505afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906116b0565b8573ffffffffffffffffffffffffffffffffffffffff166110729092919063ffffffff16565b505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161099d91906114b6565b60206040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906116b0565b1115610aa857610aa6338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a3091906114b6565b60206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906116b0565b8473ffffffffffffffffffffffffffffffffffffffff166110729092919063ffffffff16565b505b50505050505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610d3b9092919063ffffffff16565b50505050565b610b65610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610b83610ab7565b73ffffffffffffffffffffffffffffffffffffffff1614610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd09061156a565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c4b610e6f565b73ffffffffffffffffffffffffffffffffffffffff16610c69610ab7565b73ffffffffffffffffffffffffffffffffffffffff1614610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb69061156a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690611bf0565b60405180910390fd5b610d3881610e77565b50565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610d6a929190611c10565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610df49190611cb3565b6000604051808303816000865af19150503d8060008114610e31576040519150601f19603f3d011682016040523d82523d6000602084013e610e36565b606091505b5091509150818015610e645750600081511480610e63575080806020019051810190610e629190611d02565b5b5b925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008673ffffffffffffffffffffffffffffffffffffffff16868686604051602401610f6c93929190611d2f565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610ff69190611cb3565b6000604051808303816000865af19150503d8060008114611033576040519150601f19603f3d011682016040523d82523d6000602084013e611038565b606091505b509150915081801561106657506000815114806110655750808060200190518101906110649190611d02565b5b5b92505050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1685856040516024016110a1929190611c10565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161112b9190611cb3565b6000604051808303816000865af19150503d8060008114611168576040519150601f19603f3d011682016040523d82523d6000602084013e61116d565b606091505b509150915081801561119b575060008151148061119a5750808060200190518101906111999190611d02565b5b5b925050509392505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111e5826111ba565b9050919050565b6111f5816111da565b811461120057600080fd5b50565b600081359050611212816111ec565b92915050565b60006020828403121561122e5761122d6111b0565b5b600061123c84828501611203565b91505092915050565b6000819050919050565b600061126a611265611260846111ba565b611245565b6111ba565b9050919050565b600061127c8261124f565b9050919050565b600061128e82611271565b9050919050565b61129e81611283565b82525050565b60006020820190506112b96000830184611295565b92915050565b6000819050919050565b6112d2816112bf565b81146112dd57600080fd5b50565b6000813590506112ef816112c9565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261131a576113196112f5565b5b8235905067ffffffffffffffff811115611337576113366112fa565b5b602083019150836020820283011115611353576113526112ff565b5b9250929050565b60008083601f8401126113705761136f6112f5565b5b8235905067ffffffffffffffff81111561138d5761138c6112fa565b5b6020830191508360018202830111156113a9576113a86112ff565b5b9250929050565b6000806000806000806000806000806101008b8d0312156113d4576113d36111b0565b5b60006113e28d828e01611203565b9a505060206113f38d828e016112e0565b99505060406114048d828e016112e0565b98505060608b013567ffffffffffffffff811115611425576114246111b5565b5b6114318d828e01611304565b975097505060808b013567ffffffffffffffff811115611454576114536111b5565b5b6114608d828e0161135a565b955095505060a06114738d828e016112e0565b93505060c06114848d828e01611203565b92505060e06114958d828e016112e0565b9150509295989b9194979a5092959850565b6114b0816111da565b82525050565b60006020820190506114cb60008301846114a7565b92915050565b60006114dc82611271565b9050919050565b6114ec816114d1565b82525050565b600060208201905061150760008301846114e3565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061155460208361150d565b915061155f8261151e565b602082019050919050565b6000602082019050818103600083015261158381611547565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f3826112bf565b91506115fe836112bf565b925082821015611611576116106115b9565b5b828203905092915050565b6000611627826112bf565b9150611632836112bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611667576116666115b9565b5b828201905092915050565b600060408201905061168760008301856114a7565b61169460208301846114a7565b9392505050565b6000815190506116aa816112c9565b92915050565b6000602082840312156116c6576116c56111b0565b5b60006116d48482850161169b565b91505092915050565b7f4e6f742073756666696369656e7420616c6c6f77616e636520666f722073776160008201527f7020746f207061792e0000000000000000000000000000000000000000000000602082015250565b600061173960298361150d565b9150611744826116dd565b604082019050919050565b600060208201905081810360008301526117688161172c565b9050919050565b7f436f756c64206e6f74207472616e73666572207061796d656e7420746f6b656e60008201527f2066726f6d20737761707065722d706179657200000000000000000000000000602082015250565b60006117cb60338361150d565b91506117d68261176f565b604082019050919050565b600060208201905081810360008301526117fa816117be565b9050919050565b61180a816112bf565b82525050565b600082825260208201905092915050565b6000819050919050565b611834816111da565b82525050565b6000611846838361182b565b60208301905092915050565b60006118616020840184611203565b905092915050565b6000602082019050919050565b60006118828385611810565b935061188d82611821565b8060005b858110156118c6576118a38284611852565b6118ad888261183a565b97506118b883611869565b925050600181019050611891565b5085925050509392505050565b600060a0820190506118e86000830189611801565b6118f56020830188611801565b8181036040830152611908818688611876565b905061191760608301856114a7565b6119246080830184611801565b979650505050505050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119788261192f565b810181811067ffffffffffffffff8211171561199757611996611940565b5b80604052505050565b60006119aa6111a6565b90506119b6828261196f565b919050565b600067ffffffffffffffff8211156119d6576119d5611940565b5b602082029050602081019050919050565b60006119fa6119f5846119bb565b6119a0565b90508083825260208201905060208402830185811115611a1d57611a1c6112ff565b5b835b81811015611a465780611a32888261169b565b845260208401935050602081019050611a1f565b5050509392505050565b600082601f830112611a6557611a646112f5565b5b8151611a758482602086016119e7565b91505092915050565b600060208284031215611a9457611a936111b0565b5b600082015167ffffffffffffffff811115611ab257611ab16111b5565b5b611abe84828501611a50565b91505092915050565b600082825260208201905092915050565b82818337600083830152505050565b6000611af38385611ac7565b9350611b00838584611ad8565b611b098361192f565b840190509392505050565b600060c082019050611b29600083018a6114a7565b611b3660208301896114a7565b611b436040830188611801565b8181036060830152611b56818688611ae7565b9050611b656080830185611801565b611b7260a08301846114a7565b98975050505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611bda60268361150d565b9150611be582611b7e565b604082019050919050565b60006020820190508181036000830152611c0981611bcd565b9050919050565b6000604082019050611c2560008301856114a7565b611c326020830184611801565b9392505050565b600081519050919050565b600081905092915050565b60005b83811015611c6d578082015181840152602081019050611c52565b83811115611c7c576000848401525b50505050565b6000611c8d82611c39565b611c978185611c44565b9350611ca7818560208601611c4f565b80840191505092915050565b6000611cbf8284611c82565b915081905092915050565b60008115159050919050565b611cdf81611cca565b8114611cea57600080fd5b50565b600081519050611cfc81611cd6565b92915050565b600060208284031215611d1857611d176111b0565b5b6000611d2684828501611ced565b91505092915050565b6000606082019050611d4460008301866114a7565b611d5160208301856114a7565b611d5e6040830184611801565b94935050505056fea26469706673582212206209345f9c6c98dc25a06526a743c6a290c8b9236eac7fdc3eab8ad2fdb9979a64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20SwapToPay__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IUniswapV2Router02__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IUniswapV2Router02__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthConversionProxy__factory=void 0;const n=r(4),f=[{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"},{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:[],name:"chainlinkConversionPath",outputs:[{internalType:"contract ChainlinkConversionPath",name:"",type:"address"}],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:"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:[],name:"renounceWhitelistAdmin",outputs:[],stateMutability:"nonpayable",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"},{inputs:[{internalType:"address",name:"_chainlinkConversionPathAddress",type:"address"}],name:"updateConversionPathAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_paymentProxyAddress",type:"address"}],name:"updateConversionProxyAddress",outputs:[],stateMutability:"nonpayable",type:"function"}],a="0x60806040523480156200001157600080fd5b5060405162001bf438038062001bf483398181016040528101906200003791906200037c565b60016000819055506200005f620000536200012b60201b60201c565b6200013360201b60201c565b82600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620004f3565b600033905090565b6200014e8160016200019460201b620007221790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620001a682826200024760201b60201c565b15620001e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e09062000439565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b290620004d1565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003448262000317565b9050919050565b620003568162000337565b81146200036257600080fd5b50565b60008151905062000376816200034b565b92915050565b60008060006060848603121562000398576200039762000312565b5b6000620003a88682870162000365565b9350506020620003bb8682870162000365565b9250506040620003ce8682870162000365565b9150509250925092565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062000421601f83620003d8565b91506200042e82620003e9565b602082019050919050565b60006020820190508181036000830152620004548162000412565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620004b9602283620003d8565b9150620004c6826200045b565b604082019050919050565b60006020820190508181036000830152620004ec81620004aa565b9050919050565b6116f180620005036000396000f3fe6080604052600436106100865760003560e01c80637a38d1cb116100595780637a38d1cb1461011f578063946647f114610148578063ac473c8a14610173578063bb5f747b1461018f578063d515bb03146101cc57610086565b80633cd3efef1461008b5780634c5a628c146100b65780635536bcde146100cd5780637362d9c8146100f6575b600080fd5b34801561009757600080fd5b506100a06101f7565b6040516100ad9190610b86565b60405180910390f35b3480156100c257600080fd5b506100cb61021d565b005b3480156100d957600080fd5b506100f460048036038101906100ef9190610bd7565b61022f565b005b34801561010257600080fd5b5061011d60048036038101906101189190610bd7565b6102c2565b005b34801561012b57600080fd5b5061014660048036038101906101419190610bd7565b61031d565b005b34801561015457600080fd5b5061015d6103b0565b60405161016a9190610c63565b60405180910390f35b61018d60048036038101906101889190610d6f565b6103d6565b005b34801561019b57600080fd5b506101b660048036038101906101b19190610bd7565b6106df565b6040516101c39190610e6c565b60405180910390f35b3480156101d857600080fd5b506101e16106fc565b6040516101ee9190610b86565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61022d6102286107ca565b6107d2565b565b61023f61023a6107ca565b6106df565b61027e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027590610f0a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6102d26102cd6107ca565b6106df565b610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030890610f0a565b60405180910390fd5b61031a8161082c565b50565b61032d6103286107ca565b6106df565b61036c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036390610f0a565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878760018a8a90506104219190610f59565b81811061043157610430610f8d565b5b90506020020160208101906104469190610bd7565b73ffffffffffffffffffffffffffffffffffffffff161461049c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104939061102e565b60405180910390fd5b6000806104ec898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8786610886565b915091506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c848a8a868a604051602401610546969594939291906110bb565b6040516020818303038152906040527fd7c95e98000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105d09190611191565b600060405180830381855af49150503d806000811461060b576040519150601f19603f3d011682016040523d82523d6000602084013e610610565b606091505b5050905080610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b9061121a565b60405180910390fd5b878760405161066492919061125f565b60405180910390207f96d0d1d75923f40b50f6fe74613b2c23239149607848fbca3941fee7ac041cdc8c8c8c60008181106106a2576106a1610f8d565b5b90506020020160208101906106b79190610bd7565b89886040516106c99493929190611278565b60405180910390a2505050505050505050505050565b60006106f58260016109d690919063ffffffff16565b9050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61072c82826109d6565b1561076c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076390611309565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6107e6816001610a9e90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61084081600161072290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6000806000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397edd4fa8a6040518263ffffffff1660e01b81526004016108e991906113e7565b60606040518083038186803b15801561090157600080fd5b505afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610939919061141e565b925092509250600086148061095957508582426109569190610f59565b11155b610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f906114bd565b60405180910390fd5b8083896109a591906114dd565b6109af9190611566565b94508083886109be91906114dd565b6109c89190611566565b935050505094509492505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e90611609565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610aa882826109d6565b610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade9061169b565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b7082610b45565b9050919050565b610b8081610b65565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b600080fd5b600080fd5b610bb481610b65565b8114610bbf57600080fd5b50565b600081359050610bd181610bab565b92915050565b600060208284031215610bed57610bec610ba1565b5b6000610bfb84828501610bc2565b91505092915050565b6000819050919050565b6000610c29610c24610c1f84610b45565b610c04565b610b45565b9050919050565b6000610c3b82610c0e565b9050919050565b6000610c4d82610c30565b9050919050565b610c5d81610c42565b82525050565b6000602082019050610c786000830184610c54565b92915050565b6000819050919050565b610c9181610c7e565b8114610c9c57600080fd5b50565b600081359050610cae81610c88565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610cd957610cd8610cb4565b5b8235905067ffffffffffffffff811115610cf657610cf5610cb9565b5b602083019150836020820283011115610d1257610d11610cbe565b5b9250929050565b60008083601f840112610d2f57610d2e610cb4565b5b8235905067ffffffffffffffff811115610d4c57610d4b610cb9565b5b602083019150836001820283011115610d6857610d67610cbe565b5b9250929050565b600080600080600080600080600060e08a8c031215610d9157610d90610ba1565b5b6000610d9f8c828d01610bc2565b9950506020610db08c828d01610c9f565b98505060408a013567ffffffffffffffff811115610dd157610dd0610ba6565b5b610ddd8c828d01610cc3565b975097505060608a013567ffffffffffffffff811115610e0057610dff610ba6565b5b610e0c8c828d01610d19565b95509550506080610e1f8c828d01610c9f565b93505060a0610e308c828d01610bc2565b92505060c0610e418c828d01610c9f565b9150509295985092959850929598565b60008115159050919050565b610e6681610e51565b82525050565b6000602082019050610e816000830184610e5d565b92915050565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b6000610ef4604083610e87565b9150610eff82610e98565b604082019050919050565b60006020820190508181036000830152610f2381610ee7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f6482610c7e565b9150610f6f83610c7e565b925082821015610f8257610f81610f2a565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f7061796d656e742063757272656e6379206d75737420626520746865206e617460008201527f69766520746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000611018602983610e87565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b61105781610c7e565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061109a838561105d565b93506110a783858461106e565b6110b08361107d565b840190509392505050565b600060a0820190506110d06000830189610b77565b6110dd602083018861104e565b81810360408301526110f081868861108e565b90506110ff606083018561104e565b61110c6080830184610b77565b979650505050505050565b600081519050919050565b600081905092915050565b60005b8381101561114b578082015181840152602081019050611130565b8381111561115a576000848401525b50505050565b600061116b82611117565b6111758185611122565b935061118581856020860161112d565b80840191505092915050565b600061119d8284611160565b915081905092915050565b7f7061796d656e7450726f7879207472616e73666572457861637445746857697460008201527f685265666572656e6365416e64466565206661696c6564000000000000000000602082015250565b6000611204603783610e87565b915061120f826111a8565b604082019050919050565b60006020820190508181036000830152611233816111f7565b9050919050565b60006112468385611122565b935061125383858461106e565b82840190509392505050565b600061126c82848661123a565b91508190509392505050565b600060808201905061128d600083018761104e565b61129a6020830186610b77565b6112a7604083018561104e565b6112b4606083018461104e565b95945050505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b60006112f3601f83610e87565b91506112fe826112bd565b602082019050919050565b60006020820190508181036000830152611322816112e6565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61135e81610b65565b82525050565b60006113708383611355565b60208301905092915050565b6000602082019050919050565b600061139482611329565b61139e8185611334565b93506113a983611345565b8060005b838110156113da5781516113c18882611364565b97506113cc8361137c565b9250506001810190506113ad565b5085935050505092915050565b600060208201905081810360008301526114018184611389565b905092915050565b60008151905061141881610c88565b92915050565b60008060006060848603121561143757611436610ba1565b5b600061144586828701611409565b935050602061145686828701611409565b925050604061146786828701611409565b9150509250925092565b7f61676772656761746f722072617465206973206f757464617465640000000000600082015250565b60006114a7601b83610e87565b91506114b282611471565b602082019050919050565b600060208201905081810360008301526114d68161149a565b9050919050565b60006114e882610c7e565b91506114f383610c7e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561152c5761152b610f2a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061157182610c7e565b915061157c83610c7e565b92508261158c5761158b611537565b5b828204905092915050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006115f3602283610e87565b91506115fe82611597565b604082019050919050565b60006020820190508181036000830152611622816115e6565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611685602183610e87565b915061169082611629565b604082019050919050565b600060208201905081810360008301526116b481611678565b905091905056fea26469706673582212203982943c4676b8a3867152f57674f7cadf33c287c338e7639a6eb63ca79dac7964736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EthConversionProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumFeeProxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50600160008190555061091f806100286000396000f3fe60806040526004361061002d5760003560e01c8063b868980b14610072578063d7c95e981461008e5761006d565b3661006d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006490610391565b60405180910390fd5b600080fd5b61008c600480360381019061008791906104b4565b6100aa565b005b6100a860048036038101906100a3919061053c565b6100ca565b005b6100c38583346100ba9190610605565b868686866100ca565b5050505050565b60026000541415610110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610685565b60405180910390fd5b600260008190555060008673ffffffffffffffffffffffffffffffffffffffff168660405161013e906106d6565b60006040518083038185875af1925050503d806000811461017b576040519150601f19603f3d011682016040523d82523d6000602084013e610180565b606091505b50509050806101c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bb90610737565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561020a573d6000803e3d6000fd5b5060003373ffffffffffffffffffffffffffffffffffffffff168488346102319190610605565b61023b9190610605565b604051610247906106d6565b60006040518083038185875af1925050503d8060008114610284576040519150601f19603f3d011682016040523d82523d6000602084013e610289565b606091505b50509050806102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c4906107c9565b60405180910390fd5b85856040516102dd92919061081d565b60405180910390207fa1c241e337c4610a9d0f881111e977e9dc8690c85fe2108897bb1483c66e6a968989878760405161031a94939291906108a4565b60405180910390a250506001600081905550505050505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b600061037b601383610334565b915061038682610345565b602082019050919050565b600060208201905081810360008301526103aa8161036e565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103e6826103bb565b9050919050565b6103f6816103db565b811461040157600080fd5b50565b600081359050610413816103ed565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261043e5761043d610419565b5b8235905067ffffffffffffffff81111561045b5761045a61041e565b5b60208301915083600182028301111561047757610476610423565b5b9250929050565b6000819050919050565b6104918161047e565b811461049c57600080fd5b50565b6000813590506104ae81610488565b92915050565b6000806000806000608086880312156104d0576104cf6103b1565b5b60006104de88828901610404565b955050602086013567ffffffffffffffff8111156104ff576104fe6103b6565b5b61050b88828901610428565b9450945050604061051e8882890161049f565b925050606061052f88828901610404565b9150509295509295909350565b60008060008060008060a08789031215610559576105586103b1565b5b600061056789828a01610404565b965050602061057889828a0161049f565b955050604087013567ffffffffffffffff811115610599576105986103b6565b5b6105a589828a01610428565b945094505060606105b889828a0161049f565b92505060806105c989828a01610404565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006106108261047e565b915061061b8361047e565b92508282101561062e5761062d6105d6565b5b828203905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061066f601f83610334565b915061067a82610639565b602082019050919050565b6000602082019050818103600083015261069e81610662565b9050919050565b600081905092915050565b50565b60006106c06000836106a5565b91506106cb826106b0565b600082019050919050565b60006106e1826106b3565b9150819050919050565b7f436f756c64206e6f74207061792074686520726563697069656e740000000000600082015250565b6000610721601b83610334565b915061072c826106eb565b602082019050919050565b6000602082019050818103600083015261075081610714565b9050919050565b7f436f756c64206e6f742073656e642072656d61696e696e672066756e6473207460008201527f6f20746865207061796572000000000000000000000000000000000000000000602082015250565b60006107b3602b83610334565b91506107be82610757565b604082019050919050565b600060208201905081810360008301526107e2816107a6565b9050919050565b82818337600083830152505050565b600061080483856106a5565b93506108118385846107e9565b82840190509392505050565b600061082a8284866107f8565b91508190509392505050565b6000819050919050565b600061085b610856610851846103bb565b610836565b6103bb565b9050919050565b600061086d82610840565b9050919050565b600061087f82610862565b9050919050565b61088f81610874565b82525050565b61089e8161047e565b82525050565b60006080820190506108b96000830187610886565b6108c66020830186610895565b6108d36040830185610895565b6108e06060830184610886565b9594505050505056fea2646970667358221220c6c0a6d1678f97752cd566ebf3a8613b60208f5f9b5d614959cb87aec29808d564736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EthereumFeeProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthereumProxy__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610506806100206000396000f3fe6080604052600436106100225760003560e01c8063eb7d8df31461006757610062565b36610062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610059906101e3565b60405180910390fd5b600080fd5b610081600480360381019061007c91906102d0565b610083565b005b60008373ffffffffffffffffffffffffffffffffffffffff16346040516100a990610361565b60006040518083038185875af1925050503d80600081146100e6576040519150601f19603f3d011682016040523d82523d6000602084013e6100eb565b606091505b505090508061012f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610126906103c2565b60405180910390fd5b828260405161013f929190610416565b60405180910390207ff20789bd5e67749fbe748d26a9ffacd11036adee6a64a8dbc70cc37a98b4e54285346040516101789291906104a7565b60405180910390a250505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b60006101cd601383610186565b91506101d882610197565b602082019050919050565b600060208201905081810360008301526101fc816101c0565b9050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102388261020d565b9050919050565b6102488161022d565b811461025357600080fd5b50565b6000813590506102658161023f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126102905761028f61026b565b5b8235905067ffffffffffffffff8111156102ad576102ac610270565b5b6020830191508360018202830111156102c9576102c8610275565b5b9250929050565b6000806000604084860312156102e9576102e8610203565b5b60006102f786828701610256565b935050602084013567ffffffffffffffff81111561031857610317610208565b5b6103248682870161027a565b92509250509250925092565b600081905092915050565b50565b600061034b600083610330565b91506103568261033b565b600082019050919050565b600061036c8261033e565b9150819050919050565b7f436f756c64206e6f74207061792074686520726563697069656e740000000000600082015250565b60006103ac601b83610186565b91506103b782610376565b602082019050919050565b600060208201905081810360008301526103db8161039f565b9050919050565b82818337600083830152505050565b60006103fd8385610330565b935061040a8385846103e2565b82840190509392505050565b60006104238284866103f1565b91508190509392505050565b6000819050919050565b600061045461044f61044a8461020d565b61042f565b61020d565b9050919050565b600061046682610439565b9050919050565b60006104788261045b565b9050919050565b6104888161046d565b82525050565b6000819050919050565b6104a18161048e565b82525050565b60006040820190506104bc600083018561047f565b6104c96020830184610498565b939250505056fea264697066735822122069babd0c358c5e5f58cb1c6b01fec7a1e2329e0d467ab12fd4a96030bf50b8b664736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EthereumProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FakeSwapRouter__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610c4c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638803dbee14610030575b600080fd5b61004a60048036038101906100459190610616565b610060565b604051610057919061076e565b60405180910390f35b606081428110156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d906107ed565b60405180910390fd5b600267ffffffffffffffff8111156100c1576100c061080d565b5b6040519080825280602002602001820160405280156100ef5781602001602082028036833780820191505090505b50915087826000815181106101075761010661083c565b5b602002602001018181525050600288610120919061089a565b826001815181106101345761013361083c565b5b60200260200101818152505086826001815181106101555761015461083c565b5b6020026020010151111561019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610966565b60405180910390fd5b6000868660008181106101b4576101b361083c565b5b90506020020160208101906101c99190610986565b90506000878760018181106101e1576101e061083c565b5b90506020020160208101906101f69190610986565b90508360008151811061020c5761020b61083c565b5b60200260200101518173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161024d91906109c2565b60206040518083038186803b15801561026557600080fd5b505afa158015610279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029d91906109f2565b116102dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d490610a91565b60405180910390fd5b6103253330866001815181106102f6576102f561083c565b5b60200260200101518573ffffffffffffffffffffffffffffffffffffffff166103dc909392919063ffffffff16565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87866000815181106103575761035661083c565b5b60200260200101516040518363ffffffff1660e01b815260040161037c929190610ac0565b602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ce9190610b21565b505050509695505050505050565b60008060008673ffffffffffffffffffffffffffffffffffffffff1686868660405160240161040d93929190610b4e565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104979190610bff565b6000604051808303816000865af19150503d80600081146104d4576040519150601f19603f3d011682016040523d82523d6000602084013e6104d9565b606091505b509150915081801561050757506000815114806105065750808060200190518101906105059190610b21565b5b5b92505050949350505050565b600080fd5b600080fd5b6000819050919050565b6105308161051d565b811461053b57600080fd5b50565b60008135905061054d81610527565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261057857610577610553565b5b8235905067ffffffffffffffff81111561059557610594610558565b5b6020830191508360208202830111156105b1576105b061055d565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105e3826105b8565b9050919050565b6105f3816105d8565b81146105fe57600080fd5b50565b600081359050610610816105ea565b92915050565b60008060008060008060a0878903121561063357610632610513565b5b600061064189828a0161053e565b965050602061065289828a0161053e565b955050604087013567ffffffffffffffff81111561067357610672610518565b5b61067f89828a01610562565b9450945050606061069289828a01610601565b92505060806106a389828a0161053e565b9150509295509295509295565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6106e58161051d565b82525050565b60006106f783836106dc565b60208301905092915050565b6000602082019050919050565b600061071b826106b0565b61072581856106bb565b9350610730836106cc565b8060005b8381101561076157815161074888826106eb565b975061075383610703565b925050600181019050610734565b5085935050505092915050565b600060208201905081810360008301526107888184610710565b905092915050565b600082825260208201905092915050565b7f556e69737761705632526f757465723a20455850495245440000000000000000600082015250565b60006107d7601883610790565b91506107e2826107a1565b602082019050919050565b60006020820190508181036000830152610806816107ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108a58261051d565b91506108b08361051d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108e9576108e861086b565b5b828202905092915050565b7f556e69737761705632526f757465723a204558434553534956455f494e50555460008201527f5f414d4f554e5400000000000000000000000000000000000000000000000000602082015250565b6000610950602783610790565b915061095b826108f4565b604082019050919050565b6000602082019050818103600083015261097f81610943565b9050919050565b60006020828403121561099c5761099b610513565b5b60006109aa84828501610601565b91505092915050565b6109bc816105d8565b82525050565b60006020820190506109d760008301846109b3565b92915050565b6000815190506109ec81610527565b92915050565b600060208284031215610a0857610a07610513565b5b6000610a16848285016109dd565b91505092915050565b7f546573742063616e6e6f742070726f636565642c206c61636b206f6620746f6b60008201527f656e7320696e2066616b65207377617020636f6e747261637400000000000000602082015250565b6000610a7b603983610790565b9150610a8682610a1f565b604082019050919050565b60006020820190508181036000830152610aaa81610a6e565b9050919050565b610aba8161051d565b82525050565b6000604082019050610ad560008301856109b3565b610ae26020830184610ab1565b9392505050565b60008115159050919050565b610afe81610ae9565b8114610b0957600080fd5b50565b600081519050610b1b81610af5565b92915050565b600060208284031215610b3757610b36610513565b5b6000610b4584828501610b0c565b91505092915050565b6000606082019050610b6360008301866109b3565b610b7060208301856109b3565b610b7d6040830184610ab1565b949350505050565b600081519050919050565b600081905092915050565b60005b83811015610bb9578082015181840152602081019050610b9e565b83811115610bc8576000848401525b50505050565b6000610bd982610b85565b610be38185610b90565b9350610bf3818560208601610b9b565b80840191505092915050565b6000610c0b8284610bce565b91508190509291505056fea264697066735822122070f792b150626b226f3d4105c42503f9ecc6cf4b1d28df16652c43b5db68424264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.FakeSwapRouter__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20FeeProxy__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20FeeProxy__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IEthereumFeeProxy__factory=void 0;const n=r(4),f=[{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:"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"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IEthereumFeeProxy__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IERC20ConversionProxy__factory=void 0;const n=r(4),f=[{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:[{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"}];class a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.IERC20ConversionProxy__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistAdminRole__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.WhitelistAdminRole__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WhitelistedRole__factory=void 0;const n=r(4),f=[{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 a{static createInterface(){return new n.utils.Interface(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.WhitelistedRole__factory=a,a.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Migrations__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610396806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b1461006d578063fbdbad3c1461008b578063fdacd576146100a9575b600080fd5b61006b6004803603810190610066919061027c565b6100c5565b005b610075610190565b60405161008291906102b8565b60405180910390f35b6100936101b4565b6040516100a091906102ec565b60405180910390f35b6100c360048036038101906100be9190610333565b6101ba565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018d5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040161015991906102ec565b600060405180830381600087803b15801561017357600080fd5b505af1158015610187573d6000803e3d6000fd5b50505050505b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561021657806001819055505b50565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102498261021e565b9050919050565b6102598161023e565b811461026457600080fd5b50565b60008135905061027681610250565b92915050565b60006020828403121561029257610291610219565b5b60006102a084828501610267565b91505092915050565b6102b28161023e565b82525050565b60006020820190506102cd60008301846102a9565b92915050565b6000819050919050565b6102e6816102d3565b82525050565b600060208201905061030160008301846102dd565b92915050565b610310816102d3565b811461031b57600080fd5b50565b60008135905061032d81610307565b92915050565b60006020828403121561034957610348610219565b5b60006103578482850161031e565b9150509291505056fea2646970667358221220f1e20f2bb570bab53085a7094487bd8ebbad2088431d3b4a25ed44a3758f903264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.Migrations__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestDeployer__factory=void 0;const n=r(4),f=[{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:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes32",name:"codeHash",type:"bytes32"}],name:"computeAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes32",name:"codeHash",type:"bytes32"},{internalType:"address",name:"deployer",type:"address"}],name:"computeAddressWithDeployer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"code",type:"bytes"}],name:"deploy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],name:"deployERC1820Implementer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"payoutAddress",type:"address"}],name:"killCreate2Deployer",outputs:[],stateMutability:"nonpayable",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:[],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"},{stateMutability:"payable",type:"receive"}],a="0x608060405234801561001057600080fd5b5061002d61002261004c60201b60201c565b61005460201b60201c565b60008060146101000a81548160ff021916908315150217905550610118565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115a3806101276000396000f3fe6080604052600436106100a05760003560e01c80636447045411610064578063644704541461019157806366cfa057146101ba578063715018a6146101e35780638456cb59146101fa5780638da5cb5b14610211578063f2fde38b1461023c576100a7565b8063076c37b2146100ac5780633f4ba83a146100d5578063481286e6146100ec57806356299481146101295780635c975abb14610166576100a7565b366100a757005b600080fd5b3480156100b857600080fd5b506100d360048036038101906100ce9190610b11565b610265565b005b3480156100e157600080fd5b506100ea6102e0565b005b3480156100f857600080fd5b50610113600480360381019061010e9190610b51565b610366565b6040516101209190610bd2565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610c19565b61037a565b60405161015d9190610bd2565b60405180910390f35b34801561017257600080fd5b5061017b610390565b6040516101889190610c87565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610ce0565b6103a6565b005b3480156101c657600080fd5b506101e160048036038101906101dc9190610e53565b610482565b005b3480156101ef57600080fd5b506101f86104db565b005b34801561020657600080fd5b5061020f610563565b005b34801561021d57600080fd5b506102266105e9565b6040516102339190610bd2565b60405180910390f35b34801561024857600080fd5b50610263600480360381019061025e9190610ec2565b610612565b005b61026d610390565b156102ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a490610f4c565b60405180910390fd5b6102db8282604051806020016102c290610a84565b6020820181038252601f19601f8201166040525061070a565b505050565b6102e861081b565b73ffffffffffffffffffffffffffffffffffffffff166103066105e9565b73ffffffffffffffffffffffffffffffffffffffff161461035c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035390610fb8565b60405180910390fd5b610364610823565b565b600061037283836108c4565b905092915050565b60006103878484846108d9565b90509392505050565b60008060149054906101000a900460ff16905090565b6103ae61081b565b73ffffffffffffffffffffffffffffffffffffffff166103cc6105e9565b73ffffffffffffffffffffffffffffffffffffffff1614610422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041990610fb8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610468573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff16ff5b61048a610390565b156104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c190610f4c565b60405180910390fd5b6104d583838361070a565b50505050565b6104e361081b565b73ffffffffffffffffffffffffffffffffffffffff166105016105e9565b73ffffffffffffffffffffffffffffffffffffffff1614610557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054e90610fb8565b60405180910390fd5b610561600061091d565b565b61056b61081b565b73ffffffffffffffffffffffffffffffffffffffff166105896105e9565b73ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d690610fb8565b60405180910390fd5b6105e76109e1565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61061a61081b565b73ffffffffffffffffffffffffffffffffffffffff166106386105e9565b73ffffffffffffffffffffffffffffffffffffffff161461068e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068590610fb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061104a565b60405180910390fd5b6107078161091d565b50565b60008084471015610750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610747906110b6565b60405180910390fd5b600083511415610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c90611122565b60405180910390fd5b8383516020850187f59050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108079061118e565b60405180910390fd5b809150509392505050565b600033905090565b61082b610390565b61086a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610861906111fa565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108ad61081b565b6040516108ba9190610bd2565b60405180910390a1565b60006108d18383306108d9565b905092915050565b60008060ff60f81b8386866040516020016108f794939291906112d0565b6040516020818303038152906040528051906020012090508060001c9150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6109e9610390565b15610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090610f4c565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610a6d61081b565b604051610a7a9190610bd2565b60405180910390a1565b61024f8061131f83390190565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610ab881610aa5565b8114610ac357600080fd5b50565b600081359050610ad581610aaf565b92915050565b6000819050919050565b610aee81610adb565b8114610af957600080fd5b50565b600081359050610b0b81610ae5565b92915050565b60008060408385031215610b2857610b27610a9b565b5b6000610b3685828601610ac6565b9250506020610b4785828601610afc565b9150509250929050565b60008060408385031215610b6857610b67610a9b565b5b6000610b7685828601610afc565b9250506020610b8785828601610afc565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bbc82610b91565b9050919050565b610bcc81610bb1565b82525050565b6000602082019050610be76000830184610bc3565b92915050565b610bf681610bb1565b8114610c0157600080fd5b50565b600081359050610c1381610bed565b92915050565b600080600060608486031215610c3257610c31610a9b565b5b6000610c4086828701610afc565b9350506020610c5186828701610afc565b9250506040610c6286828701610c04565b9150509250925092565b60008115159050919050565b610c8181610c6c565b82525050565b6000602082019050610c9c6000830184610c78565b92915050565b6000610cad82610b91565b9050919050565b610cbd81610ca2565b8114610cc857600080fd5b50565b600081359050610cda81610cb4565b92915050565b600060208284031215610cf657610cf5610a9b565b5b6000610d0484828501610ccb565b91505092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d6082610d17565b810181811067ffffffffffffffff82111715610d7f57610d7e610d28565b5b80604052505050565b6000610d92610a91565b9050610d9e8282610d57565b919050565b600067ffffffffffffffff821115610dbe57610dbd610d28565b5b610dc782610d17565b9050602081019050919050565b82818337600083830152505050565b6000610df6610df184610da3565b610d88565b905082815260208101848484011115610e1257610e11610d12565b5b610e1d848285610dd4565b509392505050565b600082601f830112610e3a57610e39610d0d565b5b8135610e4a848260208601610de3565b91505092915050565b600080600060608486031215610e6c57610e6b610a9b565b5b6000610e7a86828701610ac6565b9350506020610e8b86828701610afc565b925050604084013567ffffffffffffffff811115610eac57610eab610aa0565b5b610eb886828701610e25565b9150509250925092565b600060208284031215610ed857610ed7610a9b565b5b6000610ee684828501610c04565b91505092915050565b600082825260208201905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000610f36601083610eef565b9150610f4182610f00565b602082019050919050565b60006020820190508181036000830152610f6581610f29565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610fa2602083610eef565b9150610fad82610f6c565b602082019050919050565b60006020820190508181036000830152610fd181610f95565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611034602683610eef565b915061103f82610fd8565b604082019050919050565b6000602082019050818103600083015261106381611027565b9050919050565b7f437265617465323a20696e73756666696369656e742062616c616e6365000000600082015250565b60006110a0601d83610eef565b91506110ab8261106a565b602082019050919050565b600060208201905081810360008301526110cf81611093565b9050919050565b7f437265617465323a2062797465636f6465206c656e677468206973207a65726f600082015250565b600061110c602083610eef565b9150611117826110d6565b602082019050919050565b6000602082019050818103600083015261113b816110ff565b9050919050565b7f437265617465323a204661696c6564206f6e206465706c6f7900000000000000600082015250565b6000611178601983610eef565b915061118382611142565b602082019050919050565b600060208201905081810360008301526111a78161116b565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006111e4601483610eef565b91506111ef826111ae565b602082019050919050565b60006020820190508181036000830152611213816111d7565b9050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61126161125c8261121a565b611246565b82525050565b60008160601b9050919050565b600061127f82611267565b9050919050565b600061129182611274565b9050919050565b6112a96112a482610bb1565b611286565b82525050565b6000819050919050565b6112ca6112c582610adb565b6112af565b82525050565b60006112dc8287611250565b6001820191506112ec8286611298565b6014820191506112fc82856112b9565b60208201915061130c82846112b9565b6020820191508190509594505050505056fe608060405234801561001057600080fd5b5061022f806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063249cb3fa14610030575b600080fd5b61004a6004803603810190610045919061018f565b610060565b60405161005791906101de565b60405180910390f35b600080600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166100cc576000801b6100ee565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b905092915050565b600080fd5b6000819050919050565b61010e816100fb565b811461011957600080fd5b50565b60008135905061012b81610105565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061015c82610131565b9050919050565b61016c81610151565b811461017757600080fd5b50565b60008135905061018981610163565b92915050565b600080604083850312156101a6576101a56100f6565b5b60006101b48582860161011c565b92505060206101c58582860161017a565b9150509250929050565b6101d8816100fb565b82525050565b60006020820190506101f360008301846101cf565b9291505056fea26469706673582212200435afd8e1118415b91d8baf1ae8a7f465704298d05a42bc3ef694af903a059064736f6c63430008090033a26469706673582212209194a55d0440201b6b314b0361925f678e3d7d670fc9b227b54e8034ed15842a64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.RequestDeployer__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestHashStorage__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b6200033a565b600033905090565b6200005b816000620000a160201b620003741790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620000b382826200015460201b60201c565b15620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed9062000280565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bf9062000318565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062000268601f836200021f565b9150620002758262000230565b602082019050919050565b600060208201905081810360008301526200029b8162000259565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620003006022836200021f565b91506200030d82620002a2565b604082019050919050565b600060208201905081810360008301526200033381620002f1565b9050919050565b610ce0806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637362d9c81161005b5780637362d9c8146100ff578063bb5f747b1461011b578063d6cd94731461014b578063fe8cc9621461015557610088565b806310154bad1461008d578063291d9549146100a95780633af32abf146100c55780634c5a628c146100f5575b600080fd5b6100a760048036038101906100a29190610763565b610171565b005b6100c360048036038101906100be9190610763565b6101cc565b005b6100df60048036038101906100da9190610763565b610227565b6040516100ec91906107ab565b60405180910390f35b6100fd610244565b005b61011960048036038101906101149190610763565b610256565b005b61013560048036038101906101309190610763565b6102b1565b60405161014291906107ab565b60405180910390f35b6101536102ce565b005b61016f600480360381019061016a9190610881565b6102e0565b005b61018161017c61041c565b6102b1565b6101c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b790610985565b60405180910390fd5b6101c981610424565b50565b6101dc6101d761041c565b6102b1565b61021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021290610985565b60405180910390fd5b6102248161047e565b50565b600061023d8260016104d890919063ffffffff16565b9050919050565b61025461024f61041c565b6105a0565b565b61026661026161041c565b6102b1565b6102a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029c90610985565b60405180910390fd5b6102ae816105fa565b50565b60006102c78260006104d890919063ffffffff16565b9050919050565b6102de6102d961041c565b61047e565b565b6102f06102eb61041c565b610227565b61032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032690610a17565b60405180910390fd5b7f18d417de4779c6e73fd772de6d0f29ed8ff746805f1c997ef63a124ffb3f38e08484338585604051610366959493929190610ad1565b60405180910390a150505050565b61037e82826104d8565b156103be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b590610b66565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b61043881600161037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f60405160405180910390a250565b61049281600161065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054090610bf8565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6105b481600061065490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61060e81600061037490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b61065e82826104d8565b61069d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069490610c8a565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061073082610705565b9050919050565b61074081610725565b811461074b57600080fd5b50565b60008135905061075d81610737565b92915050565b600060208284031215610779576107786106fb565b5b60006107878482850161074e565b91505092915050565b60008115159050919050565b6107a581610790565b82525050565b60006020820190506107c0600083018461079c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126107eb576107ea6107c6565b5b8235905067ffffffffffffffff811115610808576108076107cb565b5b602083019150836001820283011115610824576108236107d0565b5b9250929050565b60008083601f840112610841576108406107c6565b5b8235905067ffffffffffffffff81111561085e5761085d6107cb565b5b60208301915083600182028301111561087a576108796107d0565b5b9250929050565b6000806000806040858703121561089b5761089a6106fb565b5b600085013567ffffffffffffffff8111156108b9576108b8610700565b5b6108c5878288016107d5565b9450945050602085013567ffffffffffffffff8111156108e8576108e7610700565b5b6108f48782880161082b565b925092505092959194509250565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b600061096f604083610902565b915061097a82610913565b604082019050919050565b6000602082019050818103600083015261099e81610962565b9050919050565b7f57686974656c6973746564526f6c653a2063616c6c657220646f6573206e6f7460008201527f2068617665207468652057686974656c697374656420726f6c65000000000000602082015250565b6000610a01603a83610902565b9150610a0c826109a5565b604082019050919050565b60006020820190508181036000830152610a30816109f4565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610a638385610902565b9350610a70838584610a37565b610a7983610a46565b840190509392505050565b610a8d81610725565b82525050565b600082825260208201905092915050565b6000610ab08385610a93565b9350610abd838584610a37565b610ac683610a46565b840190509392505050565b60006060820190508181036000830152610aec818789610a57565b9050610afb6020830186610a84565b8181036040830152610b0e818486610aa4565b90509695505050505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000610b50601f83610902565b9150610b5b82610b1a565b602082019050919050565b60006020820190508181036000830152610b7f81610b43565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610be2602283610902565b9150610bed82610b86565b604082019050919050565b60006020820190508181036000830152610c1181610bd5565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000610c74602183610902565b9150610c7f82610c18565b604082019050919050565b60006020820190508181036000830152610ca381610c67565b905091905056fea2646970667358221220c81af1882a54186f53c6e3386b6ca8acaf977bbd6fde58fe669877aaa752eab964736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.RequestHashStorage__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestOpenHashSubmitter__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b50604051620019fa380380620019fa833981810160405281019062000037919062000379565b80620000586200004c620000e360201b60201c565b620000eb60201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620004db565b600033905090565b620001068160006200014c60201b620006fc1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200015e8282620001ff60201b60201c565b15620001a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001989062000421565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000273576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026a90620004b9565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002fc82620002cf565b9050919050565b6200030e81620002ef565b81146200031a57600080fd5b50565b6000815190506200032e8162000303565b92915050565b60006200034182620002cf565b9050919050565b620003538162000334565b81146200035f57600080fd5b50565b600081519050620003738162000348565b92915050565b60008060408385031215620003935762000392620002ca565b5b6000620003a3858286016200031d565b9250506020620003b68582860162000362565b9150509250929050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b600062000409601f83620003c0565b91506200041682620003d1565b602082019050919050565b600060208201905081810360008301526200043c81620003fa565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620004a1602283620003c0565b9150620004ae8262000443565b604082019050919050565b60006020820190508181036000830152620004d48162000492565b9050919050565b61150f80620004eb6000396000f3fe6080604052600436106100ab5760003560e01c806375c268f31161006457806375c268f3146101cb5780638f5b87e1146101f6578063bb5f747b14610233578063cb2537cb14610270578063e40e845714610299578063f76f2256146102c4576100eb565b80631a7626e7146100f0578063263f6a421461011b5780634c5a628c1461014657806351a58abb1461015d578063524eb29c146101795780637362d9c8146101a2576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290610b05565b60405180910390fd5b600080fd5b3480156100fc57600080fd5b506101056102ef565b6040516101129190610b3e565b60405180910390f35b34801561012757600080fd5b506101306102f5565b60405161013d9190610b3e565b60405180910390f35b34801561015257600080fd5b5061015b6102fb565b005b61017760048036038101906101729190610c1e565b61030d565b005b34801561018557600080fd5b506101a0600480360381019061019b9190610cfd565b610450565b005b3480156101ae57600080fd5b506101c960048036038101906101c49190610d68565b61053c565b005b3480156101d757600080fd5b506101e0610597565b6040516101ed9190610b3e565b60405180910390f35b34801561020257600080fd5b5061021d60048036038101906102189190610dc1565b61059d565b60405161022a9190610b3e565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190610d68565b6105e9565b6040516102679190610e09565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190610e24565b610606565b005b3480156102a557600080fd5b506102ae6106b0565b6040516102bb9190610e86565b60405180910390f35b3480156102d057600080fd5b506102d96106d6565b6040516102e69190610f00565b60405180910390f35b60015481565b60025481565b61030b6103066107a4565b6107ac565b565b600061035e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506000610806565b60001c90503461036d8261059d565b146103ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a490610f8d565b60405180910390fd5b6103b634610873565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe8cc962868686866040518563ffffffff1660e01b81526004016104179493929190611038565b600060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050505050505050565b61046061045b6107a4565b6105e9565b61049f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610496906110e5565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516105319190611126565b60405180910390a150565b61054c6105476107a4565b6105e9565b61058b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610582906110e5565b60405180910390fd5b610594816108df565b50565b60035481565b600080600254836105ae9190611170565b90506000600354146105cb57600354816105c891906111f9565b90505b60015481116105df576001549150506105e4565b809150505b919050565b60006105ff82600061093990919063ffffffff16565b9050919050565b6106166106116107a4565b6105e9565b610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c906110e5565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d166001546002546003546040516106a39392919061122a565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107068282610939565b15610746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073d906112ad565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6107c0816000610a0190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b60008082101580156108255750825160208361082291906112cd565b11155b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90611395565b60405180910390fd5b81602001830151905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b6108f38160006106fc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190611427565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610a0b8282610939565b610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a41906114b9565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082825260208201905092915050565b7f6e6f742070617961626c65207265636569766500000000000000000000000000600082015250565b6000610aef601383610aa8565b9150610afa82610ab9565b602082019050919050565b60006020820190508181036000830152610b1e81610ae2565b9050919050565b6000819050919050565b610b3881610b25565b82525050565b6000602082019050610b536000830184610b2f565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610b8857610b87610b63565b5b8235905067ffffffffffffffff811115610ba557610ba4610b68565b5b602083019150836001820283011115610bc157610bc0610b6d565b5b9250929050565b60008083601f840112610bde57610bdd610b63565b5b8235905067ffffffffffffffff811115610bfb57610bfa610b68565b5b602083019150836001820283011115610c1757610c16610b6d565b5b9250929050565b60008060008060408587031215610c3857610c37610b59565b5b600085013567ffffffffffffffff811115610c5657610c55610b5e565b5b610c6287828801610b72565b9450945050602085013567ffffffffffffffff811115610c8557610c84610b5e565b5b610c9187828801610bc8565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cca82610c9f565b9050919050565b610cda81610cbf565b8114610ce557600080fd5b50565b600081359050610cf781610cd1565b92915050565b600060208284031215610d1357610d12610b59565b5b6000610d2184828501610ce8565b91505092915050565b6000610d3582610c9f565b9050919050565b610d4581610d2a565b8114610d5057600080fd5b50565b600081359050610d6281610d3c565b92915050565b600060208284031215610d7e57610d7d610b59565b5b6000610d8c84828501610d53565b91505092915050565b610d9e81610b25565b8114610da957600080fd5b50565b600081359050610dbb81610d95565b92915050565b600060208284031215610dd757610dd6610b59565b5b6000610de584828501610dac565b91505092915050565b60008115159050919050565b610e0381610dee565b82525050565b6000602082019050610e1e6000830184610dfa565b92915050565b600080600060608486031215610e3d57610e3c610b59565b5b6000610e4b86828701610dac565b9350506020610e5c86828701610dac565b9250506040610e6d86828701610dac565b9150509250925092565b610e8081610cbf565b82525050565b6000602082019050610e9b6000830184610e77565b92915050565b6000819050919050565b6000610ec6610ec1610ebc84610c9f565b610ea1565b610c9f565b9050919050565b6000610ed882610eab565b9050919050565b6000610eea82610ecd565b9050919050565b610efa81610edf565b82525050565b6000602082019050610f156000830184610ef1565b92915050565b7f6d73672e76616c756520646f6573206e6f74206d61746368207468652066656560008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000610f77602183610aa8565b9150610f8282610f1b565b604082019050919050565b60006020820190508181036000830152610fa681610f6a565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610fd98385610aa8565b9350610fe6838584610fad565b610fef83610fbc565b840190509392505050565b600082825260208201905092915050565b60006110178385610ffa565b9350611024838584610fad565b61102d83610fbc565b840190509392505050565b60006040820190508181036000830152611053818688610fcd565b9050818103602083015261106881848661100b565b905095945050505050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b60006110cf604083610aa8565b91506110da82611073565b604082019050919050565b600060208201905081810360008301526110fe816110c2565b9050919050565b600061111082610ecd565b9050919050565b61112081611105565b82525050565b600060208201905061113b6000830184611117565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061117b82610b25565b915061118683610b25565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156111bf576111be611141565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061120482610b25565b915061120f83610b25565b92508261121f5761121e6111ca565b5b828204905092915050565b600060608201905061123f6000830186610b2f565b61124c6020830185610b2f565b6112596040830184610b2f565b949350505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000611297601f83610aa8565b91506112a282611261565b602082019050919050565b600060208201905081810360008301526112c68161128a565b9050919050565b60006112d882610b25565b91506112e383610b25565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561131857611317611141565b5b828201905092915050565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b600061137f602b83610aa8565b915061138a82611323565b604082019050919050565b600060208201905081810360008301526113ae81611372565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611411602283610aa8565b915061141c826113b5565b604082019050919050565b6000602082019050818103600083015261144081611404565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006114a3602183610aa8565b91506114ae82611447565b604082019050919050565b600060208201905081810360008301526114d281611496565b905091905056fea26469706673582212207e0a0a128de3fb82b3b38ebb6ac6d8d990a26ccfbb902e75df3e6261c5fec03264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.RequestOpenHashSubmitter__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StorageFeeCollector__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b50604051620011db380380620011db8339818101604052810190620000379190620002f0565b620000576200004b6200009f60201b60201c565b620000a760201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200043d565b600033905090565b620000c28160006200010860201b6200047d1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b6200011a8282620001bb60201b60201c565b156200015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001549062000383565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000226906200041b565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b8826200028b565b9050919050565b620002ca81620002ab565b8114620002d657600080fd5b50565b600081519050620002ea81620002bf565b92915050565b60006020828403121562000309576200030862000286565b5b60006200031984828501620002d9565b91505092915050565b600082825260208201905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b60006200036b601f8362000322565b9150620003788262000333565b602082019050919050565b600060208201905081810360008301526200039e816200035c565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200040360228362000322565b91506200041082620003a5565b604082019050919050565b600060208201905081810360008301526200043681620003f4565b9050919050565b610d8e806200044d6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806375c268f31161006657806375c268f3146101215780638f5b87e11461013f578063bb5f747b1461016f578063cb2537cb1461019f578063e40e8457146101bb5761009e565b80631a7626e7146100a3578063263f6a42146100c15780634c5a628c146100df578063524eb29c146100e95780637362d9c814610105575b600080fd5b6100ab6101d9565b6040516100b89190610769565b60405180910390f35b6100c96101df565b6040516100d69190610769565b60405180910390f35b6100e76101e5565b005b61010360048036038101906100fe91906107e7565b6101f7565b005b61011f600480360381019061011a9190610852565b6102e3565b005b61012961033e565b6040516101369190610769565b60405180910390f35b610159600480360381019061015491906108ab565b610344565b6040516101669190610769565b60405180910390f35b61018960048036038101906101849190610852565b610390565b60405161019691906108f3565b60405180910390f35b6101b960048036038101906101b4919061090e565b6103ad565b005b6101c3610457565b6040516101d09190610970565b60405180910390f35b60015481565b60025481565b6101f56101f0610525565b61052d565b565b610207610202610525565b610390565b610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d90610a0e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb2c87fdcc342ca09b09df1fb16a153b7ceb0a4b56ad223f12c8fbff63f98ccd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516102d89190610a8d565b60405180910390a150565b6102f36102ee610525565b610390565b610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032990610a0e565b60405180910390fd5b61033b81610587565b50565b60035481565b600080600254836103559190610ad7565b9050600060035414610372576003548161036f9190610b60565b90505b60015481116103865760015491505061038b565b809150505b919050565b60006103a68260006105e190919063ffffffff16565b9050919050565b6103bd6103b8610525565b610390565b6103fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f390610a0e565b60405180910390fd5b8260018190555081600281905550806003819055507f741cafcfc8058975fab7ed6bdaf402b47dca8aa9826990c454c058a6f9b06d1660015460025460035460405161044a93929190610b91565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61048782826105e1565b156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be90610c14565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b6105418160006106a990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b61059b81600061047d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064990610ca6565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6106b382826105e1565b6106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990610d38565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000819050919050565b61076381610750565b82525050565b600060208201905061077e600083018461075a565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107b482610789565b9050919050565b6107c4816107a9565b81146107cf57600080fd5b50565b6000813590506107e1816107bb565b92915050565b6000602082840312156107fd576107fc610784565b5b600061080b848285016107d2565b91505092915050565b600061081f82610789565b9050919050565b61082f81610814565b811461083a57600080fd5b50565b60008135905061084c81610826565b92915050565b60006020828403121561086857610867610784565b5b60006108768482850161083d565b91505092915050565b61088881610750565b811461089357600080fd5b50565b6000813590506108a58161087f565b92915050565b6000602082840312156108c1576108c0610784565b5b60006108cf84828501610896565b91505092915050565b60008115159050919050565b6108ed816108d8565b82525050565b600060208201905061090860008301846108e4565b92915050565b60008060006060848603121561092757610926610784565b5b600061093586828701610896565b935050602061094686828701610896565b925050604061095786828701610896565b9150509250925092565b61096a816107a9565b82525050565b60006020820190506109856000830184610961565b92915050565b600082825260208201905092915050565b7f57686974656c69737441646d696e526f6c653a2063616c6c657220646f65732060008201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65602082015250565b60006109f860408361098b565b9150610a038261099c565b604082019050919050565b60006020820190508181036000830152610a27816109eb565b9050919050565b6000819050919050565b6000610a53610a4e610a4984610789565b610a2e565b610789565b9050919050565b6000610a6582610a38565b9050919050565b6000610a7782610a5a565b9050919050565b610a8781610a6c565b82525050565b6000602082019050610aa26000830184610a7e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ae282610750565b9150610aed83610750565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b2657610b25610aa8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b6b82610750565b9150610b7683610750565b925082610b8657610b85610b31565b5b828204905092915050565b6000606082019050610ba6600083018661075a565b610bb3602083018561075a565b610bc0604083018461075a565b949350505050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000610bfe601f8361098b565b9150610c0982610bc8565b602082019050919050565b60006020820190508181036000830152610c2d81610bf1565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610c9060228361098b565b9150610c9b82610c34565b604082019050919050565b60006020820190508181036000830152610cbf81610c83565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000610d2260218361098b565b9150610d2d82610cc6565b604082019050919050565b60006020820190508181036000830152610d5181610d15565b905091905056fea264697066735822122087b0ecedb5be2508d530c8003618a4390942f07c57425ecc18f84bde5990c65064736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.StorageFeeCollector__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AggregatorMock__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50604051610369380380610369833981810160405281019061003291906100ea565b82600181905550816000806101000a81548160ff021916908360ff16021790555080600260006101000a81548160ff021916908360ff16021790555050505061013d565b600080fd5b6000819050919050565b61008e8161007b565b811461009957600080fd5b50565b6000815190506100ab81610085565b92915050565b600060ff82169050919050565b6100c7816100b1565b81146100d257600080fd5b50565b6000815190506100e4816100be565b92915050565b60008060006060848603121561010357610102610076565b5b60006101118682870161009c565b9350506020610122868287016100d5565b9250506040610133868287016100d5565b9150509250925092565b61021d8061014c6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063313ce5671461004657806350d25bcd146100645780638205bf6a14610082575b600080fd5b61004e6100a0565b60405161005b9190610101565b60405180910390f35b61006c6100b6565b6040516100799190610135565b60405180910390f35b61008a6100c0565b6040516100979190610169565b60405180910390f35b60008060009054906101000a900460ff16905090565b6000600154905090565b6000600260009054906101000a900460ff1660ff16426100e091906101b3565b905090565b600060ff82169050919050565b6100fb816100e5565b82525050565b600060208201905061011660008301846100f2565b92915050565b6000819050919050565b61012f8161011c565b82525050565b600060208201905061014a6000830184610126565b92915050565b6000819050919050565b61016381610150565b82525050565b600060208201905061017e600083018461015a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101be82610150565b91506101c983610150565b9250828210156101dc576101db610184565b5b82820390509291505056fea2646970667358221220598945154f468d9a4dd0f7ef9dc7f192042bdb30f4febb9f0add17078693f63264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.AggregatorMock__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BytesUtilsMock__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b5061047a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063349f06931461003b578063b1e05e8a14610059575b600080fd5b610043610075565b6040516100509190610115565b60405180910390f35b610073600480360381019061006e91906102c0565b61007b565b005b60005481565b610085828261008f565b6000819055505050565b60008082101580156100ae575082516020836100ab919061034b565b11155b6100ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e490610424565b60405180910390fd5b81602001830151905092915050565b6000819050919050565b61010f816100fc565b82525050565b600060208201905061012a6000830184610106565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101978261014e565b810181811067ffffffffffffffff821117156101b6576101b561015f565b5b80604052505050565b60006101c9610130565b90506101d5828261018e565b919050565b600067ffffffffffffffff8211156101f5576101f461015f565b5b6101fe8261014e565b9050602081019050919050565b82818337600083830152505050565b600061022d610228846101da565b6101bf565b90508281526020810184848401111561024957610248610149565b5b61025484828561020b565b509392505050565b600082601f83011261027157610270610144565b5b813561028184826020860161021a565b91505092915050565b6000819050919050565b61029d8161028a565b81146102a857600080fd5b50565b6000813590506102ba81610294565b92915050565b600080604083850312156102d7576102d661013a565b5b600083013567ffffffffffffffff8111156102f5576102f461013f565b5b6103018582860161025c565b9250506020610312858286016102ab565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006103568261028a565b91506103618361028a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103965761039561031c565b5b828201905092915050565b600082825260208201905092915050565b7f6f66667365742076616c75652073686f756c6420626520696e2074686520636f60008201527f72726563742072616e6765000000000000000000000000000000000000000000602082015250565b600061040e602b836103a1565b9150610419826103b2565b604082019050919050565b6000602082019050818103600083015261043d81610401565b905091905056fea2646970667358221220fe433b9b4b35a04a31fb281992f9c5594051749d582a3f13ad2ebdeb386e43e564736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.BytesUtilsMock__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EtherPaymentFallback__factory=void 0;const n=r(4),f=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"SafeReceived",type:"event"},{stateMutability:"payable",type:"receive"}],a="0x608060405234801561001057600080fd5b5060c18061001f6000396000f3fe6080604052366056573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d34604051604c91906072565b60405180910390a2005b600080fd5b6000819050919050565b606c81605b565b82525050565b6000602082019050608560008301846065565b9291505056fea26469706673582212208d02d346b57790a960e936c227c6402ea34392de094d7ab85da5a45a4cafce3364736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.EtherPaymentFallback__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GnosisSafeProxy__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"_singleton",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{stateMutability:"payable",type:"fallback"}],a="0x608060405234801561001057600080fd5b506040516102d43803806102d48339818101604052810190610032919061014b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906101fb565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061021b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610118826100ed565b9050919050565b6101288161010d565b811461013357600080fd5b50565b6000815190506101458161011f565b92915050565b600060208284031215610161576101606100e8565b5b600061016f84828501610136565b91505092915050565b600082825260208201905092915050565b7f496e76616c69642073696e676c65746f6e20616464726573732070726f76696460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006101e5602283610178565b91506101f082610189565b604082019050919050565b60006020820190508181036000830152610214816101d8565b9050919050565b60ab806102296000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea26469706673582212203784bf91a0f9bb4e51644bf6cfbe2bc479ded7bbb205bb0e0fc0d8cfafca712b64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.GnosisSafeProxy__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UsdtFake__factory=void 0;const n=r(4),f=[{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"}],a="0x608060405234801561001057600080fd5b5060b98061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063313ce56714602d575b600080fd5b60336047565b604051603e9190606a565b60405180910390f35b60006006905090565b600060ff82169050919050565b6064816050565b82525050565b6000602082019050607d6000830184605d565b9291505056fea2646970667358221220bb75f369594f11bf488eef42893c2fa86b36cf6318ea3f91a79cff67f0203f2c64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.UsdtFake__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Alpha__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b50604051620018f1380380620018f1833981810160405281019062000037919062000363565b6040518060400160405280600c81526020017f416c7068612045524320323000000000000000000000000000000000000000008152506040518060400160405280600581526020017f414c5048410000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000273565b508060049080519060200190620000d492919062000273565b505050620000e93382620000f060201b60201c565b5062000537565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015a90620003f6565b60405180910390fd5b62000177600083836200026960201b60201c565b80600260008282546200018b919062000447565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001e2919062000447565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002499190620004b5565b60405180910390a362000265600083836200026e60201b60201c565b5050565b505050565b505050565b828054620002819062000501565b90600052602060002090601f016020900481019282620002a55760008555620002f1565b82601f10620002c057805160ff1916838001178555620002f1565b82800160010185558215620002f1579182015b82811115620002f0578251825591602001919060010190620002d3565b5b50905062000300919062000304565b5090565b5b808211156200031f57600081600090555060010162000305565b5090565b600080fd5b6000819050919050565b6200033d8162000328565b81146200034957600080fd5b50565b6000815190506200035d8162000332565b92915050565b6000602082840312156200037c576200037b62000323565b5b60006200038c848285016200034c565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620003de601f8362000395565b9150620003eb82620003a6565b602082019050919050565b600060208201905081810360008301526200041181620003cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004548262000328565b9150620004618362000328565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000499576200049862000418565b5b828201905092915050565b620004af8162000328565b82525050565b6000602082019050620004cc6000830184620004a4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051a57607f821691505b60208210811415620005315762000530620004d2565b5b50919050565b6113aa80620005476000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610c3e565b60405180910390f35b6100e660048036038101906100e19190610cf9565b610308565b6040516100f39190610d54565b60405180910390f35b610104610326565b6040516101119190610d7e565b60405180910390f35b610134600480360381019061012f9190610d99565b610330565b6040516101419190610d54565b60405180910390f35b610152610428565b60405161015f9190610e08565b60405180910390f35b610182600480360381019061017d9190610cf9565b610431565b60405161018f9190610d54565b60405180910390f35b6101b260048036038101906101ad9190610e23565b6104dd565b6040516101bf9190610d7e565b60405180910390f35b6101d0610525565b6040516101dd9190610c3e565b60405180910390f35b61020060048036038101906101fb9190610cf9565b6105b7565b60405161020d9190610d54565b60405180910390f35b610230600480360381019061022b9190610cf9565b6106a2565b60405161023d9190610d54565b60405180910390f35b610260600480360381019061025b9190610e50565b6106c0565b60405161026d9190610d7e565b60405180910390f35b60606003805461028590610ebf565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610ebf565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610f63565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610fb2565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490610ebf565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610ebf565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a9061107a565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b69061110c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108269061119e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610d7e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f1906112c2565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290611354565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610fb2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610d7e565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bdf578082015181840152602081019050610bc4565b83811115610bee576000848401525b50505050565b6000601f19601f8301169050919050565b6000610c1082610ba5565b610c1a8185610bb0565b9350610c2a818560208601610bc1565b610c3381610bf4565b840191505092915050565b60006020820190508181036000830152610c588184610c05565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c9082610c65565b9050919050565b610ca081610c85565b8114610cab57600080fd5b50565b600081359050610cbd81610c97565b92915050565b6000819050919050565b610cd681610cc3565b8114610ce157600080fd5b50565b600081359050610cf381610ccd565b92915050565b60008060408385031215610d1057610d0f610c60565b5b6000610d1e85828601610cae565b9250506020610d2f85828601610ce4565b9150509250929050565b60008115159050919050565b610d4e81610d39565b82525050565b6000602082019050610d696000830184610d45565b92915050565b610d7881610cc3565b82525050565b6000602082019050610d936000830184610d6f565b92915050565b600080600060608486031215610db257610db1610c60565b5b6000610dc086828701610cae565b9350506020610dd186828701610cae565b9250506040610de286828701610ce4565b9150509250925092565b600060ff82169050919050565b610e0281610dec565b82525050565b6000602082019050610e1d6000830184610df9565b92915050565b600060208284031215610e3957610e38610c60565b5b6000610e4784828501610cae565b91505092915050565b60008060408385031215610e6757610e66610c60565b5b6000610e7585828601610cae565b9250506020610e8685828601610cae565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ed757607f821691505b60208210811415610eeb57610eea610e90565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000610f4d602883610bb0565b9150610f5882610ef1565b604082019050919050565b60006020820190508181036000830152610f7c81610f40565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fbd82610cc3565b9150610fc883610cc3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ffd57610ffc610f83565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611064602583610bb0565b915061106f82611008565b604082019050919050565b6000602082019050818103600083015261109381611057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110f6602483610bb0565b91506111018261109a565b604082019050919050565b60006020820190508181036000830152611125816110e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611188602283610bb0565b91506111938261112c565b604082019050919050565b600060208201905081810360008301526111b78161117b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061121a602583610bb0565b9150611225826111be565b604082019050919050565b600060208201905081810360008301526112498161120d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006112ac602383610bb0565b91506112b782611250565b604082019050919050565b600060208201905081810360008301526112db8161129f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061133e602683610bb0565b9150611349826112e2565b604082019050919050565b6000602082019050818103600083015261136d81611331565b905091905056fea2646970667358221220ac8b864c59c65f80e103feb058644c736c9c88ec578e4093f57a78606a8e50d664736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Alpha__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20False__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b506101c1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610102565b610060565b6040516100579190610170565b60405180910390f35b60009392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100998261006e565b9050919050565b6100a98161008e565b81146100b457600080fd5b50565b6000813590506100c6816100a0565b92915050565b6000819050919050565b6100df816100cc565b81146100ea57600080fd5b50565b6000813590506100fc816100d6565b92915050565b60008060006060848603121561011b5761011a610069565b5b6000610129868287016100b7565b935050602061013a868287016100b7565b925050604061014b868287016100ed565b9150509250925092565b60008115159050919050565b61016a81610155565b82525050565b60006020820190506101856000830184610161565b9291505056fea26469706673582212200dded223ee24cd638102c1d8e784f0d92a18adfb58db220ce02d8cb1845c0c0e64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20False__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20NoReturn__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b50610173806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a600480360381019061004591906100ea565b61004c565b005b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061008182610056565b9050919050565b61009181610076565b811461009c57600080fd5b50565b6000813590506100ae81610088565b92915050565b6000819050919050565b6100c7816100b4565b81146100d257600080fd5b50565b6000813590506100e4816100be565b92915050565b60008060006060848603121561010357610102610051565b5b60006101118682870161009f565b93505060206101228682870161009f565b9250506040610133868287016100d5565b915050925092509256fea264697066735822122086d0df9ce592b0591064caaf520a0f8c5bc9c72cf28c9b00135ecaf9552ecdf264736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20NoReturn__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20Revert__factory=void 0;const n=r(4),f=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"pure",type:"function"}],a="0x608060405234801561001057600080fd5b50610226806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610120565b61004c565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007e906101d0565b60405180910390fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b78261008c565b9050919050565b6100c7816100ac565b81146100d257600080fd5b50565b6000813590506100e4816100be565b92915050565b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b60008060006060848603121561013957610138610087565b5b6000610147868287016100d5565b9350506020610158868287016100d5565b92505060406101698682870161010b565b9150509250925092565b600082825260208201905092915050565b7f626164207468696e672068617070656e65640000000000000000000000000000600082015250565b60006101ba601283610173565b91506101c582610184565b602082019050919050565b600060208201905081810360008301526101e9816101ad565b905091905056fea264697066735822122016a748576fdd0b976c82c85159f327481398ef9d4160ac785a99597b5afbe6fc64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20Revert__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20True__factory=void 0;const n=r(4),f=[{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"}],a="0x608060405234801561001057600080fd5b506101c5806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806323b872dd14610030575b600080fd5b61004a60048036038101906100459190610106565b610060565b6040516100579190610174565b60405180910390f35b6000600190509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009d82610072565b9050919050565b6100ad81610092565b81146100b857600080fd5b50565b6000813590506100ca816100a4565b92915050565b6000819050919050565b6100e3816100d0565b81146100ee57600080fd5b50565b600081359050610100816100da565b92915050565b60008060006060848603121561011f5761011e61006d565b5b600061012d868287016100bb565b935050602061013e868287016100bb565b925050604061014f868287016100f1565b9150509250925092565b60008115159050919050565b61016e81610159565b82525050565b60006020820190506101896000830184610165565b9291505056fea26469706673582212200cdf3a0b8a2fd7cf36fd6776039f128900d7985b63a590c86de29ea328035d7c64736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.ERC20True__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestERC20__factory=void 0;const n=r(4),f=[{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"}],a="0x60806040523480156200001157600080fd5b5060405162001db538038062001db583398181016040528101906200003791906200065f565b6040518060400160405280600681526020017f45524320323000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f45524332300000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb9291906200056f565b508060049080519060200190620000d49291906200056f565b505050620000e933826200011860201b60201c565b6200011073f17f52151ebef6c7334fad080c5704d77216b732600a6200029160201b60201c565b5050620009fb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200018b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200018290620006f2565b60405180910390fd5b6200019f60008383620002bf60201b60201c565b8060026000828254620001b3919062000743565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200020a919062000743565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002719190620007b1565b60405180910390a36200028d60008383620002c460201b60201c565b5050565b6000620002b5620002a7620002c960201b60201c565b8484620002d160201b60201c565b6001905092915050565b505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033b9062000844565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ae90620008dc565b60405180910390fd5b620003ca838383620002bf60201b60201c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044a9062000974565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004e8919062000743565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200054e9190620007b1565b60405180910390a362000569848484620002c460201b60201c565b50505050565b8280546200057d90620009c5565b90600052602060002090601f016020900481019282620005a15760008555620005ed565b82601f10620005bc57805160ff1916838001178555620005ed565b82800160010185558215620005ed579182015b82811115620005ec578251825591602001919060010190620005cf565b5b509050620005fc919062000600565b5090565b5b808211156200061b57600081600090555060010162000601565b5090565b600080fd5b6000819050919050565b620006398162000624565b81146200064557600080fd5b50565b60008151905062000659816200062e565b92915050565b6000602082840312156200067857620006776200061f565b5b6000620006888482850162000648565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006da601f8362000691565b9150620006e782620006a2565b602082019050919050565b600060208201905081810360008301526200070d81620006cb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007508262000624565b91506200075d8362000624565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000795576200079462000714565b5b828201905092915050565b620007ab8162000624565b82525050565b6000602082019050620007c86000830184620007a0565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006200082c60258362000691565b91506200083982620007ce565b604082019050919050565b600060208201905081810360008301526200085f816200081d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000620008c460238362000691565b9150620008d18262000866565b604082019050919050565b60006020820190508181036000830152620008f781620008b5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006200095c60268362000691565b91506200096982620008fe565b604082019050919050565b600060208201905081810360008301526200098f816200094d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009de57607f821691505b60208210811415620009f557620009f462000996565b5b50919050565b6113aa8062000a0b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610c3e565b60405180910390f35b6100e660048036038101906100e19190610cf9565b610308565b6040516100f39190610d54565b60405180910390f35b610104610326565b6040516101119190610d7e565b60405180910390f35b610134600480360381019061012f9190610d99565b610330565b6040516101419190610d54565b60405180910390f35b610152610428565b60405161015f9190610e08565b60405180910390f35b610182600480360381019061017d9190610cf9565b610431565b60405161018f9190610d54565b60405180910390f35b6101b260048036038101906101ad9190610e23565b6104dd565b6040516101bf9190610d7e565b60405180910390f35b6101d0610525565b6040516101dd9190610c3e565b60405180910390f35b61020060048036038101906101fb9190610cf9565b6105b7565b60405161020d9190610d54565b60405180910390f35b610230600480360381019061022b9190610cf9565b6106a2565b60405161023d9190610d54565b60405180910390f35b610260600480360381019061025b9190610e50565b6106c0565b60405161026d9190610d7e565b60405180910390f35b60606003805461028590610ebf565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610ebf565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d84848461091a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610f63565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610fb2565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490610ebf565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610ebf565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a9061107a565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b848461091a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b69061110c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561082f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108269061119e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090d9190610d7e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f1906112c2565b60405180910390fd5b610a05838383610b9b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290611354565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1e9190610fb2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b829190610d7e565b60405180910390a3610b95848484610ba0565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bdf578082015181840152602081019050610bc4565b83811115610bee576000848401525b50505050565b6000601f19601f8301169050919050565b6000610c1082610ba5565b610c1a8185610bb0565b9350610c2a818560208601610bc1565b610c3381610bf4565b840191505092915050565b60006020820190508181036000830152610c588184610c05565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c9082610c65565b9050919050565b610ca081610c85565b8114610cab57600080fd5b50565b600081359050610cbd81610c97565b92915050565b6000819050919050565b610cd681610cc3565b8114610ce157600080fd5b50565b600081359050610cf381610ccd565b92915050565b60008060408385031215610d1057610d0f610c60565b5b6000610d1e85828601610cae565b9250506020610d2f85828601610ce4565b9150509250929050565b60008115159050919050565b610d4e81610d39565b82525050565b6000602082019050610d696000830184610d45565b92915050565b610d7881610cc3565b82525050565b6000602082019050610d936000830184610d6f565b92915050565b600080600060608486031215610db257610db1610c60565b5b6000610dc086828701610cae565b9350506020610dd186828701610cae565b9250506040610de286828701610ce4565b9150509250925092565b600060ff82169050919050565b610e0281610dec565b82525050565b6000602082019050610e1d6000830184610df9565b92915050565b600060208284031215610e3957610e38610c60565b5b6000610e4784828501610cae565b91505092915050565b60008060408385031215610e6757610e66610c60565b5b6000610e7585828601610cae565b9250506020610e8685828601610cae565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ed757607f821691505b60208210811415610eeb57610eea610e90565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000610f4d602883610bb0565b9150610f5882610ef1565b604082019050919050565b60006020820190508181036000830152610f7c81610f40565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fbd82610cc3565b9150610fc883610cc3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ffd57610ffc610f83565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611064602583610bb0565b915061106f82611008565b604082019050919050565b6000602082019050818103600083015261109381611057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110f6602483610bb0565b91506111018261109a565b604082019050919050565b60006020820190508181036000830152611125816110e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611188602283610bb0565b91506111938261112c565b604082019050919050565b600060208201905081810360008301526111b78161117b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061121a602583610bb0565b9150611225826111be565b604082019050919050565b600060208201905081810360008301526112498161120d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006112ac602383610bb0565b91506112b782611250565b604082019050919050565b600060208201905081810360008301526112db8161129f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061133e602683610bb0565b9150611349826112e2565b604082019050919050565b6000602082019050818103600083015261136d81611331565b905091905056fea2646970667358221220adab28fcaadd725c64717445633e8352a24acc086fd7673cfe7e6ff27394369064736f6c63430008090033";class i extends n.ContractFactory{constructor(e){super(f,a,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(f)}static connect(e,t){return new n.Contract(e,f,t)}}t.TestERC20__factory=i,i.bytecode=a,i.abi=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SuperFluidInfoRetriever=void 0;const n=r(12),f=r(9),a=r(605);t.SuperFluidInfoRetriever=class{constructor(e,t,r,n,f,i){this.paymentReference=e,this.tokenContractAddress=t,this.toAddress=r,this.eventName=n,this.network=f,this.options=i,this.client=(0,a.getTheGraphSuperfluidClient)(this.network,this.options)}getGraphVariables(){return{reference:`0xbeefac${this.paymentReference}`,to:this.toAddress,tokenAddress:this.tokenContractAddress}}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const e=this.getGraphVariables(),{flow:t,untagged:r}=yield this.client.GetSuperFluidEvents(e),n=t.concat(r).sort(((e,t)=>e.timestamp-t.timestamp)),a=[];if(n.length<1)return a;n[n.length-1].flowRate>0&&n.push({oldFlowRate:n[n.length-1].flowRate,flowRate:0,timestamp:f.default.getCurrentTimestampInSecond(),blockNumber:parseInt(n[n.length-1].blockNumber),transactionHash:n[n.length-1].transactionHash});for(let e=1;e<n.length;e++){if(2===n[e-1].type||0===n[e].type)continue;const t=n[e-1].flowRate-n[e-1].oldFlowRate;if(t<0)continue;const r=t*(n[e].timestamp-n[e-1].timestamp);a.push({amount:r.toString(),name:this.eventName,parameters:{to:this.toAddress,block:parseInt(n[e].blockNumber),txHash:n[e].transactionHash},timestamp:n[e].timestamp})}return a}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTheGraphSuperfluidClient=void 0;const n=r(238),f=r(606);t.getTheGraphSuperfluidClient=(e,t)=>{const r=`${(null==t?void 0:t.baseUrl)||"private"===e?"http://localhost:8000":"https://api.thegraph.com"}/subgraphs/name/superfluid-finance/protocol-v1-${e}`;return(0,f.getSdk)(new n.GraphQLClient(r,t))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenStatisticLog_OrderBy=t.TokenDowngradedEvent_OrderBy=t.SuperTokenLogicUpdatedEvent_OrderBy=t.SuperTokenLogicCreatedEvent_OrderBy=t.SuperTokenFactoryUpdatedEvent_OrderBy=t.SuperTokenCreatedEvent_OrderBy=t.SubscriptionUnitsUpdatedEvent_OrderBy=t.SubscriptionRevokedEvent_OrderBy=t.SubscriptionDistributionClaimedEvent_OrderBy=t.SubscriptionApprovedEvent_OrderBy=t.Stream_OrderBy=t.StreamRevision_OrderBy=t.StreamPeriod_OrderBy=t.SetEvent_OrderBy=t.SentEvent_OrderBy=t.SfMeta_OrderBy=t.RoleRevokedEvent_OrderBy=t.RoleGrantedEvent_OrderBy=t.RoleAdminChangedEvent_OrderBy=t.RewardAddressChangedEvent_OrderBy=t.ResolverEntry_OrderBy=t.PppConfigurationChangedEvent_OrderBy=t.OrderDirection=t.MintedEvent_OrderBy=t.JailEvent_OrderBy=t.Index_OrderBy=t.IndexUpdatedEvent_OrderBy=t.IndexUnsubscribedEvent_OrderBy=t.IndexUnitsUpdatedEvent_OrderBy=t.IndexSubscription_OrderBy=t.IndexSubscribedEvent_OrderBy=t.IndexDistributionClaimedEvent_OrderBy=t.IndexCreatedEvent_OrderBy=t.GovernanceReplacedEvent_OrderBy=t.FlowUpdatedEvent_OrderBy=t.FlowOperator_OrderBy=t.FlowOperatorUpdatedEvent_OrderBy=t.Event_OrderBy=t.CustomSuperTokenCreatedEvent_OrderBy=t.ConfigChangedEvent_OrderBy=t.CfAv1LiquidationPeriodChangedEvent_OrderBy=t.BurnedEvent_OrderBy=t.AppRegisteredEvent_OrderBy=t.AgreementLiquidatedV2Event_OrderBy=t.AgreementLiquidatedByEvent_OrderBy=t.AgreementClassUpdatedEvent_OrderBy=t.AgreementClassRegisteredEvent_OrderBy=t.Account_OrderBy=t.AccountTokenSnapshot_OrderBy=t.AccountTokenSnapshotLog_OrderBy=void 0,t.GetSuperFluidEvents=t.EventFragment=t.getSdk=t.GetSuperFluidEventsDocument=t.EventFragmentFragmentDoc=t._SubgraphErrorPolicy_=t.TrustedForwarderChangedEvent_OrderBy=t.TransferEvent_OrderBy=t.Token_OrderBy=t.TokenUpgradedEvent_OrderBy=t.TokenStatistic_OrderBy=void 0;const n=r(155);!function(e){e.Id="id",e.Timestamp="timestamp",e.BlockNumber="blockNumber",e.TransactionHash="transactionHash",e.LogIndex="logIndex",e.Order="order",e.TriggeredByEventName="triggeredByEventName",e.MaybeCriticalAtTimestamp="maybeCriticalAtTimestamp",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.Balance="balance",e.TotalDeposit="totalDeposit",e.TotalNetFlowRate="totalNetFlowRate",e.TotalInflowRate="totalInflowRate",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamedIn="totalAmountStreamedIn",e.TotalAmountStreamedOut="totalAmountStreamedOut",e.TotalAmountStreamed="totalAmountStreamed",e.TotalAmountTransferred="totalAmountTransferred",e.Account="account",e.Token="token",e.AccountTokenSnapshot="accountTokenSnapshot"}(t.AccountTokenSnapshotLog_OrderBy||(t.AccountTokenSnapshotLog_OrderBy={})),function(e){e.Id="id",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.IsLiquidationEstimateOptimistic="isLiquidationEstimateOptimistic",e.MaybeCriticalAtTimestamp="maybeCriticalAtTimestamp",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.BalanceUntilUpdatedAt="balanceUntilUpdatedAt",e.TotalDeposit="totalDeposit",e.TotalNetFlowRate="totalNetFlowRate",e.TotalInflowRate="totalInflowRate",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamedInUntilUpdatedAt="totalAmountStreamedInUntilUpdatedAt",e.TotalAmountStreamedOutUntilUpdatedAt="totalAmountStreamedOutUntilUpdatedAt",e.TotalAmountStreamedUntilUpdatedAt="totalAmountStreamedUntilUpdatedAt",e.TotalAmountTransferredUntilUpdatedAt="totalAmountTransferredUntilUpdatedAt",e.Account="account",e.Token="token",e.FlowOperators="flowOperators",e.AccountTokenSnapshotLogs="accountTokenSnapshotLogs"}(t.AccountTokenSnapshot_OrderBy||(t.AccountTokenSnapshot_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.IsSuperApp="isSuperApp",e.Inflows="inflows",e.Outflows="outflows",e.Subscriptions="subscriptions",e.PublishedIndexes="publishedIndexes",e.SentTransferEvents="sentTransferEvents",e.ReceivedTransferEvents="receivedTransferEvents",e.TokenUpgradedEvents="tokenUpgradedEvents",e.TokenDowngradedEvents="tokenDowngradedEvents",e.AccountTokenSnapshots="accountTokenSnapshots"}(t.Account_OrderBy||(t.Account_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.AgreementType="agreementType",e.Code="code"}(t.AgreementClassRegisteredEvent_OrderBy||(t.AgreementClassRegisteredEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.AgreementType="agreementType",e.Code="code"}(t.AgreementClassUpdatedEvent_OrderBy||(t.AgreementClassUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.LiquidatorAccount="liquidatorAccount",e.AgreementClass="agreementClass",e.AgreementId="agreementId",e.PenaltyAccount="penaltyAccount",e.BondAccount="bondAccount",e.RewardAmount="rewardAmount",e.BailoutAmount="bailoutAmount"}(t.AgreementLiquidatedByEvent_OrderBy||(t.AgreementLiquidatedByEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.LiquidatorAccount="liquidatorAccount",e.AgreementClass="agreementClass",e.AgreementId="agreementId",e.TargetAccount="targetAccount",e.RewardAmountReceiver="rewardAmountReceiver",e.RewardAmount="rewardAmount",e.TargetAccountBalanceDelta="targetAccountBalanceDelta",e.Version="version",e.LiquidationType="liquidationType",e.RewardAccount="rewardAccount"}(t.AgreementLiquidatedV2Event_OrderBy||(t.AgreementLiquidatedV2Event_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.App="app"}(t.AppRegisteredEvent_OrderBy||(t.AppRegisteredEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Operator="operator",e.From="from",e.Token="token",e.Amount="amount",e.Data="data",e.OperatorData="operatorData"}(t.BurnedEvent_OrderBy||(t.BurnedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.Order="order",e.LogIndex="logIndex",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.LiquidationPeriod="liquidationPeriod"}(t.CfAv1LiquidationPeriodChangedEvent_OrderBy||(t.CfAv1LiquidationPeriodChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.Key="key",e.IsKeySet="isKeySet",e.Value="value"}(t.ConfigChangedEvent_OrderBy||(t.ConfigChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token"}(t.CustomSuperTokenCreatedEvent_OrderBy||(t.CustomSuperTokenCreatedEvent_OrderBy={})),function(e){e.Id="id",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Name="name",e.Addresses="addresses",e.Timestamp="timestamp",e.TransactionHash="transactionHash",e.GasPrice="gasPrice"}(t.Event_OrderBy||(t.Event_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Sender="sender",e.Permissions="permissions",e.FlowRateAllowance="flowRateAllowance",e.FlowOperator="flowOperator"}(t.FlowOperatorUpdatedEvent_OrderBy||(t.FlowOperatorUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.Permissions="permissions",e.FlowRateAllowanceGranted="flowRateAllowanceGranted",e.FlowRateAllowanceRemaining="flowRateAllowanceRemaining",e.FlowOperator="flowOperator",e.Sender="sender",e.Token="token",e.AccountTokenSnapshot="accountTokenSnapshot",e.FlowOperatorUpdatedEvents="flowOperatorUpdatedEvents"}(t.FlowOperator_OrderBy||(t.FlowOperator_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Sender="sender",e.Receiver="receiver",e.FlowOperator="flowOperator",e.FlowRate="flowRate",e.TotalSenderFlowRate="totalSenderFlowRate",e.TotalReceiverFlowRate="totalReceiverFlowRate",e.Deposit="deposit",e.UserData="userData",e.OldFlowRate="oldFlowRate",e.Type="type",e.TotalAmountStreamedUntilTimestamp="totalAmountStreamedUntilTimestamp",e.Stream="stream"}(t.FlowUpdatedEvent_OrderBy||(t.FlowUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Addresses="addresses",e.OldGovernance="oldGovernance",e.NewGovernance="newGovernance"}(t.GovernanceReplacedEvent_OrderBy||(t.GovernanceReplacedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.UserData="userData",e.Index="index"}(t.IndexCreatedEvent_OrderBy||(t.IndexCreatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.Amount="amount",e.Index="index"}(t.IndexDistributionClaimedEvent_OrderBy||(t.IndexDistributionClaimedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.UserData="userData",e.Index="index"}(t.IndexSubscribedEvent_OrderBy||(t.IndexSubscribedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.Subscriber="subscriber",e.Approved="approved",e.Units="units",e.TotalAmountReceivedUntilUpdatedAt="totalAmountReceivedUntilUpdatedAt",e.IndexValueUntilUpdatedAt="indexValueUntilUpdatedAt",e.Index="index",e.SubscriptionApprovedEvents="subscriptionApprovedEvents",e.SubscriptionDistributionClaimedEvents="subscriptionDistributionClaimedEvents",e.SubscriptionRevokedEvents="subscriptionRevokedEvents",e.SubscriptionUnitsUpdatedEvents="subscriptionUnitsUpdatedEvents"}(t.IndexSubscription_OrderBy||(t.IndexSubscription_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.Units="units",e.UserData="userData",e.OldUnits="oldUnits",e.Index="index"}(t.IndexUnitsUpdatedEvent_OrderBy||(t.IndexUnitsUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.Subscriber="subscriber",e.UserData="userData",e.Index="index"}(t.IndexUnsubscribedEvent_OrderBy||(t.IndexUnsubscribedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Publisher="publisher",e.IndexId="indexId",e.OldIndexValue="oldIndexValue",e.NewIndexValue="newIndexValue",e.TotalUnitsPending="totalUnitsPending",e.TotalUnitsApproved="totalUnitsApproved",e.UserData="userData",e.Index="index"}(t.IndexUpdatedEvent_OrderBy||(t.IndexUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.IndexId="indexId",e.IndexValue="indexValue",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalUnitsPending="totalUnitsPending",e.TotalUnitsApproved="totalUnitsApproved",e.TotalUnits="totalUnits",e.TotalAmountDistributedUntilUpdatedAt="totalAmountDistributedUntilUpdatedAt",e.Token="token",e.Publisher="publisher",e.Subscriptions="subscriptions",e.IndexCreatedEvent="indexCreatedEvent",e.IndexDistributionClaimedEvents="indexDistributionClaimedEvents",e.IndexUpdatedEvents="indexUpdatedEvents",e.IndexSubscribedEvents="indexSubscribedEvents",e.IndexUnitsUpdatedEvents="indexUnitsUpdatedEvents",e.IndexUnsubscribedEvents="indexUnsubscribedEvents"}(t.Index_OrderBy||(t.Index_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.App="app",e.Reason="reason"}(t.JailEvent_OrderBy||(t.JailEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Operator="operator",e.To="to",e.Amount="amount",e.Data="data",e.Token="token",e.OperatorData="operatorData"}(t.MintedEvent_OrderBy||(t.MintedEvent_OrderBy={})),function(e){e.Asc="asc",e.Desc="desc"}(t.OrderDirection||(t.OrderDirection={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.LiquidationPeriod="liquidationPeriod",e.PatricianPeriod="patricianPeriod"}(t.PppConfigurationChangedEvent_OrderBy||(t.PppConfigurationChangedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.TargetAddress="targetAddress",e.IsToken="isToken",e.IsListed="isListed",e.SetEvents="setEvents"}(t.ResolverEntry_OrderBy||(t.ResolverEntry_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.RewardAddress="rewardAddress"}(t.RewardAddressChangedEvent_OrderBy||(t.RewardAddressChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Role="role",e.PreviousAdminRole="previousAdminRole",e.NewAdminRole="newAdminRole"}(t.RoleAdminChangedEvent_OrderBy||(t.RoleAdminChangedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Role="role",e.Account="account",e.Sender="sender"}(t.RoleGrantedEvent_OrderBy||(t.RoleGrantedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Role="role",e.Account="account",e.Sender="sender"}(t.RoleRevokedEvent_OrderBy||(t.RoleRevokedEvent_OrderBy={})),function(e){e.Id="id",e.Timestamp="timestamp",e.BlockNumber="blockNumber",e.Configuration="configuration",e.Branch="branch"}(t.SfMeta_OrderBy||(t.SfMeta_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Operator="operator",e.From="from",e.To="to",e.Token="token",e.Amount="amount",e.Data="data",e.OperatorData="operatorData"}(t.SentEvent_OrderBy||(t.SentEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.HashedName="hashedName",e.Target="target",e.ResolverEntry="resolverEntry"}(t.SetEvent_OrderBy||(t.SetEvent_OrderBy={})),function(e){e.Id="id",e.Stream="stream",e.Sender="sender",e.Receiver="receiver",e.Token="token",e.FlowRate="flowRate",e.Deposit="deposit",e.StartedAtTimestamp="startedAtTimestamp",e.StartedAtBlockNumber="startedAtBlockNumber",e.StartedAtEvent="startedAtEvent",e.StoppedAtTimestamp="stoppedAtTimestamp",e.StoppedAtBlockNumber="stoppedAtBlockNumber",e.StoppedAtEvent="stoppedAtEvent",e.TotalAmountStreamed="totalAmountStreamed"}(t.StreamPeriod_OrderBy||(t.StreamPeriod_OrderBy={})),function(e){e.Id="id",e.RevisionIndex="revisionIndex",e.PeriodRevisionIndex="periodRevisionIndex"}(t.StreamRevision_OrderBy||(t.StreamRevision_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.CurrentFlowRate="currentFlowRate",e.Deposit="deposit",e.StreamedUntilUpdatedAt="streamedUntilUpdatedAt",e.Token="token",e.Sender="sender",e.Receiver="receiver",e.FlowUpdatedEvents="flowUpdatedEvents",e.StreamPeriods="streamPeriods"}(t.Stream_OrderBy||(t.Stream_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.UserData="userData",e.Subscription="subscription"}(t.SubscriptionApprovedEvent_OrderBy||(t.SubscriptionApprovedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.Amount="amount",e.Subscription="subscription"}(t.SubscriptionDistributionClaimedEvent_OrderBy||(t.SubscriptionDistributionClaimedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.UserData="userData",e.Subscription="subscription"}(t.SubscriptionRevokedEvent_OrderBy||(t.SubscriptionRevokedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Subscriber="subscriber",e.Publisher="publisher",e.IndexId="indexId",e.Units="units",e.UserData="userData",e.OldUnits="oldUnits",e.Subscription="subscription"}(t.SubscriptionUnitsUpdatedEvent_OrderBy||(t.SubscriptionUnitsUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token"}(t.SuperTokenCreatedEvent_OrderBy||(t.SuperTokenCreatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.NewFactory="newFactory"}(t.SuperTokenFactoryUpdatedEvent_OrderBy||(t.SuperTokenFactoryUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.TokenLogic="tokenLogic"}(t.SuperTokenLogicCreatedEvent_OrderBy||(t.SuperTokenLogicCreatedEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Code="code"}(t.SuperTokenLogicUpdatedEvent_OrderBy||(t.SuperTokenLogicUpdatedEvent_OrderBy={})),function(e){e.Id="id",e.Account="account",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Amount="amount"}(t.TokenDowngradedEvent_OrderBy||(t.TokenDowngradedEvent_OrderBy={})),function(e){e.Id="id",e.Timestamp="timestamp",e.BlockNumber="blockNumber",e.TransactionHash="transactionHash",e.LogIndex="logIndex",e.Order="order",e.TriggeredByEventName="triggeredByEventName",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalNumberOfIndexes="totalNumberOfIndexes",e.TotalNumberOfActiveIndexes="totalNumberOfActiveIndexes",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.TotalDeposit="totalDeposit",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamed="totalAmountStreamed",e.TotalAmountTransferred="totalAmountTransferred",e.TotalAmountDistributed="totalAmountDistributed",e.TotalSupply="totalSupply",e.Token="token",e.TokenStatistic="tokenStatistic"}(t.TokenStatisticLog_OrderBy||(t.TokenStatisticLog_OrderBy={})),function(e){e.Id="id",e.UpdatedAtTimestamp="updatedAtTimestamp",e.UpdatedAtBlockNumber="updatedAtBlockNumber",e.TotalNumberOfActiveStreams="totalNumberOfActiveStreams",e.TotalNumberOfClosedStreams="totalNumberOfClosedStreams",e.TotalNumberOfIndexes="totalNumberOfIndexes",e.TotalNumberOfActiveIndexes="totalNumberOfActiveIndexes",e.TotalSubscriptionsWithUnits="totalSubscriptionsWithUnits",e.TotalApprovedSubscriptions="totalApprovedSubscriptions",e.TotalDeposit="totalDeposit",e.TotalOutflowRate="totalOutflowRate",e.TotalAmountStreamedUntilUpdatedAt="totalAmountStreamedUntilUpdatedAt",e.TotalAmountTransferredUntilUpdatedAt="totalAmountTransferredUntilUpdatedAt",e.TotalAmountDistributedUntilUpdatedAt="totalAmountDistributedUntilUpdatedAt",e.TotalSupply="totalSupply",e.Token="token",e.TokenStatisticLogs="tokenStatisticLogs"}(t.TokenStatistic_OrderBy||(t.TokenStatistic_OrderBy={})),function(e){e.Id="id",e.Account="account",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Token="token",e.Amount="amount"}(t.TokenUpgradedEvent_OrderBy||(t.TokenUpgradedEvent_OrderBy={})),function(e){e.Id="id",e.CreatedAtTimestamp="createdAtTimestamp",e.CreatedAtBlockNumber="createdAtBlockNumber",e.Decimals="decimals",e.Name="name",e.Symbol="symbol",e.IsSuperToken="isSuperToken",e.IsListed="isListed",e.UnderlyingAddress="underlyingAddress",e.UnderlyingToken="underlyingToken"}(t.Token_OrderBy||(t.Token_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.From="from",e.To="to",e.Value="value",e.Token="token"}(t.TransferEvent_OrderBy||(t.TransferEvent_OrderBy={})),function(e){e.Id="id",e.TransactionHash="transactionHash",e.GasPrice="gasPrice",e.Timestamp="timestamp",e.Name="name",e.GovernanceAddress="governanceAddress",e.Addresses="addresses",e.BlockNumber="blockNumber",e.LogIndex="logIndex",e.Order="order",e.Host="host",e.SuperToken="superToken",e.IsKeySet="isKeySet",e.Forwarder="forwarder",e.Enabled="enabled"}(t.TrustedForwarderChangedEvent_OrderBy||(t.TrustedForwarderChangedEvent_OrderBy={})),function(e){e.Allow="allow",e.Deny="deny"}(t._SubgraphErrorPolicy_||(t._SubgraphErrorPolicy_={})),t.EventFragmentFragmentDoc=n.default`
239
239
  fragment EventFragment on FlowUpdatedEvent {
240
240
  transactionHash
241
241
  blockNumber
@@ -285,5 +285,5 @@
285
285
  ...EventFragment
286
286
  }
287
287
  }
288
- ${t.EventFragment}`},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthInputDataInfoRetriever=void 0;const n=r(12),f=r(608);t.EthInputDataInfoRetriever=class{constructor(e,t,r,n,f){this.toAddress=e,this.eventName=t,this.network=r,this.paymentReference=n,this.explorerApiKey=f}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 f.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(4),f={sokol:{chainId:77,name:"sokol"},fuse:{chainId:122,name:"fuse"},celo:{chainId:42220,name:"celo"},fantom:{chainId:250,name:"fantom"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-one":{chainId:42161,name:"arbitrum-one"},avalanche:{chainId:43114,name:"avalanche"},bsc:{chainId:56,name:"bsc"}};class a extends n.ethers.providers.EtherscanProvider{constructor(e,t){"string"==typeof e&&f[e]&&(e=f[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";case"arbitrum-rinkeby":return"https://testnet.arbiscan.io/";case"arbitrum-one":return"https://api.arbiscan.io";case"avalanche":return"https://api.snowtrace.io";default:return super.getBaseUrl()}}}t.MultichainExplorerApiProvider=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToErc20InfoRetriever=void 0;const n=r(257);class f 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=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NearInfoRetriever=void 0;const n=r(12),f=r(95);t.NearInfoRetriever=class{constructor(e,t,r,n,a){if(this.paymentReference=e,this.toAddress=t,this.proxyContractName=r,this.eventName=n,this.network=a,"aurora"!==this.network&&"aurora-testnet"!==this.network)throw new Error("Near input data info-retriever only works with Near mainnet and testnet");if("aurora"!==this.network)throw new Error("FIXME: getTransactionsFromNearSubGraph() only implemented for Near mainnet");if(this.network=this.network.replace("aurora","near"),"requestnetwork.near"!==this.proxyContractName)throw new Error(`Proxy contract "${r}" not supported by Near subgraph retriever`);this.client=(0,f.getTheGraphNearClient)(this.network)}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return(yield this.client.GetNearPayments({reference:this.paymentReference,to:this.toAddress})).payments.map((e=>({amount:e.amount,name:this.eventName,parameters:{block:e.block,confirmations:e.block,receiptId:e.receiptId},timestamp:Number(e.timestamp)})))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthInfoRetriever=void 0;const n=r(257);class f 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=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToAnyDetector=void 0;const n=r(12),f=r(9),a=r(108);class i extends a.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 f.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=i},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(163);Object.defineProperty(t,"BtcMainnetAddressBasedDetector",{enumerable:!0,get:function(){return n.BtcMainnetAddressBasedDetector}});var f=r(233);Object.defineProperty(t,"BtcTestnetAddressBasedDetector",{enumerable:!0,get:function(){return f.BtcTestnetAddressBasedDetector}});var a=r(165);Object.defineProperty(t,"DefaultBitcoinDetectionProvider",{enumerable:!0,get:function(){return a.DefaultBitcoinDetectionProvider}});const i=r(166);t.Providers=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20ProxyPaymentDetector=t.ERC20FeeProxyPaymentDetector=t.ERC20AddressBasedPaymentDetector=void 0;var n=r(234);Object.defineProperty(t,"ERC20AddressBasedPaymentDetector",{enumerable:!0,get:function(){return n.ERC20AddressBasedPaymentDetector}});var f=r(146);Object.defineProperty(t,"ERC20FeeProxyPaymentDetector",{enumerable:!0,get:function(){return f.ERC20FeeProxyPaymentDetector}});var a=r(251);Object.defineProperty(t,"ERC20ProxyPaymentDetector",{enumerable:!0,get:function(){return a.ERC20ProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthFeeProxyPaymentDetector=t.AnyToERC20PaymentDetector=void 0;var n=r(256);Object.defineProperty(t,"AnyToERC20PaymentDetector",{enumerable:!0,get:function(){return n.AnyToERC20PaymentDetector}});var f=r(260);Object.defineProperty(t,"AnyToEthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return f.AnyToEthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthFeeProxyPaymentDetector=t.EthInputDataPaymentDetector=void 0;var n=r(253);Object.defineProperty(t,"EthInputDataPaymentDetector",{enumerable:!0,get:function(){return n.EthInputDataPaymentDetector}});var f=r(255);Object.defineProperty(t,"EthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return f.EthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EscrowERC20InfoRetriever=void 0;const n=r(12),f=r(3),a=r(43),i=r(4),o=r(55),s=r(35),c={"0.1.0":"0.1.0","0.2.0":"0.1.0"};class u{constructor(e,t,r,n,f,s,c){this.paymentReference=e,this.escrowContractAddress=t,this.escrowCreationBlockNumber=r,this.tokenContractAddress=n,this.toAddress=f,this.network=s,this.eventName=c,this.provider=(0,o.getDefaultProvider)(this.network),this.contractEscrow=new i.ethers.Contract(this.escrowContractAddress,a.erc20EscrowToPayArtifact.getContractAbi(),this.provider)}getAllContractEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return[...yield this.getContractEventsForEventName(f.PaymentTypes.ESCROW_EVENTS_NAMES.FREEZE_ESCROW),...yield this.getContractEventsForEventName(f.PaymentTypes.ESCROW_EVENTS_NAMES.INITIATE_EMERGENCY_CLAIM),...yield this.getContractEventsForEventName(f.PaymentTypes.ESCROW_EVENTS_NAMES.REVERT_EMERGENCY_CLAIM)]}))}getContractEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.eventName)throw new Error("Missing event name in EscrowInfoRetriever for getContractEvents()");return this.getContractEventsForEventName(this.eventName)}))}getContractEventsForEventName(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e===f.PaymentTypes.ESCROW_EVENTS_NAMES.FREEZE_ESCROW?this.contractEscrow.filters.RequestFrozen("0x"+this.paymentReference):e===f.PaymentTypes.ESCROW_EVENTS_NAMES.INITIATE_EMERGENCY_CLAIM?this.contractEscrow.filters.InitiatedEmergencyClaim("0x"+this.paymentReference):e===f.PaymentTypes.ESCROW_EVENTS_NAMES.REVERT_EMERGENCY_CLAIM?this.contractEscrow.filters.RevertedEmergencyClaim("0x"+this.paymentReference):e===f.PaymentTypes.ESCROW_EVENTS_NAMES.PAID_ESCROW?this.contractEscrow.filters.TransferWithReferenceAndFee(null,null,null,"0x"+this.paymentReference,null,null):void 0;if(!t)throw new Error("Wrong eventName for Escrow event retriever");t.fromBlock=this.escrowCreationBlockNumber,t.toBlock="latest";const r=(yield this.provider.getLogs(t)).map((e=>{const t=this.contractEscrow.interface.parseLog(e);return Object.assign(Object.assign({},e),{parsedLog:(0,s.parseLogArgs)(t)})})).filter((({parsedLog:e})=>!e.tokenAddress||e.tokenAddress.toLowerCase()===this.tokenContractAddress.toLowerCase()&&e.to.toLowerCase()===this.toAddress.toLowerCase())).map((({parsedLog:t,blockNumber:r,transactionHash:f})=>(0,n.__awaiter)(this,void 0,void 0,(function*(){var n,a;return{amount:(null===(n=t.amount)||void 0===n?void 0:n.toString())||void 0,name:e,parameters:{block:r,paymentReference:t.paymentReference,feeAddress:t.feeAddress||void 0,feeAmount:(null===(a=t.feeAmount)||void 0===a?void 0:a.toString())||void 0,to:this.toAddress||void 0,txHash:f},timestamp:(yield this.provider.getBlock(r||0)).timestamp}}))));return Promise.all(r)}))}getEscrowRequestMapping(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return this.contractEscrow.requestMapping(`0x${this.paymentReference}`)}))}}t.EscrowERC20InfoRetriever=u,u.getEscrowDeploymentInformation=(0,s.makeGetDeploymentInformation)(a.erc20EscrowToPayArtifact,c)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),f=r(619),a=r(279),i=r(706),o=r(713),s=r(714);class c extends f.default{constructor({decryptionProvider:e,httpConfig:t,nodeConnectionConfig:r,useLocalEthereumBroadcast:f,signatureProvider:c,useMockStorage:u,web3:d,ethereumProviderUrl:l,currencies:h,currencyManager:p}={httpConfig:{},nodeConnectionConfig:{},useLocalEthereumBroadcast:!1,useMockStorage:!1}){let b;u&&(b=new s.default);const m=u?new o.default(b):f?new i.default({httpConfig:t,nodeConnectionConfig:r,web3:d,ethereumProviderUrl:l}):new a.default({httpConfig:t,nodeConnectionConfig:r});p||(p=new n.CurrencyManager(h||n.CurrencyManager.getDefaultList())),super({dataAccess:m,signatureProvider:c,decryptionProvider:e,currencyManager:p}),this._mockStorage=b}}t.default=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),f=r(4),a=r(620),i=r(95),o=r(632),s=r(653),c=r(3),u=r(9),d=r(50),l=r(660),h=r(261),p=r(150);t.default=class{constructor({dataAccess:e,signatureProvider:t,decryptionProvider:r,bitcoinDetectionProvider:n,currencyManager:f}){this.supportedIdentities=u.default.identity.supportedIdentities,this.currencyManager=f||d.CurrencyManager.getDefault(),this.advancedLogic=new a.AdvancedLogic(this.currencyManager),this.transaction=new s.TransactionManager(e,r),this.requestLogic=new o.RequestLogic(this.transaction,t,this.advancedLogic),this.contentData=new l.default(this.advancedLogic),this.bitcoinDetectionProvider=n}createRequest(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:t,topics:r,paymentNetwork:n}=yield this.prepareRequestParameters(e),f=yield this.requestLogic.createRequest(t,e.signer,r),a=new h.default(f.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,requestLogicCreateResult:f,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield a.refresh(),a}))}_createEncryptedRequest(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:r,topics:n,paymentNetwork:f}=yield this.prepareRequestParameters(e),a=yield this.requestLogic.createEncryptedRequest(r,e.signer,t,n),i=new h.default(a.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:f,requestLogicCreateResult:a,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield i.refresh(),i}))}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,f=i.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:n,explorerApiKeys:null==t?void 0:t.explorerApiKeys,currencyManager:this.currencyManager}),a=new h.default(e,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:f,skipPaymentDetection:null==t?void 0:t.disablePaymentDetection,disableEvents:null==t?void 0:t.disableEvents});return yield a.refresh(r),a}))}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 f=(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=i.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),f=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 f.refresh(),f}))));return Promise.all(f)}))}fromMultipleTopics(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const f=(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=i.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),f=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 f.refresh(),f}))));return Promise.all(f)}))}getCurrency(e){if("string"==typeof e){const t=this.currencyManager.from(e);if(!t)throw new d.UnsupportedCurrencyError(e);return d.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}),f=e.paymentNetwork,a=e.contentData,o=(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 d=null;return f&&(d=i.PaymentNetworkFactory.createPaymentNetwork({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,currency:n.currency,paymentNetworkCreationParameters:f,currencyManager:this.currencyManager}),d&&s.extensionsData.push(yield d.createExtensionsDataForCreation(f.parameters))),a&&s.extensionsData.push(this.contentData.createExtensionsDataForCreation(a)),s.payee&&o.push(s.payee),s.payer&&o.push(s.payer),{requestParameters:s,topics:o,paymentNetwork:d}}))}validERC20Address(e){return f.utils.getAddress(e)===e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AdvancedLogic=void 0;var n=r(621);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(3),f=r(50),a=r(622),i=r(263),o=r(623),s=r(264),c=r(624),u=r(265),d=r(625),l=r(626),h=r(267),p=r(627),b=r(628),m=r(630),y=r(631);t.default=class{constructor(e){e||(e=f.CurrencyManager.getDefault()),this.extensions={addressBasedBtc:new i.default,addressBasedErc20:new c.default,addressBasedTestnetBtc:new o.default,contentData:new a.default,anyToErc20Proxy:new m.default(e),declarative:new s.default,ethereumInputData:new p.default,feeProxyContractErc20:new u.default,proxyContractErc20:new d.default,erc777Stream:new l.default,feeProxyContractEth:new h.default,anyToEthProxy:new y.default(e),nativeToken:[new b.default]}}applyActionToExtensions(e,t,r,n,f){return this.getExtensionForActionAndState(t,r).applyActionToExtension(e,t,r,n,f)}getExtensionForActionAndState(e,t){const r=e.id,f={[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_ERC777_STREAM]:this.extensions.erc777Stream,[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(!f){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 f}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(3),f=r(262);class a extends f.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=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(263);class a extends f.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_TESTNET_BITCOIN_ADDRESS_BASED,"0.1.0",["testnet"])}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(88),a=["mainnet","rinkeby","private"];class i extends f.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_ADDRESS_BASED,"0.1.0",a,n.RequestLogicTypes.CURRENCY.ERC20)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(89);class a extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_PROXY_CONTRACT,t="0.1.0",r=["mainnet","rinkeby","private"],f=n.RequestLogicTypes.CURRENCY.ERC20){super(e,t,r,f),this.extensionId=e,this.currentVersion=t,this.supportedNetworks=r,this.supportedCurrencyType=f}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(89),a=r(9);class i extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC777_STREAM,t="0.1.0",r=["matic","xdai","mumbai","rinkeby","arbitrum-rinkeby"],f=n.RequestLogicTypes.CURRENCY.ERC777){super(e,t,r,f),this.supportedNetworks=r,this.supportedCurrencyType=f}createCreationAction(e){if(!e.expectedFlowRate)throw Error("expectedFlowRate should not be empty");if(!e.expectedStartDate)throw Error("expectedStartDate should not be empty");return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.expectedStartDate)throw Error("expectedStartDate should not be empty");if(!e.parameters.expectedFlowRate)throw Error("expectedFlowRate should not be empty");if(e.parameters.expectedStartDate&&!a.default.amount.isValid(e.parameters.expectedStartDate))throw Error("expectedStartDate is not a valid amount");if(e.parameters.expectedFlowRate&&!a.default.amount.isValid(e.parameters.expectedFlowRate))throw Error("expectedFlowRate is not a valid amount");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[{name:"create",parameters:{expectedStartDate:e.parameters.expectedStartDate,expectedFlowRate:e.parameters.expectedFlowRate,paymentAddress:e.parameters.paymentAddress,refundAddress:e.parameters.refundAddress,salt:e.parameters.salt},timestamp:t}],values:Object.assign(Object.assign({},r.values),{expectedStartDate:e.parameters.expectedStartDate,expectedFlowRate:e.parameters.expectedFlowRate})})}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(89),a=["mainnet","rinkeby","xdai","sokol","fuse","matic","celo","fantom","bsctest","bsc","arbitrum-rinkeby","arbitrum-one","avalanche"];class i extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_INPUT_DATA,t="0.3.0"){super(e,t,a,n.RequestLogicTypes.CURRENCY.ETH)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(88),a=r(629),i=["aurora","aurora-testnet"];class o extends a.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN,t="0.2.0"){super(e,t,i)}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 f.UnsupportedNetworkError(t,this.supportedNetworks)}}isValidMainnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR","aurora")}isValidTestnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR-testnet","aurora-testnet")}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(88),a=r(89);class i extends a.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 f.InvalidPaymentAddressError(e.paymentAddress);if(e.refundAddress&&!this.isValidAddress(e.refundAddress,t))throw new f.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=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),f=r(3),a=r(265);class i extends a.default{constructor(e,t=f.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ERC20_PROXY,r="0.1.0"){super(t,r,n.conversionSupportedNetworks,f.RequestLogicTypes.CURRENCY.ERC20),this.currencyManager=e}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(!n.conversionSupportedNetworks.includes(t))throw Error(`network ${t} not supported`);for(const r of e.acceptedTokens){const e=this.currencyManager.fromAddress(r,t);if(!e)throw new n.UnsupportedCurrencyError({value:r,network:t});if(!this.currencyManager.supportsConversion(e,t))throw Error(`acceptedTokens must contain only supported token addresses (ERC20 only). ${r} 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 a=t.action===f.ExtensionTypes.PnFeeReferenceBased.ACTION.CREATE?t.parameters.network:null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network;if(!a)return;if(!a)return;if(!n.conversionSupportedNetworks.includes(a))throw new Error(`The network (${a}) is not supported for this payment network.`);const i=this.currencyManager.fromStorageCurrency(e.currency);if(!i)throw new n.UnsupportedCurrencyError(e.currency);if(!this.currencyManager.supportsConversion(i,a))throw new Error(`The currency (${i.id}, ${i.hash}) of the request is not supported for this payment network.`)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),f=r(3),a=r(267);class i extends a.default{constructor(e,t=f.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ETH_PROXY,r="0.2.0"){super(t,r,n.conversionSupportedNetworks),this.currencyManager=e}createCreationAction(e){const t=e.network;if(!t)throw Error("network is required");if(!n.conversionSupportedNetworks.includes(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 a=t.action===f.ExtensionTypes.PnFeeReferenceBased.ACTION.CREATE?t.parameters.network:null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network;if(!a)throw new Error("The network must be provided from the creation action or from the extension state");if(!n.conversionSupportedNetworks.includes(a))throw new Error(`The network (${a}) is not supported for this payment network.`);const i=this.currencyManager.fromStorageCurrency(e.currency);if(!i)throw new n.UnsupportedCurrencyError(e.currency);if(!this.currencyManager.supportsConversion(i,a))throw new Error(`The currency (${e.currency.value}) of the request is not supported for this payment network.`)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestLogic=void 0;var n=r(633);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(634),f=r(27),a=r(40),i=r(3),o=r(9),s=r(645);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:a,hashedTopics:i}=yield this.createCreationActionRequestIdAndTopics(e,t,r);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),a,i),c=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:o.meta},result:{requestId:a}});return o.on("confirmed",(e=>{c.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:a}})})).on("error",(e=>{c.emit("error",e)})),c}))}createEncryptedRequest(e,t,r,a=[]){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:i,hashedTopics:o}=yield this.createCreationActionRequestIdAndTopics(e,t,a);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const c=yield this.transactionManager.persistTransaction(JSON.stringify(n),i,o,r),u=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:c.meta},result:{requestId:i}});return c.on("confirmed",(e=>{u.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:i}})})).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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}getRequestFromId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{ignoredTransactions:t,confirmedRequestState:r,pendingRequestState:n,transactionManagerMeta:f}=yield this.computeRequestFromRequestId(e);return{meta:{ignoredTransactions:t,transactionManagerMeta:f},result:{request:r,pending:this.computeDiffBetweenPendingAndConfirmedRequestState(r,n)}}}))}getRequestsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=a.default.serialize(o.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=>a.default.serialize(o.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),f=s.default.getRequestIdFromAction(n);return{action:n,hashedTopics:r.map((e=>a.default.serialize(o.default.crypto.normalizeKeccak256Hash(e)))),requestId:f}}))}computeRequestFromRequestId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.transactionManager.getTransactionsByChannelId(e),r=t.result.transactions.filter(o.default.notNull).sort(((e,t)=>e.timestamp-t.timestamp));let{ignoredTransactions:n,keptTransactions:f}=this.removeOldPendingTransactions(r);const a=o.default.uniqueByProperty(f.filter(o.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(o.default.notNull),"action");n=n.concat(a.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:i,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(a.uniqueItems);return n=n.concat(c),{confirmedRequestState:i,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===i.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===i.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,f=Object.keys(e.result.transactions).map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){let{ignoredTransactions:n,keptTransactions:f}=this.removeOldPendingTransactions(t[e]);const a=o.default.uniqueByProperty(f.filter(o.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(o.default.notNull),"action");n=n.concat(a.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:i,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(a.uniqueItems);n=n.concat(c);const u=this.computeDiffBetweenPendingAndConfirmedRequestState(i,s);return{ignoredTransactions:n,pending:u,request:i,transactionManagerMeta:r[e]}}))));return(yield Promise.all(f)).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&&o.default.crypto.normalizeKeccak256Hash(t[n]).value!==o.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===i.TransactionTypes.TransactionState.CONFIRMED,e.state===i.TransactionTypes.TransactionState.CONFIRMED||e.state===i.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 f})),r.d(t,"__assign",(function(){return a})),r.d(t,"__rest",(function(){return i})),r.d(t,"__decorate",(function(){return o})),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 d})),r.d(t,"__createBinding",(function(){return l})),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 m})),r.d(t,"__spreadArrays",(function(){return y})),r.d(t,"__spreadArray",(function(){return g})),r.d(t,"__await",(function(){return v})),r.d(t,"__asyncGenerator",(function(){return w})),r.d(t,"__asyncDelegator",(function(){return _})),r.d(t,"__asyncValues",(function(){return E})),r.d(t,"__makeTemplateObject",(function(){return A})),r.d(t,"__importStar",(function(){return x})),r.d(t,"__importDefault",(function(){return S})),r.d(t,"__classPrivateFieldGet",(function(){return C})),r.d(t,"__classPrivateFieldSet",(function(){return O}));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 f(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 a=function(){return(a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var f in t=arguments[r])Object.prototype.hasOwnProperty.call(t,f)&&(e[f]=t[f]);return e}).apply(this,arguments)};function i(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 f=0;for(n=Object.getOwnPropertySymbols(e);f<n.length;f++)t.indexOf(n[f])<0&&Object.prototype.propertyIsEnumerable.call(e,n[f])&&(r[n[f]]=e[n[f]])}return r}function o(e,t,r,n){var f,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(f=e[o])&&(i=(a<3?f(i):a>3?f(t,r,i):f(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}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(f,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function o(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?f(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,o)}s((n=n.apply(e,t||[])).next())}))}function d(e,t){var r,n,f,a,i={label:0,sent:function(){if(1&f[0])throw f[1];return f[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(f=2&a[0]?n.return:a[0]?n.throw||((f=n.return)&&f.call(n),0):n.next)&&!(f=f.call(n,a[1])).done)return f;switch(n=0,f&&(a=[2&a[0],f.value]),a[0]){case 0:case 1:f=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(f=i.trys,(f=f.length>0&&f[f.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!f||a[1]>f[0]&&a[1]<f[3])){i.label=a[1];break}if(6===a[0]&&i.label<f[1]){i.label=f[1],f=a;break}if(f&&i.label<f[2]){i.label=f[2],i.ops.push(a);break}f[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=f=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}}var l=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)||l(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,f,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){f={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(f)throw f.error}}return i}function m(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(b(arguments[t]));return e}function y(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),f=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,o=a.length;i<o;i++,f++)n[f]=a[i];return n}function g(e,t,r){if(r||2===arguments.length)for(var n,f=0,a=t.length;f<a;f++)!n&&f in t||(n||(n=Array.prototype.slice.call(t,0,f)),n[f]=t[f]);return e.concat(n||Array.prototype.slice.call(t))}function v(e){return this instanceof v?(this.v=e,this):new v(e)}function w(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,f=r.apply(e,t||[]),a=[];return n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n;function i(e){f[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||o(e,t)}))})}function o(e,t){try{(r=f[e](t)).value instanceof v?Promise.resolve(r.value.v).then(s,c):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function s(e){o("next",e)}function c(e){o("throw",e)}function u(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}function _(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,f){t[n]=e[n]?function(t){return(r=!r)?{value:v(e[n](t)),done:"return"===n}:f?f(t):t}:f}}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,f){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,f,(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 T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function x(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)&&l(t,e,r);return T(t,e),t}function S(e){return e&&e.__esModule?e:{default:e}}function C(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 O(e,t,r,n,f){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!f)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!f:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?f.call(e,r):f?f.value=r:t.set(e,r),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(636),a=r(637),i=r(638),o=new n.default([new f.default,new i.default,new a.default]);t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_CBC_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_CBC)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_GCM_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_GCM)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.ECIES_ENCRYPTED,n.EncryptionTypes.METHOD.ECIES)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(640),a=new n.default([new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(268);class a extends f.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=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(642),a=new n.default([new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(268);class a extends f.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=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(644),a=new n.default([new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.PLAIN_TEXT,n.MultiFormatTypes.PlainTypes.TYPE.PLAIN_TEXT)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(647),s=r(648),c=r(649),u=r(650),d=r(651),l=r(652);t.default={applyActionToRequest:function(e,t,r,h){if(!a.default.isActionVersionSupported(t))throw new Error("action version not supported");const p=e?f.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");i.default.checkRequest(p),t.data.name===n.RequestLogicTypes.ACTION_NAME.ACCEPT&&(b=o.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=d.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT&&(b=l.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,a.default.getSignerIdentityFromAction(t),r)),b.extensions));return b},formatAccept:o.default.format,formatAddExtensionsData:s.default.format,formatCancel:c.default.format,formatCreate:u.default.format,formatIncreaseExpectedAmount:d.default.format,formatReduceExpectedAmount:l.default.format,getRequestIdFromAction:function(e){return a.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(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:{extensionsDataLength:f.extensionsData?f.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 o=a.default.getSignerIdentityFromAction(e);if(i.default.getRoleInRequest(o,r)!==n.RequestLogicTypes.ROLE.PAYER)throw new Error("Signer must be the payer");r.state=n.RequestLogicTypes.STATE.ACCEPTED;let c=f.default.deepCopy(r);return c=i.default.pushExtensionsData(c,e.data.parameters.extensionsData),c.events.push(s(e,t,o)),c},format:function(e,t,r){const f={name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:e,version:o.default.currentVersion};return a.default.createAction(f,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:{extensionsDataLength:f.extensionsData?f.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=a.default.getSignerIdentityFromAction(e);let o=f.default.deepCopy(r);return o=i.default.pushExtensionsData(o,e.data.parameters.extensionsData),o.events.push(s(e,t,n)),o},format:function(e,t,r){if(!e.extensionsData||0===e.extensionsData.length)throw new Error("extensionsData must be given");const f={name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:e,version:o.default.currentVersion};return a.default.createAction(f,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:{extensionsDataLength:f.extensionsData?f.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 o=a.default.getSignerIdentityFromAction(e),c=i.default.getRoleInRequest(o,r);let u=f.default.deepCopy(r);if(u=i.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,o)),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 f={name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:e,version:o.default.currentVersion};return a.default.createAction(f,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(151),i=r(56),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:{expectedAmount:f.expectedAmount,extensionsDataLength:f.extensionsData?f.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&&f.default.identity.hasError(e.data.parameters.payee))throw new Error(`payee: ${f.default.identity.hasError(e.data.parameters.payee)}̀`);if(e.data.parameters.payer&&f.default.identity.hasError(e.data.parameters.payer))throw new Error(`payer: ${f.default.identity.hasError(e.data.parameters.payer)}̀`);if(!f.default.isString(e.data.parameters.expectedAmount)||!f.default.amount.isValid(e.data.parameters.expectedAmount))throw new Error("action.parameters.expectedAmount must be a string representing a positive integer");const r=i.default.getSignerIdentityFromAction(e),o=f.default.deepCopy(e.data.parameters);o.extensions={},o.requestId=i.default.getRequestId(e),o.version=i.default.getVersionFromAction(e),o.events=[s(e,t,r)],a.lt(e.data.version,"2.0.2")&&(o.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=i.default.getRoleInAction(r,e);if(c===n.RequestLogicTypes.ROLE.PAYEE)return o.state=n.RequestLogicTypes.STATE.CREATED,o.creator=e.data.parameters.payee,o;if(c===n.RequestLogicTypes.ROLE.PAYER)return o.state=n.RequestLogicTypes.STATE.ACCEPTED,o.creator=e.data.parameters.payer,o;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(!f.default.amount.isValid(e.expectedAmount))throw new Error("expectedAmount must be a positive integer");if(e.payee&&f.default.identity.hasError(e.payee))throw new Error(`payee: ${f.default.identity.hasError(e.payee)}̀`);if(e.payer&&f.default.identity.hasError(e.payer))throw new Error(`payer: ${f.default.identity.hasError(e.payer)}̀`);e.timestamp||(e.timestamp=f.default.getCurrentTimestampInSecond());e.expectedAmount=e.expectedAmount.toString();const a=o.default.currentVersion,s={name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:e,version:a},c=i.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 i.default.createAction(s,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:f.extensionsData?f.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(!f.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o=a.default.getSignerIdentityFromAction(e),c=i.default.getRoleInRequest(o,r);let u=f.default.deepCopy(r);if(u=i.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,o)),c===n.RequestLogicTypes.ROLE.PAYER){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=f.default.amount.add(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payer")},format:function(e,t,r){if(!f.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const i={name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:e,version:o.default.currentVersion};return a.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:f.extensionsData?f.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(!f.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o=a.default.getSignerIdentityFromAction(e),c=i.default.getRoleInRequest(o,r);let u=f.default.deepCopy(r);if(u=i.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,o)),c===n.RequestLogicTypes.ROLE.PAYEE){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=f.default.amount.reduce(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payee")},format:function(e,t,r){if(!f.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const i={name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:e,version:o.default.currentVersion};return a.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransactionManager=void 0;var n=r(654);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(71),f=r(40),a=r(3),i=r(9),o=r(27),s=r(655),c=r(659);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 d=f.default.serialize(i.default.crypto.normalizeKeccak256Hash(JSON.parse(e)));if(t===d)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:f,channelType:i,encryptionMethod:o}=yield this.channelParser.getChannelTypeAndChannelKey(t,r.result.transactions);if(i===a.TransactionTypes.ChannelType.UNKNOWN)throw new Error(`Impossible to retrieve the channel: ${t}`);if(i===a.TransactionTypes.ChannelType.CLEAR&&(u=yield c.default.createClearTransaction(e)),i===a.TransactionTypes.ChannelType.ENCRYPTED){if(0!==s.length)throw new Error("Impossible to add new stakeholder to an existing channel");if(!f)throw new Error(`Impossible to decrypt the channel key of: ${t}`);u=yield c.default.createEncryptedTransaction(e,f),n=o}}const l=yield this.dataAccess.persistTransaction(u,t,r.concat([d])),h=Object.assign(new o.EventEmitter,{meta:{dataAccessMeta:l.meta,encryptionMethod:n},result:{}});return l.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:f,encryptionMethod:a}=yield this.channelParser.decryptAndCleanChannel(e,r.result.transactions),i={dataAccessMeta:r.meta,encryptionMethod:a,ignoredTransactions:f};return a||delete i.encryptionMethod,{meta:i,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]),f=yield t;return f.transactions[r]=n.transactions,f.ignoredTransactions[r]=n.ignoredTransactions,f}))),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(71),f=r(3),a=r(656);t.default=class{constructor(e){this.transactionParser=new a.default(e)}decryptAndCleanChannel(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let r,a,i=f.TransactionTypes.ChannelType.UNKNOWN;const o=yield t.reduce(((t,o)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield t;let s;try{s=yield this.transactionParser.parsePersistedTransaction(o.transaction,i,r)}catch(u){return n.concat([{ignored:{reason:u.message,transaction:o},valid:null}])}const c=s.transaction,u=yield c.getError();if(""!==u)return n.concat([{ignored:{reason:u,transaction:o},valid:null}]);if(i===f.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:o},valid:null}]);i=s.channelKey?f.TransactionTypes.ChannelType.ENCRYPTED:f.TransactionTypes.ChannelType.CLEAR,a=s.encryptionMethod,r=s.channelKey}const d=yield c.getData();return n.concat([{ignored:null,valid:{state:o.state,timestamp:o.timestamp,transaction:{data:d}}}])}))),Promise.resolve([])),s=o.map((e=>e.ignored)),c=o.map((e=>e.valid));return{encryptionMethod:a,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!==f.TransactionTypes.ChannelType.UNKNOWN)return n;let a;try{a=yield this.transactionParser.parsePersistedTransaction(r.transaction,f.TransactionTypes.ChannelType.UNKNOWN)}catch(e){return n}const i=a.transaction;if(""!==(yield i.getError()))return n;return(yield i.getHash())!==e||(n.channelType=a.channelKey?f.TransactionTypes.ChannelType.ENCRYPTED:f.TransactionTypes.ChannelType.CLEAR,n.channelKey=a.channelKey,n.encryptionMethod=a.encryptionMethod),n}))),Promise.resolve({channelKey:void 0,channelType:f.TransactionTypes.ChannelType.UNKNOWN,encryptionMethod:void 0}))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71),f=r(40),a=r(3),i=r(657),o=r(658);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===a.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 i.default(e.data)}}if(e.encryptedData){if(t===a.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 o.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===`${a.EncryptionTypes.METHOD.ECIES}-${a.EncryptionTypes.METHOD.AES256_CBC}`)r=a.EncryptionTypes.METHOD.AES256_CBC;else{if(t!==`${a.EncryptionTypes.METHOD.ECIES}-${a.EncryptionTypes.METHOD.AES256_GCM}`)throw new Error(`Encryption method not supported: ${t}`);r=a.EncryptionTypes.METHOD.AES256_GCM}let i="";const o=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=f.default.deserialize(r)}catch(e){}if(t&&t.type===a.IdentityTypes.TYPE.ETHEREUM_ADDRESS&&this.decryptionProvider&&(yield this.decryptionProvider.isIdentityRegistered(t)))try{const a=f.default.deserialize(e[r]);n=yield this.decryptionProvider.decrypt(a,t)}catch(e){i=e.message}}return n}))),Promise.resolve(""));if(""===o)throw new Error(`Impossible to decrypt the channel key from this transaction (${i})`);return{key:o,method:r}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71),f=r(40),a=r(9);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 f.default.serialize(a.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(71),f=r(40),a=r(9);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=f.default.deserialize(this.persistedData);this.data=yield a.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=a.default.crypto.normalizeKeccak256Hash(JSON.parse(e));this.dataHashSerialized=f.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(71),f=r(40),a=r(3),i=r(9);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=`${a.EncryptionTypes.METHOD.ECIES}-${a.EncryptionTypes.METHOD.AES256_GCM}`,o=yield i.default.crypto.generate32BufferKey(),s=yield i.default.encryption.encrypt(e,{key:o,method:a.EncryptionTypes.METHOD.AES256_GCM});try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}if(!t.every((e=>e.method===a.EncryptionTypes.METHOD.ECIES)))throw new Error(`encryptionParams method must be all: ${a.EncryptionTypes.METHOD.ECIES}`);const c=t.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield i.default.encryption.encrypt(o,e),r=i.default.encryption.getIdentityFromEncryptionParams(e);return{encryptedKey:t,multiFormattedIdentity:f.default.serialize(r)}})))),u=(yield Promise.all(c)).reduce(((e,t)=>{const r=f.default.serialize(t.encryptedKey);return e[t.multiFormattedIdentity]=r,e}),{});return{encryptedData:f.default.serialize(s),keys:u,encryptionMethod:r}}))}static createEncryptedTransaction(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(t.method!==a.EncryptionTypes.METHOD.AES256_GCM)throw new Error(`encryption method not supported for the channel key: ${t.method}`);const r=yield i.default.encryption.encrypt(e,t);try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}return{encryptedData:f.default.serialize(r)}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(661),f=r(3).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[f]?e.extensions[f].values.content:null}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(270),f=r(662),a=r(696),i=r(697),o=r(698);t.default={validate(e){var t;const r=(new f).addMetaSchema(a).addSchema(i);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=o.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(702),t)},function(e,t,r){"use strict";var n=r(663),f=r(152),a=r(667),i=r(271),o=r(272),s=r(668),c=r(669),u=r(690),d=r(72);e.exports=y,y.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 f=r(t);!0!==r.$async&&(this.errors=r.errors);return f},y.prototype.compile=function(e,t){var r=this._addSchema(e,void 0,t);return r.validate||this._compile(r)},y.prototype.addSchema=function(e,t,r,n){if(Array.isArray(e)){for(var a=0;a<e.length;a++)this.addSchema(e[a],void 0,r,n);return this}var i=this._getId(e);if(void 0!==i&&"string"!=typeof i)throw new Error("schema id must be string");return A(this,t=f.normalizeId(t||i)),this._schemas[t]=this._addSchema(e,r,n,!0),this},y.prototype.addMetaSchema=function(e,t,r){return this.addSchema(e,t,r,!0),this},y.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 f="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(f);this.logger.error(f)}return n},y.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=f.schema.call(e,{schema:{}},t);if(r){var a=r.schema,o=r.root,s=r.baseId,c=n.call(e,a,o,void 0,s);return e._fragments[t]=new i({ref:t,fragment:!0,schema:a,root:o,baseId:s,validate:c}),c}}(this,e)}},y.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 a=this._getId(e);a&&(a=f.normalizeId(a),delete this._schemas[a],delete this._refs[a])}return this},y.prototype.addFormat=function(e,t){"string"==typeof t&&(t=new RegExp(t));return this._formats[e]=t,this},y.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,f="",a=0;a<e.length;a++){var i=e[a];i&&(f+=n+i.dataPath+" "+i.message+r)}return f.slice(0,-r.length)},y.prototype._addSchema=function(e,t,r,n){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var a=this._opts.serialize,o=a?a(e):e,s=this._cache.get(o);if(s)return s;n=n||!1!==this._opts.addUsedSchema;var c=f.normalizeId(this._getId(e));c&&n&&A(this,c);var u,d=!1!==this._opts.validateSchema&&!t;d&&!(u=c&&c==f.normalizeId(e.$schema))&&this.validateSchema(e,!0);var l=f.ids.call(this,e),h=new i({id:c,schema:e,localRefs:l,cacheKey:o,meta:r});"#"!=c[0]&&n&&(this._refs[c]=h);this._cache.put(o,h),d&&u&&this.validateSchema(e,!0);return h},y.prototype._compile=function(e,t){if(e.compiling)return e.validate=a,a.schema=e.schema,a.errors=null,a.root=t||a,!0===e.schema.$async&&(a.$async=!0),a;var r,f;e.compiling=!0,e.meta&&(r=this._opts,this._opts=this._metaOpts);try{f=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=f,e.refs=f.refs,e.refVal=f.refVal,e.root=f.root,f;function a(){var t=e.validate,r=t.apply(this,arguments);return a.errors=t.errors,r}},y.prototype.compileAsync=r(691);var l=r(692);y.prototype.addKeyword=l.add,y.prototype.getKeyword=l.get,y.prototype.removeKeyword=l.remove,y.prototype.validateKeyword=l.validate;var h=r(154);y.ValidationError=h.Validation,y.MissingRefError=h.MissingRef,y.$dataMetaSchema=u;var p="http://json-schema.org/draft-07/schema",b=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],m=["/properties"];function y(e){if(!(this instanceof y))return new y(e);e=this._opts=d.copy(e)||{},function(e){var t=e._opts.logger;if(!1===t)e.logger={log:T,warn:T,error:T};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 a,this._loadingSchemas={},this._compilations=[],this.RULES=c(),this._getId=function(e){switch(e.schemaId){case"auto":return E;case"id":return w;default:return _}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=o),this._metaOpts=function(e){for(var t=d.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(695),e.addMetaSchema(t,t.$id,!0));if(!1===e._opts.meta)return;var n=r(278);e._opts.$data&&(n=u(n,m));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=f.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function v(e,t,r){for(var n in t){var f=t[n];f.meta||r&&!r.test(n)||(e._cache.del(f.cacheKey),delete t[n])}}function w(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function _(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 T(){}},function(e,t,r){"use strict";var n=r(152),f=r(72),a=r(154),i=r(272),o=r(273),s=f.ucs2length,c=r(153),u=a.Validation;function d(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 l(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 f=this._compilations[n];if(f.schema==e&&f.root==t&&f.baseId==r)return n}return-1}function p(e,t){return"var pattern"+e+" = new RegExp("+f.toQuotedString(t[e])+");"}function b(e){return"var default"+e+" = defaults["+e+"];"}function m(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function y(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 w=this,_=this._opts,E=[void 0],A={},T=[],x={},S=[],C={},O=[];r=r||{schema:t,refVal:E,refs:A};var k=d.call(this,t,r,v),P=this._compilations[k.index];if(k.compiling)return P.callValidate=function e(){var t=P.validate,r=t.apply(this,arguments);return e.errors=t.errors,r};var R=this._formats,M=this.RULES;try{var D=B(t,r,h,v);P.validate=D;var N=P.callValidate;return N&&(N.schema=D.schema,N.errors=null,N.refs=D.refs,N.refVal=D.refVal,N.root=D.root,N.$async=D.$async,_.sourceCode&&(N.source=D.source)),D}finally{l.call(this,t,r,v)}function B(t,i,d,l){var h=!i||i&&i.schema==t;if(i.schema!=r.schema)return e.call(w,t,i,d,l);var v,x=!0===t.$async,C=o({isTop:!0,schema:t,isRoot:h,baseId:l,root:i,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:a.MissingRef,RULES:M,validate:o,util:f,resolve:n,resolveRef:I,usePattern:L,useDefault:U,useCustomRule:q,opts:_,formats:R,logger:w.logger,self:w});C=g(E,m)+g(T,p)+g(S,b)+g(O,y)+C,_.processCode&&(C=_.processCode(C,t));try{v=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",C)(w,M,R,r,E,S,O,c,s,u),E[0]=v}catch(e){throw w.logger.error("Error compiling schema, function code:",C),e}return v.schema=t,v.errors=null,v.refs=A,v.refVal=E,v.root=h?v:i,x&&(v.$async=!0),!0===_.sourceCode&&(v.source={code:C,patterns:T,defaults:S}),v}function I(t,f,a){f=n.url(t,f);var i,o,s=A[f];if(void 0!==s)return j(i=E[s],o="refVal["+s+"]");if(!a&&r.refs){var c=r.refs[f];if(void 0!==c)return j(i=r.refVal[c],o=F(f,i))}o=F(f);var u=n.call(w,B,r,f);if(void 0===u){var d=h&&h[f];d&&(u=n.inlineRef(d,_.inlineRefs)?d:e.call(w,d,r,h,t))}if(void 0!==u)return function(e,t){var r=A[e];E[r]=t}(f,u),j(u,o);!function(e){delete A[e]}(f)}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=x[e];return void 0===t&&(t=x[e]=T.length,T[t]=e),"pattern"+t}function U(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return f.toQuotedString(e);case"object":if(null===e)return"null";var t=i(e),r=C[t];return void 0===r&&(r=C[t]=S.length,S[r]=e),"default"+r}}function q(e,t,r,n){if(!1!==w._opts.validateSchema){var f=e.definition.dependencies;if(f&&!f.every((function(e){return Object.prototype.hasOwnProperty.call(r,e)})))throw new Error("parent schema must have all required keywords: "+f.join(","));var a=e.definition.validateSchema;if(a)if(!a(t)){var i="keyword schema is invalid: "+w.errorsText(a.errors);if("log"!=w._opts.validateSchema)throw new Error(i);w.logger.error(i)}}var o,s=e.definition.compile,c=e.definition.inline,u=e.definition.macro;if(s)o=s.call(w,t,r,n);else if(u)o=u.call(w,t,r,n),!1!==_.validateSchema&&w.validateSchema(o,!0);else if(c)o=c.call(w,n,e.keyword,t,r);else if(!(o=e.definition.validate))return;if(void 0===o)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var d=O.length;return O[d]=o,{code:"customRule"+d,validate:o}}}},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,f=1;f<n;++f)t[f]=t[f].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 f(e){return e.toUpperCase()}function a(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 i(e,t){var r=e;if(t)for(var n in t)r[n]=t[n];return r}function o(e){var n="[A-Za-z]",f="[0-9]",a=t(f,"[A-Fa-f]"),i=r(r("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+r("%[89A-Fa-f]"+a+"%"+a+a)+"|"+r("%"+a+a)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",s=t("[\\:\\/\\?\\#\\[\\]\\@]",o),c=e?"[\\uE000-\\uF8FF]":"[]",u=t(n,f,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),d=r(n+t(n,f,"[\\+\\-\\.]")+"*"),l=r(r(i+"|"+t(u,o,"[\\:]"))+"*"),h=(r(r("25[0-5]")+"|"+r("2[0-4]"+f)+"|"+r("1"+f+f)+"|"+r("[1-9]"+f)+"|"+f),r(r("25[0-5]")+"|"+r("2[0-4]"+f)+"|"+r("1"+f+f)+"|"+r("0?[1-9]"+f)+"|0?0?"+f)),p=r(h+"\\."+h+"\\."+h+"\\."+h),b=r(a+"{1,4}"),m=r(r(b+"\\:"+b)+"|"+p),y=r(r(b+"\\:")+"{6}"+m),g=r("\\:\\:"+r(b+"\\:")+"{5}"+m),v=r(r(b)+"?\\:\\:"+r(b+"\\:")+"{4}"+m),w=r(r(r(b+"\\:")+"{0,1}"+b)+"?\\:\\:"+r(b+"\\:")+"{3}"+m),_=r(r(r(b+"\\:")+"{0,2}"+b)+"?\\:\\:"+r(b+"\\:")+"{2}"+m),E=r(r(r(b+"\\:")+"{0,3}"+b)+"?\\:\\:"+b+"\\:"+m),A=r(r(r(b+"\\:")+"{0,4}"+b)+"?\\:\\:"+m),T=r(r(r(b+"\\:")+"{0,5}"+b)+"?\\:\\:"+b),x=r(r(r(b+"\\:")+"{0,6}"+b)+"?\\:\\:"),S=r([y,g,v,w,_,E,A,T,x].join("|")),C=r(r(u+"|"+i)+"+"),O=(r(S+"\\%25"+C),r(S+r("\\%25|\\%(?!"+a+"{2})")+C)),k=r("[vV]"+a+"+\\."+t(u,o,"[\\:]")+"+"),P=r("\\["+r(O+"|"+S+"|"+k)+"\\]"),R=r(r(i+"|"+t(u,o))+"*"),M=r(P+"|"+p+"(?!"+R+")|"+R),D=r(f+"*"),N=r(r(l+"@")+"?"+M+r("\\:"+D)+"?"),B=r(i+"|"+t(u,o,"[\\:\\@]")),I=r(B+"*"),F=r(B+"+"),j=r(r(i+"|"+t(u,o,"[\\@]"))+"+"),L=r(r("\\/"+I)+"*"),U=r("\\/"+r(F+L)+"?"),q=r(j+L),H=r(F+L),z="(?!"+B+")",V=(r(L+"|"+U+"|"+q+"|"+H+"|"+z),r(r(B+"|"+t("[\\/\\?]",c))+"*")),K=r(r(B+"|[\\/\\?]")+"*"),G=r(r("\\/\\/"+N+L)+"|"+U+"|"+H+"|"+z),$=r(d+"\\:"+G+r("\\?"+V)+"?"+r("\\#"+K)+"?"),W=r(r("\\/\\/"+N+L)+"|"+U+"|"+q+"|"+z),Y=r(W+r("\\?"+V)+"?"+r("\\#"+K)+"?");return r($+"|"+Y),r(d+"\\:"+G+r("\\?"+V)+"?"),r(r("\\/\\/("+r("("+l+")@")+"?("+M+")"+r("\\:("+D+")")+"?)")+"?("+L+"|"+U+"|"+H+"|"+z+")"),r("\\?("+V+")"),r("\\#("+K+")"),r(r("\\/\\/("+r("("+l+")@")+"?("+M+")"+r("\\:("+D+")")+"?)")+"?("+L+"|"+U+"|"+q+"|"+z+")"),r("\\?("+V+")"),r("\\#("+K+")"),r(r("\\/\\/("+r("("+l+")@")+"?("+M+")"+r("\\:("+D+")")+"?)")+"?("+L+"|"+U+"|"+H+"|"+z+")"),r("\\?("+V+")"),r("\\#("+K+")"),r("("+l+")@"),r("\\:("+D+")"),{NOT_SCHEME:new RegExp(t("[^]",n,f,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",u,o),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",u,o),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",u,o),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",u,o),"g"),NOT_QUERY:new RegExp(t("[^\\%]",u,o,"[\\:\\@\\/\\?]",c),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",u,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",u,o),"g"),UNRESERVED:new RegExp(u,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",u,s),"g"),PCT_ENCODED:new RegExp(i,"g"),IPV4ADDRESS:new RegExp("^("+p+")$"),IPV6ADDRESS:new RegExp("^\\[?("+S+")"+r(r("\\%25|\\%(?!"+a+"{2})")+"("+C+")")+"?\\]?$")}}var s=o(!1),c=o(!0),u=function(){function e(e,t){var r=[],n=!0,f=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(n=(i=o.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){f=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(f)throw a}}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")}}(),d=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)},l=2147483647,h=36,p=1,b=26,m=38,y=700,g=72,v=128,w="-",_=/^xn--/,E=/[^\0-\x7E]/,A=/[\x2E\u3002\uFF0E\uFF61]/g,T={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},x=h-p,S=Math.floor,C=String.fromCharCode;function O(e){throw new RangeError(T[e])}function k(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}function P(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 R(e){for(var t=[],r=0,n=e.length;r<n;){var f=e.charCodeAt(r++);if(f>=55296&&f<=56319&&r<n){var a=e.charCodeAt(r++);56320==(64512&a)?t.push(((1023&f)<<10)+(1023&a)+65536):(t.push(f),r--)}else t.push(f)}return t}var M=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:h},D=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},N=function(e,t,r){var n=0;for(e=r?S(e/y):e>>1,e+=S(e/t);e>x*b>>1;n+=h)e=S(e/x);return S(n+(x+1)*e/(e+m))},B=function(e){var t=[],r=e.length,n=0,f=v,a=g,i=e.lastIndexOf(w);i<0&&(i=0);for(var o=0;o<i;++o)e.charCodeAt(o)>=128&&O("not-basic"),t.push(e.charCodeAt(o));for(var s=i>0?i+1:0;s<r;){for(var c=n,u=1,d=h;;d+=h){s>=r&&O("invalid-input");var m=M(e.charCodeAt(s++));(m>=h||m>S((l-n)/u))&&O("overflow"),n+=m*u;var y=d<=a?p:d>=a+b?b:d-a;if(m<y)break;var _=h-y;u>S(l/_)&&O("overflow"),u*=_}var E=t.length+1;a=N(n-c,E,0==c),S(n/E)>l-f&&O("overflow"),f+=S(n/E),n%=E,t.splice(n++,0,f)}return String.fromCodePoint.apply(String,t)},I=function(e){var t=[],r=(e=R(e)).length,n=v,f=0,a=g,i=!0,o=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var d=c.value;d<128&&t.push(C(d))}}catch(e){o=!0,s=e}finally{try{!i&&u.return&&u.return()}finally{if(o)throw s}}var m=t.length,y=m;for(m&&t.push(w);y<r;){var _=l,E=!0,A=!1,T=void 0;try{for(var x,k=e[Symbol.iterator]();!(E=(x=k.next()).done);E=!0){var P=x.value;P>=n&&P<_&&(_=P)}}catch(e){A=!0,T=e}finally{try{!E&&k.return&&k.return()}finally{if(A)throw T}}var M=y+1;_-n>S((l-f)/M)&&O("overflow"),f+=(_-n)*M,n=_;var B=!0,I=!1,F=void 0;try{for(var j,L=e[Symbol.iterator]();!(B=(j=L.next()).done);B=!0){var U=j.value;if(U<n&&++f>l&&O("overflow"),U==n){for(var q=f,H=h;;H+=h){var z=H<=a?p:H>=a+b?b:H-a;if(q<z)break;var V=q-z,K=h-z;t.push(C(D(z+V%K,0))),q=S(V/K)}t.push(C(D(q,0))),a=N(f,M,y==m),f=0,++y}}}catch(e){I=!0,F=e}finally{try{!B&&L.return&&L.return()}finally{if(I)throw F}}++f,++n}return t.join("")},F=function(e){return P(e,(function(e){return _.test(e)?B(e.slice(4).toLowerCase()):e}))},j=function(e){return P(e,(function(e){return E.test(e)?"xn--"+I(e):e}))},L={version:"2.1.0",ucs2:{decode:R,encode:function(e){return String.fromCodePoint.apply(String,d(e))}},decode:B,encode:I,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 H(e){for(var t="",r=0,n=e.length;r<n;){var f=parseInt(e.substr(r+1,2),16);if(f<128)t+=String.fromCharCode(f),r+=3;else if(f>=194&&f<224){if(n-r>=6){var a=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&f)<<6|63&a)}else t+=e.substr(r,6);r+=6}else if(f>=224){if(n-r>=9){var i=parseInt(e.substr(r+4,2),16),o=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&f)<<12|(63&i)<<6|63&o)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function z(e,t){function r(e){var r=H(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,f)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,q).replace(t.PCT_ENCODED,f)),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,f)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,q).replace(t.PCT_ENCODED,f)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,q).replace(t.PCT_ENCODED,f)),e}function V(e){return e.replace(/^0*(.*)/,"$1")||"0"}function K(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=u(r,2)[1];return n?n.split(".").map(V).join("."):e}function G(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=u(r,3),f=n[1],a=n[2];if(f){for(var i=f.toLowerCase().split("::").reverse(),o=u(i,2),s=o[0],c=o[1],d=c?c.split(":").map(V):[],l=s.split(":").map(V),h=t.IPV4ADDRESS.test(l[l.length-1]),p=h?7:8,b=l.length-p,m=Array(p),y=0;y<p;++y)m[y]=d[y]||l[b+y]||"";h&&(m[p-1]=K(m[p-1],t));var g=m.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 w=m.slice(0,g.index),_=m.slice(g.index+g.length);v=w.join(":")+"::"+_.join(":")}else v=m.join(":");return a&&(v+="%"+a),v}return e}var $=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,W=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 f=e.match($);if(f){W?(r.scheme=f[1],r.userinfo=f[3],r.host=f[4],r.port=parseInt(f[5],10),r.path=f[6]||"",r.query=f[7],r.fragment=f[8],isNaN(r.port)&&(r.port=f[5])):(r.scheme=f[1]||void 0,r.userinfo=-1!==e.indexOf("@")?f[3]:void 0,r.host=-1!==e.indexOf("//")?f[4]:void 0,r.port=parseInt(f[5],10),r.path=f[6]||"",r.query=-1!==e.indexOf("?")?f[7]:void 0,r.fragment=-1!==e.indexOf("#")?f[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?f[4]:void 0)),r.host&&(r.host=G(K(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 a=U[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||a&&a.unicodeSupport)z(r,n);else{if(r.host&&(t.domainHost||a&&a.domainHost))try{r.host=L.toASCII(r.host.replace(n.PCT_ENCODED,H).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+e}z(r,s)}a&&a.parse&&a.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(G(K(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=[],f=U[(t.scheme||e.scheme||"").toLowerCase()];if(f&&f.serialize&&f.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||f&&f.domainHost)try{e.host=t.iri?L.toUnicode(e.host):L.toASCII(e.host.replace(r.PCT_ENCODED,H).toLowerCase())}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+r}z(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var a=J(e,t);if(void 0!==a&&("suffix"!==t.reference&&n.push("//"),n.push(a),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var i=e.path;t.absolutePath||f&&f.absolutePath||(i=te(i)),void 0===a&&(i=i.replace(/^\/\//,"/%2F")),n.push(i)}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 fe(e,t,r){var n=i({scheme:"null"},r);return re(ne(Y(e,n),Y(t,n),n,!0),n)}function ae(e,t){return"string"==typeof e?e=re(Y(e,t),t):"object"===n(e)&&(e=Y(re(e,t),t)),e}function ie(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 oe(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,H)}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 de(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var le={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=de(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!==(de(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),f=n[0],a=n[1];e.path=f&&"/"!==f?f:void 0,e.query=a,e.resourceName=void 0}return e.fragment=void 0,e}},he={scheme:"wss",domainHost:le.domainHost,parse:le.parse,serialize:le.serialize},pe={},be="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",me="[0-9A-Fa-f]",ye=r(r("%[EFef]"+me+"%"+me+me+"%"+me+me)+"|"+r("%[89A-Fa-f]"+me+"%"+me+me)+"|"+r("%"+me+me)),ge="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ve=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),we="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",_e=new RegExp(be,"g"),Ee=new RegExp(ye,"g"),Ae=new RegExp(t("[^]",ge,"[\\.]",'[\\"]',ve),"g"),Te=new RegExp(t("[^]",be,we),"g"),xe=Te;function Se(e){var t=H(e);return t.match(_e)?t:e}var Ce={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 f=!1,a={},i=r.query.split("&"),o=0,s=i.length;o<s;++o){var c=i[o].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),d=0,l=u.length;d<l;++d)n.push(u[d]);break;case"subject":r.subject=se(c[1],t);break;case"body":r.body=se(c[1],t);break;default:f=!0,a[se(c[0],t)]=se(c[1],t)}}f&&(r.headers=a)}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=a(e.to);if(n){for(var i=0,o=n.length;i<o;++i){var s=String(n[i]),c=s.lastIndexOf("@"),u=s.slice(0,c).replace(Ee,Se).replace(Ee,f).replace(Ae,q),d=s.slice(c+1);try{d=t.iri?L.toUnicode(d):L.toASCII(se(d,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[i]=u+"@"+d}r.path=n.join(",")}var l=e.headers=e.headers||{};e.subject&&(l.subject=e.subject),e.body&&(l.body=e.body);var h=[];for(var p in l)l[p]!==pe[p]&&h.push(p.replace(Ee,Se).replace(Ee,f).replace(Te,q)+"="+l[p].replace(Ee,Se).replace(Ee,f).replace(xe,q));return h.length&&(r.query=h.join("&")),r}},Oe=/^([^\:]+)\:(.*)/,ke={scheme:"urn",parse:function(e,t){var r=e.path&&e.path.match(Oe),n=e;if(r){var f=t.scheme||n.scheme||"urn",a=r[1].toLowerCase(),i=r[2],o=f+":"+(t.nid||a),s=U[o];n.nid=a,n.nss=i,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,f=r+":"+(t.nid||n),a=U[f];a&&(e=a.serialize(e,t));var i=e,o=e.nss;return i.path=(n||t.nid)+":"+o,i}},Pe=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Re={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(Pe)||(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[le.scheme]=le,U[he.scheme]=he,U[Ce.scheme]=Ce,U[ke.scheme]=ke,U[Re.scheme]=Re,e.SCHEMES=U,e.pctEncChar=q,e.pctDecChars=H,e.parse=Y,e.removeDotSegments=te,e.serialize=re,e.resolveComponents=ne,e.resolve=fe,e.normalize=ae,e.equal=ie,e.escapeComponent=oe,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,f=0;f<n;)r++,(t=e.charCodeAt(f++))>=55296&&t<=56319&&f<n&&56320==(64512&(t=e.charCodeAt(f)))&&f++;return r}},function(e,t,r){"use strict";var n=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),f(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function f(e,t,r,a,i,o,s,c,u,d){if(a&&"object"==typeof a&&!Array.isArray(a)){for(var l in t(a,i,o,s,c,u,d),a){var h=a[l];if(Array.isArray(h)){if(l in n.arrayKeywords)for(var p=0;p<h.length;p++)f(e,t,r,h[p],i+"/"+l+"/"+p,o,i,l,a,p)}else if(l in n.propsKeywords){if(h&&"object"==typeof h)for(var b in h)f(e,t,r,h[b],i+"/"+l+"/"+b.replace(/~/g,"~0").replace(/\//g,"~1"),o,i,l,a,b)}else(l in n.keywords||e.allKeys&&!(l in n.skipKeywords))&&f(e,t,r,h,i+"/"+l,o,i,l,a)}r(a,i,o,s,c,u,d)}}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(72),f=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,a=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,o=/^(?=.{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,d=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,l=/^(?:\/(?:[^~/]|~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 m(e){var t=e.match(f);if(!t)return!1;var r=+t[1],n=+t[2],i=+t[3];return n>=1&&n<=12&&i>=1&&i<=(2==n&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(r)?29:a[n])}function y(e,t){var r=e.match(i);if(!r)return!1;var n=r[1],f=r[2],a=r[3],o=r[5];return(n<=23&&f<=59&&a<=59||23==n&&59==f&&60==a)&&(!t||o)}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:o,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:_,uuid:d,"json-pointer":l,"json-pointer-uri-fragment":h,"relative-json-pointer":p},b.full={date:m,time:y,"date-time":function(e){var t=e.split(g);return 2==t.length&&m(t[0])&&y(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:o,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:_,uuid:d,"json-pointer":l,"json-pointer-uri-fragment":h,"relative-json-pointer":p};var g=/t|\s/i;var v=/\/|:/;var w=/[^\\]\\Z/;function _(e){if(w.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},function(e,t,r){"use strict";var n=r(670),f=r(72).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=f(t),e.types=f(["number","integer","string","array","object","boolean","null"]),e.forEach((function(r){r.rules=r.rules.map((function(r){var f;if("object"==typeof r){var a=Object.keys(r)[0];f=r[a],r=a,f.forEach((function(r){t.push(r),e.all[r]=!0}))}return t.push(r),e.all[r]={keyword:r,code:n[r],implements:f}})),e.all.$comment={keyword:"$comment",code:n.$comment},r.type&&(e.types[r.type]=r)})),e.keywords=f(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(671),allOf:r(672),anyOf:r(673),$comment:r(674),const:r(675),contains:r(676),dependencies:r(677),enum:r(678),format:r(679),if:r(680),items:r(681),maximum:r(274),minimum:r(274),maxItems:r(275),minItems:r(275),maxLength:r(276),minLength:r(276),maxProperties:r(277),minProperties:r(277),multipleOf:r(682),not:r(683),oneOf:r(684),pattern:r(685),properties:r(686),propertyNames:r(687),required:r(688),uniqueItems:r(689),validate:r(273)}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(o||""),l="valid"+i;if("#"==s||"#/"==s)e.isRoot?(n=e.async,f="validate"):(n=!0===e.root.schema.$async,f="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(a),a="",!1!==e.createErrors?(a+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(s)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(s)+"' "),e.opts.verbose&&(a+=" , schema: "+e.util.toQuotedString(s)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),a+=" } "):a+=" {} ";var b=a;a=g.pop(),!e.compositeRule&&u?e.async?a+=" throw new ValidationError(["+b+"]); ":a+=" validate.errors = ["+b+"]; return false; ":a+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(a+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,s,p);e.logger.warn(p),u&&(a+=" if (true) { ")}}else if(h.inline){var m=e.util.copy(e);m.level++;var y="valid"+m.level;m.schema=h.schema,m.schemaPath="",m.errSchemaPath=s,a+=" "+e.validate(m).replace(/validate\.schema/g,h.code)+" ",u&&(a+=" if ("+y+") { ")}else n=!0===h.$async||e.async&&!1!==h.$async,f=h.code}if(f){var g;(g=g||[]).push(a),a="",e.opts.passContext?a+=" "+f+".call(this, ":a+=" "+f+"( ",a+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(a+=" + "+e.errorPath);var v=a+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(a=g.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(a+=" var "+l+"; "),a+=" try { await "+v+"; ",u&&(a+=" "+l+" = true; "),a+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(a+=" "+l+" = false; "),a+=" } ",u&&(a+=" if ("+l+") { ")}else a+=" if (!"+v+") { if (vErrors === null) vErrors = "+f+".errors; else vErrors = vErrors.concat("+f+".errors); errors = vErrors.length; } ",u&&(a+=" else { ")}return a}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.schema[t],a=e.schemaPath+e.util.getProperty(t),i=e.errSchemaPath+"/"+t,o=!e.opts.allErrors,s=e.util.copy(e),c="";s.level++;var u="valid"+s.level,d=s.baseId,l=!0,h=f;if(h)for(var p,b=-1,m=h.length-1;b<m;)p=h[b+=1],(e.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:e.util.schemaHasRules(p,e.RULES.all))&&(l=!1,s.schema=p,s.schemaPath=a+"["+b+"]",s.errSchemaPath=i+"/"+b,n+=" "+e.validate(s)+" ",s.baseId=d,o&&(n+=" if ("+u+") { ",c+="}"));return o&&(n+=l?" if (true) { ":" "+c.slice(0,-1)+" "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level;if(i.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&Object.keys(t).length>0:e.util.schemaHasRules(t,e.RULES.all)}))){var m=h.baseId;n+=" var "+l+" = errors; var "+d+" = false; ";var y=e.compositeRule;e.compositeRule=h.compositeRule=!0;var g=i;if(g)for(var v,w=-1,_=g.length-1;w<_;)v=g[w+=1],h.schema=v,h.schemaPath=o+"["+w+"]",h.errSchemaPath=s+"/"+w,n+=" "+e.validate(h)+" ",h.baseId=m,n+=" "+d+" = "+d+" || "+b+"; if (!"+d+") { ",p+="}";e.compositeRule=h.compositeRule=y,n+=" "+p+" if (!"+d+") { 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"+o+" , 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 = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; 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=" ",f=e.schema[t],a=e.errSchemaPath+"/"+t,i=(e.opts.allErrors,e.util.toQuotedString(f));return!0===e.opts.$comment?n+=" console.log("+i+");":"function"==typeof e.opts.$comment&&(n+=" self._opts.$comment("+i+", "+e.util.toQuotedString(a)+", validate.root.schema);"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l=e.opts.$data&&i&&i.$data;l&&(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; "),l||(n+=" var schema"+f+" = validate.schema"+o+";"),n+="var "+d+" = equal("+u+", schema"+f+"); if (!"+d+") { ";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"+f+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to constant' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e);h.level++;var p="valid"+h.level,b="i"+f,m=h.dataLevel=e.dataLevel+1,y="data"+m,g=e.baseId,v=e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all);if(n+="var "+l+" = errors;var "+d+";",v){var w=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=i,h.schemaPath=o,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 _=u+"["+b+"]";h.dataPathArr[m]=b;var E=e.validate(h);h.baseId=g,e.util.varOccurences(E,y)<2?n+=" "+e.util.varReplace(E,y,_)+" ":n+=" var "+y+" = "+_+"; "+E+" ",n+=" if ("+p+") break; } ",e.compositeRule=h.compositeRule=w,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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var T=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",v&&(n+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e),h="";l.level++;var p="valid"+l.level,b={},m={},y=e.opts.ownProperties;for(_ in i)if("__proto__"!=_){var g=i[_],v=Array.isArray(g)?m:b;v[_]=g}n+="var "+d+" = errors;";var w=e.errorPath;for(var _ in n+="var missing"+f+";",m)if((v=m[_]).length){if(n+=" if ( "+u+e.util.getProperty(_)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(_)+"') "),c){n+=" && ( ";var E=v;if(E)for(var A=-1,T=E.length-1;A<T;){P=E[A+=1],A&&(n+=" || "),n+=" ( ( "+(N=u+(D=e.util.getProperty(P)))+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(P)+"') "),n+=") && (missing"+f+" = "+e.util.toQuotedString(e.opts.jsonPointers?P:D)+") ) "}n+=")) { ";var x="missing"+f,S="' + "+x+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(w,x,!0):w+" + "+x);var C=C||[];C.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(_)+"', missingProperty: '"+S+"', 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(_)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var O=n;n=C.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+O+"]); ":n+=" validate.errors = ["+O+"]; return false; ":n+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{n+=" ) { ";var k=v;if(k)for(var P,R=-1,M=k.length-1;R<M;){P=k[R+=1];var D=e.util.getProperty(P),N=(S=e.util.escapeQuotes(P),u+D);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(w,P,e.opts.jsonPointers)),n+=" if ( "+N+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(P)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(_)+"', missingProperty: '"+S+"', 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(_)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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=w;var B=l.baseId;for(var _ in b){g=b[_];(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(_)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(_)+"') "),n+=") { ",l.schema=g,l.schemaPath=o+e.util.getProperty(_),l.errSchemaPath=s+"/"+e.util.escapeFragment(_),n+=" "+e.validate(l)+" ",l.baseId=B,n+=" } ",c&&(n+=" if ("+p+") { ",h+="}"))}return c&&(n+=" "+h+" if ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l=e.opts.$data&&i&&i.$data;l&&(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; ");var h="i"+f,p="schema"+f;l||(n+=" var "+p+" = validate.schema"+o+";"),n+="var "+d+";",l&&(n+=" if (schema"+f+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+f+")) "+d+" = false; else {"),n+=d+" = false;for (var "+h+"=0; "+h+"<"+p+".length; "+h+"++) if (equal("+u+", "+p+"["+h+"])) { "+d+" = true; break; }",l&&(n+=" } "),n+=" if (!"+d+") { ";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"+f+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var m=n;return n=b.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+=" }",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||"");if(!1===e.opts.format)return c&&(n+=" if (true) { "),n;var d,l=e.opts.$data&&i&&i.$data;l?(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; ",d="schema"+f):d=i;var h=e.opts.unknownFormats,p=Array.isArray(h);if(l){n+=" var "+(b="format"+f)+" = formats["+d+"]; var "+(m="isObject"+f)+" = typeof "+b+" == 'object' && !("+b+" instanceof RegExp) && "+b+".validate; var "+(y="formatType"+f)+" = "+m+" && "+b+".type || 'string'; if ("+m+") { ",e.async&&(n+=" var async"+f+" = "+b+".async; "),n+=" "+b+" = "+b+".validate; } if ( ",l&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),n+=" (","ignore"!=h&&(n+=" ("+d+" && !"+b+" ",p&&(n+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),n+=") || "),n+=" ("+b+" && "+y+" == '"+r+"' && !(typeof "+b+" == 'function' ? ",e.async?n+=" (async"+f+" ? await "+b+"("+u+") : "+b+"("+u+")) ":n+=" "+b+"("+u+") ",n+=" : "+b+".test("+u+"))))) {"}else{var b;if(!(b=e.formats[i])){if("ignore"==h)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(n+=" if (true) { "),n;if(p&&h.indexOf(i)>=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var m,y=(m="object"==typeof b&&!(b instanceof RegExp)&&b.validate)&&b.type||"string";if(m){var g=!0===b.async;b=b.validate}if(y!=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(i)+".validate")+"("+u+"))) { "}else{n+=" if (! ";var v="formats"+e.util.getProperty(i);m&&(v+=".validate"),n+="function"==typeof b?" "+v+"("+u+") ":" "+v+".test("+u+") ",n+=") { "}}var w=w||[];w.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { format: ",n+=l?""+d:""+e.util.toQuotedString(i),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=l?"' + "+d+" + '":""+e.util.escapeQuotes(i),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=l?"validate.schema"+o:""+e.util.toQuotedString(i),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var _=n;return n=w.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e);h.level++;var p="valid"+h.level,b=e.schema.then,m=e.schema.else,y=void 0!==b&&(e.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:e.util.schemaHasRules(b,e.RULES.all)),g=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:e.util.schemaHasRules(m,e.RULES.all)),v=h.baseId;if(y||g){var w;h.createErrors=!1,h.schema=i,h.schemaPath=o,h.errSchemaPath=s,n+=" var "+l+" = errors; var "+d+" = true; ";var _=e.compositeRule;e.compositeRule=h.compositeRule=!0,n+=" "+e.validate(h)+" ",h.baseId=v,h.createErrors=!0,n+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=_,y?(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+=" "+d+" = "+p+"; ",y&&g?n+=" var "+(w="ifClause"+f)+" = 'then'; ":w="'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+=" "+d+" = "+p+"; ",y&&g?n+=" var "+(w="ifClause"+f)+" = 'else'; ":w="'else'",n+=" } "),n+=" if (!"+d+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { failingKeyword: "+w+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match \"' + "+w+" + '\" schema' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,m="i"+f,y=h.dataLevel=e.dataLevel+1,g="data"+y,v=e.baseId;if(n+="var "+l+" = errors;var "+d+";",Array.isArray(i)){var w=e.schema.additionalItems;if(!1===w){n+=" "+d+" = "+u+".length <= "+i.length+"; ";var _=s;s=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+i.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=_,c&&(p+="}",n+=" else { ")}var T=i;if(T)for(var x,S=-1,C=T.length-1;S<C;)if(x=T[S+=1],e.opts.strictKeywords?"object"==typeof x&&Object.keys(x).length>0:e.util.schemaHasRules(x,e.RULES.all)){n+=" "+b+" = true; if ("+u+".length > "+S+") { ";var O=u+"["+S+"]";h.schema=x,h.schemaPath=o+"["+S+"]",h.errSchemaPath=s+"/"+S,h.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),h.dataPathArr[y]=S;var k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,O)+" ":n+=" var "+g+" = "+O+"; "+k+" ",n+=" } ",c&&(n+=" if ("+b+") { ",p+="}")}if("object"==typeof w&&(e.opts.strictKeywords?"object"==typeof w&&Object.keys(w).length>0:e.util.schemaHasRules(w,e.RULES.all))){h.schema=w,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+b+" = true; if ("+u+".length > "+i.length+") { for (var "+m+" = "+i.length+"; "+m+" < "+u+".length; "+m+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);O=u+"["+m+"]";h.dataPathArr[y]=m;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,O)+" ":n+=" var "+g+" = "+O+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" } } ",c&&(n+=" if ("+b+") { ",p+="}")}}else if(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all)){h.schema=i,h.schemaPath=o,h.errSchemaPath=s,n+=" for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);O=u+"["+m+"]";h.dataPathArr[y]=m;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,O)+" ":n+=" var "+g+" = "+O+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(i||""),l=e.opts.$data&&o&&o.$data;if(l?(f+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",n="schema"+a):n=o,!l&&"number"!=typeof o)throw new Error(t+" must be number");f+="var division"+a+";if (",l&&(f+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),f+=" (division"+a+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?f+=" Math.abs(Math.round(division"+a+") - division"+a+") > 1e-"+e.opts.multipleOfPrecision+" ":f+=" division"+a+" !== parseInt(division"+a+") ",f+=" ) ",l&&(f+=" ) "),f+=" ) { ";var h=h||[];h.push(f),f="",!1!==e.createErrors?(f+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(f+=" , message: 'should be multiple of ",f+=l?"' + "+n:n+"'"),e.opts.verbose&&(f+=" , schema: ",f+=l?"validate.schema"+s:""+o,f+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var p=f;return f=h.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+p+"]); ":f+=" validate.errors = ["+p+"]; return false; ":f+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",u&&(f+=" else { "),f}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e);l.level++;var h="valid"+l.level;if(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all)){l.schema=i,l.schemaPath=o,l.errSchemaPath=s,n+=" var "+d+" = errors; ";var p,b=e.compositeRule;e.compositeRule=l.compositeRule=!0,l.createErrors=!1,l.opts.allErrors&&(p=l.opts.allErrors,l.opts.allErrors=!1),n+=" "+e.validate(l)+" ",l.createErrors=!0,p&&(l.opts.allErrors=p),e.compositeRule=l.compositeRule=b,n+=" if ("+h+") { ";var m=m||[];m.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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var y=n;n=m.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+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; 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"+o+" , 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,m=h.baseId,y="prevValid"+f,g="passingSchemas"+f;n+="var "+l+" = errors , "+y+" = false , "+d+" = false , "+g+" = null; ";var v=e.compositeRule;e.compositeRule=h.compositeRule=!0;var w=i;if(w)for(var _,E=-1,A=w.length-1;E<A;)_=w[E+=1],(e.opts.strictKeywords?"object"==typeof _&&Object.keys(_).length>0:e.util.schemaHasRules(_,e.RULES.all))?(h.schema=_,h.schemaPath=o+"["+E+"]",h.errSchemaPath=s+"/"+E,n+=" "+e.validate(h)+" ",h.baseId=m):n+=" var "+b+" = true; ",E&&(n+=" if ("+b+" && "+y+") { "+d+" = false; "+g+" = ["+g+", "+E+"]; } else { ",p+="}"),n+=" if ("+b+") { "+d+" = "+y+" = true; "+g+" = "+E+"; }";return e.compositeRule=h.compositeRule=v,n+=p+"if (!"+d+") { 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"+o+" , 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 = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(i||""),l=e.opts.$data&&o&&o.$data;l?(f+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",n="schema"+a):n=o,f+="if ( ",l&&(f+=" ("+n+" !== undefined && typeof "+n+" != 'string') || "),f+=" !"+(l?"(new RegExp("+n+"))":e.usePattern(o))+".test("+d+") ) { ";var h=h||[];h.push(f),f="",!1!==e.createErrors?(f+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",f+=l?""+n:""+e.util.toQuotedString(o),f+=" } ",!1!==e.opts.messages&&(f+=" , message: 'should match pattern \"",f+=l?"' + "+n+" + '":""+e.util.escapeQuotes(o),f+="\"' "),e.opts.verbose&&(f+=" , schema: ",f+=l?"validate.schema"+s:""+e.util.toQuotedString(o),f+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var p=f;return f=h.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+p+"]); ":f+=" validate.errors = ["+p+"]; return false; ":f+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",u&&(f+=" else { "),f}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e),h="";l.level++;var p="valid"+l.level,b="key"+f,m="idx"+f,y=l.dataLevel=e.dataLevel+1,g="data"+y,v="dataProperties"+f,w=Object.keys(i||{}).filter(D),_=e.schema.patternProperties||{},E=Object.keys(_).filter(D),A=e.schema.additionalProperties,T=w.length||E.length,x=!1===A,S="object"==typeof A&&Object.keys(A).length,C=e.opts.removeAdditional,O=x||S||C,k=e.opts.ownProperties,P=e.baseId,R=e.schema.required;if(R&&(!e.opts.$data||!R.$data)&&R.length<e.opts.loopRequired)var M=e.util.toHash(R);function D(e){return"__proto__"!==e}if(n+="var "+d+" = errors;var "+p+" = true;",k&&(n+=" var "+v+" = undefined;"),O){if(n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+v+".length; "+m+"++) { var "+b+" = "+v+"["+m+"]; ":" for (var "+b+" in "+u+") { ",T){if(n+=" var isAdditional"+f+" = !(false ",w.length)if(w.length>8)n+=" || validate.schema"+o+".hasOwnProperty("+b+") ";else{var N=w;if(N)for(var B=-1,I=N.length-1;B<I;)Y=N[B+=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;)ae=F[j+=1],n+=" || "+e.usePattern(ae)+".test("+b+") "}n+=" ); if (isAdditional"+f+") { "}if("all"==C)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)),x)if(C)n+=" delete "+u+"["+b+"]; ";else{n+=" "+p+" = false; ";var H=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 z=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+z+"]); ":n+=" validate.errors = ["+z+"]; return false; ":n+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=H,c&&(n+=" break; ")}else if(S)if("failing"==C){n+=" var "+d+" = errors; ";var V=e.compositeRule;e.compositeRule=l.compositeRule=!0,l.schema=A,l.schemaPath=e.schemaPath+".additionalProperties",l.errSchemaPath=e.errSchemaPath+"/additionalProperties",l.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);var K=u+"["+b+"]";l.dataPathArr[y]=b;var G=e.validate(l);l.baseId=P,e.util.varOccurences(G,g)<2?n+=" "+e.util.varReplace(G,g,K)+" ":n+=" var "+g+" = "+K+"; "+G+" ",n+=" if (!"+p+") { errors = "+d+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+b+"]; } ",e.compositeRule=l.compositeRule=V}else{l.schema=A,l.schemaPath=e.schemaPath+".additionalProperties",l.errSchemaPath=e.errSchemaPath+"/additionalProperties",l.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);K=u+"["+b+"]";l.dataPathArr[y]=b;G=e.validate(l);l.baseId=P,e.util.varOccurences(G,g)<2?n+=" "+e.util.varReplace(G,g,K)+" ":n+=" var "+g+" = "+K+"; "+G+" ",c&&(n+=" if (!"+p+") break; ")}e.errorPath=U}T&&(n+=" } "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}var $=e.opts.useDefaults&&!e.compositeRule;if(w.length){var W=w;if(W)for(var Y,J=-1,X=W.length-1;J<X;){var Z=i[Y=W[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=(K=u+Q,$&&void 0!==Z.default);l.schema=Z,l.schemaPath=o+Q,l.errSchemaPath=s+"/"+e.util.escapeFragment(Y),l.errorPath=e.util.getPath(e.errorPath,Y,e.opts.jsonPointers),l.dataPathArr[y]=e.util.toQuotedString(Y);G=e.validate(l);if(l.baseId=P,e.util.varOccurences(G,g)<2){G=e.util.varReplace(G,g,K);var te=K}else{te=g;n+=" var "+g+" = "+K+"; "}if(ee)n+=" "+G+" ";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,H=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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";z=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+z+"]); ":n+=" validate.errors = ["+z+"]; return false; ":n+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=H,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+=" "+G+" } "}}c&&(n+=" if ("+p+") { ",h+="}")}}if(E.length){var fe=E;if(fe)for(var ae,ie=-1,oe=fe.length-1;ie<oe;){Z=_[ae=fe[ie+=1]];if(e.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0:e.util.schemaHasRules(Z,e.RULES.all)){l.schema=Z,l.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ae),l.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ae),n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+v+".length; "+m+"++) { var "+b+" = "+v+"["+m+"]; ":" for (var "+b+" in "+u+") { ",n+=" if ("+e.usePattern(ae)+".test("+b+")) { ",l.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);K=u+"["+b+"]";l.dataPathArr[y]=b;G=e.validate(l);l.baseId=P,e.util.varOccurences(G,g)<2?n+=" "+e.util.varReplace(G,g,K)+" ":n+=" var "+g+" = "+K+"; "+G+" ",c&&(n+=" if (!"+p+") break; "),n+=" } ",c&&(n+=" else "+p+" = true; "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}}}return c&&(n+=" "+h+" if ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e);l.level++;var h="valid"+l.level;if(n+="var "+d+" = errors;",e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all)){l.schema=i,l.schemaPath=o,l.errSchemaPath=s;var p="key"+f,b="idx"+f,m="i"+f,y="' + "+p+" + '",g="data"+(l.dataLevel=e.dataLevel+1),v="dataProperties"+f,w=e.opts.ownProperties,_=e.baseId;w&&(n+=" var "+v+" = undefined; "),n+=w?" "+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"+f+" = errors; ";var E=p,A=e.compositeRule;e.compositeRule=l.compositeRule=!0;var T=e.validate(l);l.baseId=_,e.util.varOccurences(T,g)<2?n+=" "+e.util.varReplace(T,g,E)+" ":n+=" var "+g+" = "+E+"; "+T+" ",e.compositeRule=l.compositeRule=A,n+=" if (!"+h+") { for (var "+m+"=startErrs"+f+"; "+m+"<errors; "+m+"++) { vErrors["+m+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(n+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { propertyName: '"+y+"' } ",!1!==e.opts.messages&&(n+=" , message: 'property name \\'"+y+"\\' is invalid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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 ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l=e.opts.$data&&i&&i.$data;l&&(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; ");var h="schema"+f;if(!l)if(i.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],b=i;if(b)for(var m,y=-1,g=b.length-1;y<g;){m=b[y+=1];var v=e.schema.properties[m];v&&(e.opts.strictKeywords?"object"==typeof v&&Object.keys(v).length>0:e.util.schemaHasRules(v,e.RULES.all))||(p[p.length]=m)}}else p=i;if(l||p.length){var w=e.errorPath,_=l||p.length>=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+f+"; ",_){l||(n+=" var "+h+" = validate.schema"+o+"; ");var A="' + "+(k="schema"+f+"["+(S="i"+f)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(w,k,e.opts.jsonPointers)),n+=" var "+d+" = true; ",l&&(n+=" if (schema"+f+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+f+")) "+d+" = false; else {"),n+=" for (var "+S+" = 0; "+S+" < "+h+".length; "+S+"++) { "+d+" = "+u+"["+h+"["+S+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", "+h+"["+S+"]) "),n+="; if (!"+d+") break; } ",l&&(n+=" } "),n+=" if (!"+d+") { ",(O=O||[]).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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var T=n;n=O.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var x=p;if(x)for(var S=-1,C=x.length-1;S<C;){R=x[S+=1],S&&(n+=" || "),n+=" ( ( "+(B=u+(N=e.util.getProperty(R)))+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),n+=") && (missing"+f+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:N)+") ) "}n+=") { ";var O;A="' + "+(k="missing"+f)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(w,k,!0):w+" + "+k),(O=O||[]).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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";T=n;n=O.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else if(_){l||(n+=" var "+h+" = validate.schema"+o+"; ");var k;A="' + "+(k="schema"+f+"["+(S="i"+f)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(w,k,e.opts.jsonPointers)),l&&(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"+o+" , 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 "+S+" = 0; "+S+" < "+h+".length; "+S+"++) { if ("+u+"["+h+"["+S+"]] === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+h+"["+S+"]) "),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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",l&&(n+=" } ")}else{var P=p;if(P)for(var R,M=-1,D=P.length-1;M<D;){R=P[M+=1];var N=e.util.getProperty(R),B=(A=e.util.escapeQuotes(R),u+N);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(w,R,e.opts.jsonPointers)),n+=" if ( "+B+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=w}else c&&(n+=" if (true) {");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(i||""),l="valid"+a,h=e.opts.$data&&o&&o.$data;if(h?(f+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",n="schema"+a):n=o,(o||h)&&!1!==e.opts.uniqueItems){h&&(f+=" var "+l+"; if ("+n+" === false || "+n+" === undefined) "+l+" = true; else if (typeof "+n+" != 'boolean') "+l+" = false; else { "),f+=" var i = "+d+".length , "+l+" = 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))f+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+l+" = false; break outer; } } } ";else{f+=" var itemIndices = {}, item; for (;i--;) { var item = "+d+"[i]; ";var m="checkDataType"+(b?"s":"");f+=" if ("+e.util[m](p,"item",e.opts.strictNumbers,!0)+") continue; ",b&&(f+=" if (typeof item == 'string') item = '\"' + item; "),f+=" if (typeof itemIndices[item] == 'number') { "+l+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}f+=" } ",h&&(f+=" } "),f+=" if (!"+l+") { ";var y=y||[];y.push(f),f="",!1!==e.createErrors?(f+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(f+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(f+=" , schema: ",f+=h?"validate.schema"+s:""+o,f+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var g=f;f=y.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+g+"]); ":f+=" validate.errors = ["+g+"]; return false; ":f+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } ",u&&(f+=" else { ")}else u&&(f+=" if (true) { ");return f}},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 f,a=t[r].split("/"),i=e;for(f=1;f<a.length;f++)i=i[a[f]];for(f=0;f<n.length;f++){var o=n[f],s=i[o];s&&(i[o]={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(154).MissingRef;e.exports=function e(t,r,f){var a=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof r&&(f=r,r=void 0);var i=o(t).then((function(){var e=a._addSchema(t,void 0,r);return e.validate||s(e)}));f&&i.then((function(e){f(null,e)}),f);return i;function o(t){var r=t.$schema;return r&&!a.getSchema(r)?e.call(a,{$ref:r},!0):Promise.resolve()}function s(e){try{return a._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 f=a._loadingSchemas[n];f||(f=a._loadingSchemas[n]=a._opts.loadSchema(n)).then(i,i);return f.then((function(e){if(!c(n))return o(e).then((function(){c(n)||a.addSchema(e,n,void 0,r)}))})).then((function(){return s(e)}));function i(){delete a._loadingSchemas[n]}function c(e){return a._refs[e]||a._schemas[e]}}(t);throw t}}}},function(e,t,r){"use strict";var n=/^[a-z_$][a-z0-9_$-]*$/i,f=r(693),a=r(694);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 a=t.type;if(Array.isArray(a))for(var i=0;i<a.length;i++)s(e,a[i],t);else s(e,a,t);var o=t.metaSchema;o&&(t.$data&&this._opts.$data&&(o={anyOf:[o,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(o,!0))}function s(e,t,n){for(var a,i=0;i<r.length;i++){var o=r[i];if(o.type==t){a=o;break}}a||(a={type:t,rules:[]},r.push(a));var s={keyword:e,definition:n,custom:!0,code:f,implements:n.implements};a.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,f=0;f<n.length;f++)if(n[f].keyword==e){n.splice(f,1);break}return this},validate:function e(t,r){e.errors=null;var n=this._validateKeyword=this._validateKeyword||this.compile(a,!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,f,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,l="data"+(o||""),h="valid"+i,p="errs__"+i,b=e.opts.$data&&s&&s.$data;b?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",f="schema"+i):f=s;var m,y,g,v,w,_=this,E="definition"+i,A=_.definition,T="";if(b&&A.$data){w="keywordValidate"+i;var x=A.validateSchema;a+=" var "+E+" = RULES.custom['"+t+"'].definition; var "+w+" = "+E+".validate;"}else{if(!(v=e.useCustomRule(_,s,e.schema,e)))return;f="validate.schema"+c,w=v.code,m=A.compile,y=A.inline,g=A.macro}var S=w+".errors",C="i"+i,O="ruleErr"+i,k=A.async;if(k&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(a+=S+" = null;"),a+="var "+p+" = errors;var "+h+";",b&&A.$data&&(T+="}",a+=" if ("+f+" === undefined) { "+h+" = true; } else { ",x&&(T+="}",a+=" "+h+" = "+E+".validateSchema("+f+"); if ("+h+") { ")),y)A.statements?a+=" "+v.validate+" ":a+=" "+h+" = "+v.validate+"; ";else if(g){var P=e.util.copy(e);T="";P.level++;var R="valid"+P.level;P.schema=v.validate,P.schemaPath="";var M=e.compositeRule;e.compositeRule=P.compositeRule=!0;var D=e.validate(P).replace(/validate\.schema/g,w);e.compositeRule=P.compositeRule=M,a+=" "+D}else{(F=F||[]).push(a),a="",a+=" "+w+".call( ",e.opts.passContext?a+="this":a+="self",m||!1===A.schema?a+=" , "+l+" ":a+=" , "+f+" , "+l+" , validate.schema"+e.schemaPath+" ",a+=" , (dataPath || '')",'""'!=e.errorPath&&(a+=" + "+e.errorPath);var N=o?"data"+(o-1||""):"parentData",B=o?e.dataPathArr[o]:"parentDataProperty",I=a+=" , "+N+" , "+B+" , rootData ) ";a=F.pop(),!1===A.errors?(a+=" "+h+" = ",k&&(a+="await "),a+=I+"; "):a+=k?" var "+(S="customErrors"+i)+" = null; try { "+h+" = await "+I+"; } catch (e) { "+h+" = false; if (e instanceof ValidationError) "+S+" = e.errors; else throw e; } ":" "+S+" = null; "+h+" = "+I+"; "}if(A.modifying&&(a+=" if ("+N+") "+l+" = "+N+"["+B+"];"),a+=""+T,A.valid)d&&(a+=" if (true) { ");else{var F;a+=" if ( ",void 0===A.valid?(a+=" !",a+=g?""+R:""+h):a+=" "+!A.valid+" ",a+=") { ",n=_.keyword,(F=F||[]).push(a),a="",(F=F||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+_.keyword+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should pass \""+_.keyword+"\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ";var j=a;a=F.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+j+"]); ":a+=" validate.errors = ["+j+"]; return false; ":a+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var L=a;a=F.pop(),y?A.errors?"full"!=A.errors&&(a+=" for (var "+C+"="+p+"; "+C+"<errors; "+C+"++) { var "+O+" = vErrors["+C+"]; if ("+O+".dataPath === undefined) "+O+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+O+".schemaPath === undefined) { "+O+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(a+=" "+O+".schema = "+f+"; "+O+".data = "+l+"; "),a+=" } "):!1===A.errors?a+=" "+L+" ":(a+=" if ("+p+" == errors) { "+L+" } else { for (var "+C+"="+p+"; "+C+"<errors; "+C+"++) { var "+O+" = vErrors["+C+"]; if ("+O+".dataPath === undefined) "+O+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+O+".schemaPath === undefined) { "+O+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(a+=" "+O+".schema = "+f+"; "+O+".data = "+l+"; "),a+=" } } "):g?(a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+_.keyword+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should pass \""+_.keyword+"\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&d&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; ")):!1===A.errors?a+=" "+L+" ":(a+=" if (Array.isArray("+S+")) { if (vErrors === null) vErrors = "+S+"; else vErrors = vErrors.concat("+S+"); errors = vErrors.length; for (var "+C+"="+p+"; "+C+"<errors; "+C+"++) { var "+O+" = vErrors["+C+"]; if ("+O+".dataPath === undefined) "+O+".dataPath = (dataPath || '') + "+e.errorPath+"; "+O+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(a+=" "+O+".schema = "+f+"; "+O+".data = "+l+"; "),a+=" } } else { "+L+" } "),a+=" } ",d&&(a+=" else { ")}return a}},function(e,t,r){"use strict";var n=r(278);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(699),"0.0.2":r(700),"0.0.3":r(701)}};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":2},"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},"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},"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(270).__exportStar)(r(703),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getInvoiceTaxTotal=t.getInvoiceLineTotalWithoutTax=t.getInvoiceTotalWithoutTax=t.getInvoiceLineTotal=t.getInvoiceTotal=void 0;const n=r(4);t.getInvoiceTotal=e=>e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotal)(r))),n.BigNumber.from(0));t.getInvoiceLineTotal=e=>{const t=e.taxPercent?{type:"percentage",amount:String(e.taxPercent)}:e.tax||{type:"percentage",amount:"0"},r=t.amount&&"percentage"===t.type?Number(t.amount)+100:100,f=t.amount&&"fixed"===t.type?n.BigNumber.from(t.amount):n.BigNumber.from(0),a=e.discount?n.BigNumber.from(e.discount):n.BigNumber.from(0);return n.BigNumber.from(n.FixedNumber.from(e.unitPrice).mulUnsafe(n.FixedNumber.fromString(e.quantity.toString())).subUnsafe(n.FixedNumber.from(a)).mulUnsafe(n.FixedNumber.fromString(r.toString())).divUnsafe(n.FixedNumber.from(100)).addUnsafe(n.FixedNumber.from(f)).round(0).toString().split(".")[0])};t.getInvoiceTotalWithoutTax=e=>e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotalWithoutTax)(r))),n.BigNumber.from(0));t.getInvoiceLineTotalWithoutTax=e=>{const t=e.discount?n.BigNumber.from(e.discount):n.BigNumber.from(0);return n.BigNumber.from(n.FixedNumber.from(e.unitPrice).mulUnsafe(n.FixedNumber.fromString(e.quantity.toString())).subUnsafe(n.FixedNumber.from(t)).round(0).toString().split(".")[0])};t.getInvoiceTaxTotal=e=>{const r=e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotalWithoutTax)(r))),n.BigNumber.from(0));return e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotal)(r))),n.BigNumber.from(0)).sub(r)}},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.1739+9b99d726","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":">=16.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 tsconfig.build.json","build:umd":"webpack","clean":"shx rm -rf dist tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo","docs":"shx rm -rf ./docs && compodoc -p tsconfig.json --output docs --disablePrivate --gaID UA-105153327-8","lint":"eslint . --fix","lint:check":"eslint .","prepare":"yarn run build","test":"jest","test:watch":"yarn test --watch"},"dependencies":{"@requestnetwork/advanced-logic":"0.34.1-next.1739+9b99d726","@requestnetwork/currency":"0.8.1-next.1739+9b99d726","@requestnetwork/data-access":"0.26.1-next.1739+9b99d726","@requestnetwork/data-format":"0.9.1-next.1739+9b99d726","@requestnetwork/epk-signature":"0.5.35-next.1739+9b99d726","@requestnetwork/multi-format":"0.15.10-next.1739+9b99d726","@requestnetwork/payment-detection":"0.35.1-next.1739+9b99d726","@requestnetwork/request-logic":"0.26.10-next.1739+9b99d726","@requestnetwork/smart-contracts":"0.28.1-next.1739+9b99d726","@requestnetwork/transaction-manager":"0.26.10-next.1739+9b99d726","@requestnetwork/types":"0.35.1-next.1739+9b99d726","@requestnetwork/utils":"0.35.1-next.1739+9b99d726","axios":"0.27.2","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":"9b99d726512320999b94d8635772ceadc773f6ca"}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),f=r(280),a=r(43),i=r(3),o=r(9),s=r(67),c=r(4),u=r(27),d=r(279);class l extends d.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(a.requestHashSubmitterArtifact.getAddress(this.networkName),a.requestHashSubmitterArtifact.getContractAbi(),this.provider.getSigner())}const n=f.Block.pushTransaction(f.Block.createEmptyBlock(),e,t,r),{data:{ipfsHash:o,ipfsSize:d}}=yield s.default.post("/ipfsAdd",{data:n},this.axiosConfig),l=yield this.submitterContract.getFeesAmount(d),h=yield this.submitterContract.submitHash(o,c.ethers.utils.hexZeroPad(c.ethers.utils.hexlify(d),32),{value:l}),p=yield this.provider.getBlock(h.blockNumber),b={blockConfirmation:h.confirmations,blockNumber:h.blockNumber,blockTimestamp:p.timestamp,fee:l,networkName:this.networkName,smartContractAddress:h.to,transactionHash:h.hash};this.cache[t]||(this.cache[t]={}),this.cache[t][o]={block:n,storageMeta:b};const m=new u.EventEmitter,y={meta:{storageMeta:{ethereum:b,ipfs:{size:d},state:i.StorageTypes.ContentState.PENDING,timestamp:b.blockTimestamp},topics:r||[],transactionStorageLocation:o},result:{}};return h.wait().then((e=>{const t={blockConfirmation:e.confirmations,blockNumber:e.blockNumber,blockTimestamp:p.timestamp,fee:l,networkName:this.networkName,smartContractAddress:e.to,transactionHash:e.hash};m.emit("confirmed",{meta:{storageMeta:t,topics:r||[],transactionStorageLocation:o},result:{}})})),Object.assign(m,y)}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{data:r}=yield o.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})(),f=this.getCachedTransactionsAndCleanCache(e,r.meta.transactionsStorageLocation,t);return{meta:{storageMeta:r.meta.storageMeta.concat(f.meta.storageMeta),transactionsStorageLocation:r.meta.transactionsStorageLocation.concat(f.meta.transactionsStorageLocation)},result:{transactions:r.result.transactions.concat(f.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)=>{var f;const a=this.cache[e][n];return this.cache[e][n]&&(!r||(void 0===r.from||r.from<=(null==a?void 0:a.storageMeta.blockTimestamp))&&(void 0===r.to||r.to>=(null==a?void 0:a.storageMeta.blockTimestamp)))&&(null===(f=t.meta.storageMeta)||void 0===f||f.push(null==a?void 0:a.storageMeta),t.meta.transactionsStorageLocation.push(n),t.result.transactions.push({state:i.DataAccessTypes.TransactionState.PENDING,timestamp:null==a?void 0:a.storageMeta.blockTimestamp,transaction:null==a?void 0:a.block.transactions[0]})),t}),{meta:{storageMeta:[],transactionsStorageLocation:[]},result:{transactions:[]}})}}t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(58),f=r(40),a=r(3),i=r(9),o=r(281),s=r(27),c=r(282),u=r(708),d=r(711),l=r(283),h={meta:{storageMeta:{},transactionsStorageLocation:{}},result:{transactions:{}}};t.default=class{constructor(e,t){this.isInitialized=!1;const r={ignoredLocationIndex:new u.default,logger:new i.default.SimpleLogger,synchronizationIntervalTime:1e4,transactionIndex:new l.default,autoStartSynchronization:!1},{ignoredLocationIndex:n,logger:f,synchronizationIntervalTime:a,transactionIndex:o,autoStartSynchronization:s}=Object.assign(Object.assign({},r),t);this.storage=e,this.lastSyncStorageTimestamp=0,this.autoStartSynchronization=s,this.synchronizationTimer=new d.default((()=>this.synchronizeNewDataIds()),a,f,5),this.transactionIndex=o,this.ignoredLocationIndex=n,this.logger=f}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=i.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,this.autoStartSynchronization&&this.startAutoSynchronization()}))}close(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){yield this.stopAutoSynchronization()}))}persistTransaction(e,t,r=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const a=r.filter((e=>!f.default.hashFormat.isDeserializableString(e)));if(0!==a.length)throw new Error(`The following topics are not well formatted: ${JSON.stringify(a)}`);const i=c.default.pushTransaction(c.default.createEmptyBlock(),e,t,r),o=yield this.storage.append(JSON.stringify(i)),u=Object.assign(new s.EventEmitter,{meta:{storageMeta:o.meta,topics:r,transactionStorageLocation:o.id},result:{}});return o.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(o.id,i.header,o.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(),!f.default.hashFormat.isDeserializableString(e))throw new Error(`The topic is not well formatted: ${e}`);const r=yield this.transactionIndex.getChannelIdsForTopic(e,t);return o.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}),i.default.deepCopy(h))}))}getChannelsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.checkInitialized(),e.some((e=>!f.default.hashFormat.isDeserializableString(e))))throw new Error("The topics are not well formatted");const r=yield this.transactionIndex.getChannelIdsForMultipleTopics(e,t);return o.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}),i.default.deepCopy(h))}))}synchronizeNewDataIds(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const e=i.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(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.synchronizationTimer.isStarted&&(yield 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(),f=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:f}}))}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 o.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 f=e.content;try{n=c.default.parseBlock(f),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 f=i.default.unique(e).uniqueItems.map((e=>({state:n.state===a.StorageTypes.ContentState.CONFIRMED?a.DataAccessTypes.TransactionState.CONFIRMED:a.DataAccessTypes.TransactionState.PENDING,timestamp:n.timestamp,transaction:t.transactions[e]}))),o=Array(f.length).fill(r),s=f.map((()=>n));return{transactions:f,transactionsStorageLocation:o,storageMeta:s}}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(58),f=r(110);t.default=class{constructor(e){this.reasonsByIgnoredLocation=new f({namespace:"reasonsByIgnoredLocation",store:e}),this.listIgnoredLocation=new f({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="",f=Array.isArray(r);n=f?"[":"{";var a=!0;for(var i in r){var o="function"==typeof r[i]||!f&&void 0===r[i];Object.hasOwnProperty.call(r,i)&&!o&&(a||(n+=","),a=!1,f?null==r[i]?n+="null":n+=t(r[i]):void 0!==r[i]&&(n+=t(i)+":"+t(r[i])))}return n+=f?"]":"}"}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(6).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=710},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(58);t.default=class{constructor(e,t,r,n=1){this.intervalFunctionSuccessiveFailureCount=0,this.timeoutObject=null,this.lastRecursion=Promise.resolve(),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}`)}t()})),t=()=>{this.timeoutObject=setTimeout((()=>{this.lastRecursion=e()}),this.intervalTime)};t()}stop(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return this.timeoutObject?(clearTimeout(this.timeoutObject),this.timeoutObject=null,this.lastRecursion):Promise.reject("Can't stop IntervalTimer if it has not been started")}))}get isStarted(){return Boolean(this.timeoutObject)}getConfig(){return{intervalTime:this.intervalTime,successiveFailureThreshold:this.successiveFailureThreshold}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(58),f=r(281),a=r(110),i=r(284),o=r(285);t.default=class{constructor(e){this.timestampByLocation=new o.default(e),this.locationByTopic=new i.default(e),this.indexedLocation=new a({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 f.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 f of r){if(yield this.timestampByLocation.isDataInBoundaries(f,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 f of r){if(yield this.timestampByLocation.isDataInBoundaries(f,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(280);class f extends n.DataAccess{constructor(e){super(e),this.isInitialized=!0}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),f=r(40),a=r(3),i=r(9),o=r(27);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=f.default.serialize(i.default.crypto.normalizeKeccak256Hash(e)),r=i.default.getCurrentTimestampInSecond();return this.data.set(t,{content:e,state:a.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=f.default.serialize(i.default.crypto.normalizeKeccak256Hash(e)),r=i.default.getCurrentTimestampInSecond(),n={content:e,state:a.StorageTypes.ContentState.PENDING,timestamp:r};this.data.set(t,n);const s={content:e,id:t,meta:{state:a.StorageTypes.ContentState.PENDING,storageType:a.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:r}},c=Object.assign(new o.EventEmitter,s);return setTimeout((()=>{this.forceEmitError?(this.forceEmitError=!1,c.emit("error","forced error asked by _makeNextAppendFailInsteadOfConfirmed()")):(n.state=a.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:a.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:a.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:n}}))),lastTimestamp:i.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(69).__exportStar)(r(159),t);var n=r(3);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.d(t,"a",(function(){return a}));var n=r(0),f=r(60);function a(e,t,r,a,i){let o;e=Object(n.arrayify)(e),t=Object(n.arrayify)(t);let s=1;const c=new Uint8Array(a),u=new Uint8Array(t.length+4);let d,l;u.set(t);for(let h=1;h<=s;h++){u[t.length]=h>>24&255,u[t.length+1]=h>>16&255,u[t.length+2]=h>>8&255,u[t.length+3]=255&h;let p=Object(n.arrayify)(Object(f.a)(i,e,u));o||(o=p.length,l=new Uint8Array(o),s=Math.ceil(a/o),d=a-(s-1)*o),l.set(p);for(let t=1;t<r;t++){p=Object(n.arrayify)(Object(f.a)(i,e,p));for(let e=0;e<o;e++)l[e]^=p[e]}const b=(h-1)*o,m=h===s?d:o;c.set(Object(n.arrayify)(l).slice(0,m),b)}return Object(n.hexlify)(c)}},,,function(e,t,r){"use strict";r.d(t,"b",(function(){return p})),r.d(t,"c",(function(){return b})),r.d(t,"a",(function(){return y}));var n=r(0),f=r(2),a=r(112),i=r(13);const o=new f.Logger(a.a),s={},c=i.a.from(0),u=i.a.from(-1);function d(e,t,r,n){const a={fault:t,operation:r};return void 0!==n&&(a.value=n),o.throwError(e,f.Logger.errors.NUMERIC_FAULT,a)}let l="0";for(;l.length<256;)l+=l;function h(e){if("number"!=typeof e)try{e=i.a.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+l.substring(0,e):o.throwArgumentError("invalid decimal size","decimals",e)}function p(e,t){null==t&&(t=0);const r=h(t),n=(e=i.a.from(e)).lt(c);n&&(e=e.mul(u));let f=e.mod(r).toString();for(;f.length<r.length-1;)f="0"+f;f=f.match(/^([0-9]*[1-9]|0)(0*)/)[1];const a=e.div(r).toString();return e=1===r.length?a:a+"."+f,n&&(e="-"+e),e}function b(e,t){null==t&&(t=0);const r=h(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||o.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&o.throwArgumentError("missing value","value",e);const f=e.split(".");f.length>2&&o.throwArgumentError("too many decimal points","value",e);let a=f[0],s=f[1];for(a||(a="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&d("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const c=i.a.from(a),l=i.a.from(s);let p=c.mul(r).add(l);return n&&(p=p.mul(u)),p}class m{constructor(e,t,r,n){e!==s&&o.throwError("cannot use FixedFormat constructor; use FixedFormat.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=h(n),Object.freeze(this)}static from(e){if(e instanceof m)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const f=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);f||o.throwArgumentError("invalid fixed format","format",e),t="u"!==f[1],r=parseInt(f[2]),n=parseInt(f[3])}else if(e){const f=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&o.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=f("signed","boolean",t),r=f("width","number",r),n=f("decimals","number",n)}return r%8&&o.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&o.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new m(s,t,r,n)}}class y{constructor(e,t,r,n){o.checkNew(new.target,y),e!==s&&o.throwError("cannot use FixedNumber constructor; use FixedNumber.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&o.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=y.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(g.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=y.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(g.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&o.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=y.from("1"+l.substring(0,e),this.format),n=v.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){if(null==e)return this._hex;e%8&&o.throwArgumentError("invalid byte width","width",e);const t=i.a.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString();return Object(n.hexZeroPad)(t,e/8)}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return y.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||Object(i.d)(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),y.fromString(p(e,t),m.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=m.from(t),f=b(e,r.decimals);!r.signed&&f.lt(c)&&d("unsigned value cannot be negative","overflow","value",e);let a=null;r.signed?a=f.toTwos(r.width).toHexString():(a=f.toHexString(),a=Object(n.hexZeroPad)(a,r.width/8));const i=p(f,r.decimals);return new y(s,a,i,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=m.from(t);if(Object(n.arrayify)(e).length>r.width/8)throw new Error("overflow");let f=i.a.from(e);r.signed&&(f=f.fromTwos(r.width));const a=f.toTwos((r.signed?0:1)+r.width).toHexString(),o=p(f,r.decimals);return new y(s,a,o,r)}static from(e,t){if("string"==typeof e)return y.fromString(e,t);if(Object(n.isBytes)(e))return y.fromBytes(e,t);try{return y.fromValue(e,0,t)}catch(e){if(e.code!==f.Logger.errors.INVALID_ARGUMENT)throw e}return o.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const g=y.from(1),v=y.from("0.5")},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(117);let f=null;function a(e){if(null==f&&(f="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==n.a.check(e)))throw f=null,new Error("BIP39 Wordlist for en (English) FAILED")}class i extends n.a{constructor(){super("en")}getWord(e){return a(this),f[e]}getWordIndex(e){return a(this),f.indexOf(e)}}const o=new i;n.a.register(o);const s={en:o}}])}));
288
+ ${t.EventFragment}`},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthInputDataInfoRetriever=void 0;const n=r(12),f=r(608);t.EthInputDataInfoRetriever=class{constructor(e,t,r,n,f){this.toAddress=e,this.eventName=t,this.network=r,this.paymentReference=n,this.explorerApiKey=f}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 f.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(4),f={sokol:{chainId:77,name:"sokol"},fuse:{chainId:122,name:"fuse"},celo:{chainId:42220,name:"celo"},fantom:{chainId:250,name:"fantom"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-one":{chainId:42161,name:"arbitrum-one"},avalanche:{chainId:43114,name:"avalanche"},bsc:{chainId:56,name:"bsc"}};class a extends n.ethers.providers.EtherscanProvider{constructor(e,t){"string"==typeof e&&f[e]&&(e=f[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";case"arbitrum-rinkeby":return"https://testnet.arbiscan.io/";case"arbitrum-one":return"https://api.arbiscan.io";case"avalanche":return"https://api.snowtrace.io";default:return super.getBaseUrl()}}}t.MultichainExplorerApiProvider=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToErc20InfoRetriever=void 0;const n=r(257);class f 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=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NearInfoRetriever=void 0;const n=r(12),f=r(95);t.NearInfoRetriever=class{constructor(e,t,r,n,a){if(this.paymentReference=e,this.toAddress=t,this.proxyContractName=r,this.eventName=n,this.network=a,"aurora"!==this.network&&"aurora-testnet"!==this.network)throw new Error("Near input data info-retriever only works with Near mainnet and testnet");if("aurora"!==this.network)throw new Error("FIXME: getTransactionsFromNearSubGraph() only implemented for Near mainnet");if(this.network=this.network.replace("aurora","near"),"requestnetwork.near"!==this.proxyContractName)throw new Error(`Proxy contract "${r}" not supported by Near subgraph retriever`);this.client=(0,f.getTheGraphNearClient)(this.network)}getTransferEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return(yield this.client.GetNearPayments({reference:this.paymentReference,to:this.toAddress})).payments.map((e=>({amount:e.amount,name:this.eventName,parameters:{block:e.block,confirmations:e.block,receiptId:e.receiptId},timestamp:Number(e.timestamp)})))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthInfoRetriever=void 0;const n=r(257);class f 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=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToAnyDetector=void 0;const n=r(12),f=r(9),a=r(108);class i extends a.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 f.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=i},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(163);Object.defineProperty(t,"BtcMainnetAddressBasedDetector",{enumerable:!0,get:function(){return n.BtcMainnetAddressBasedDetector}});var f=r(233);Object.defineProperty(t,"BtcTestnetAddressBasedDetector",{enumerable:!0,get:function(){return f.BtcTestnetAddressBasedDetector}});var a=r(165);Object.defineProperty(t,"DefaultBitcoinDetectionProvider",{enumerable:!0,get:function(){return a.DefaultBitcoinDetectionProvider}});const i=r(166);t.Providers=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERC20ProxyPaymentDetector=t.ERC20FeeProxyPaymentDetector=t.ERC20AddressBasedPaymentDetector=void 0;var n=r(234);Object.defineProperty(t,"ERC20AddressBasedPaymentDetector",{enumerable:!0,get:function(){return n.ERC20AddressBasedPaymentDetector}});var f=r(146);Object.defineProperty(t,"ERC20FeeProxyPaymentDetector",{enumerable:!0,get:function(){return f.ERC20FeeProxyPaymentDetector}});var a=r(251);Object.defineProperty(t,"ERC20ProxyPaymentDetector",{enumerable:!0,get:function(){return a.ERC20ProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnyToEthFeeProxyPaymentDetector=t.AnyToERC20PaymentDetector=void 0;var n=r(256);Object.defineProperty(t,"AnyToERC20PaymentDetector",{enumerable:!0,get:function(){return n.AnyToERC20PaymentDetector}});var f=r(260);Object.defineProperty(t,"AnyToEthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return f.AnyToEthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EthFeeProxyPaymentDetector=t.EthInputDataPaymentDetector=void 0;var n=r(253);Object.defineProperty(t,"EthInputDataPaymentDetector",{enumerable:!0,get:function(){return n.EthInputDataPaymentDetector}});var f=r(255);Object.defineProperty(t,"EthFeeProxyPaymentDetector",{enumerable:!0,get:function(){return f.EthFeeProxyPaymentDetector}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EscrowERC20InfoRetriever=void 0;const n=r(12),f=r(3),a=r(43),i=r(4),o=r(55),s=r(35),c={"0.1.0":"0.1.0","0.2.0":"0.1.0"};class u{constructor(e,t,r,n,f,s,c){this.paymentReference=e,this.escrowContractAddress=t,this.escrowCreationBlockNumber=r,this.tokenContractAddress=n,this.toAddress=f,this.network=s,this.eventName=c,this.provider=(0,o.getDefaultProvider)(this.network),this.contractEscrow=new i.ethers.Contract(this.escrowContractAddress,a.erc20EscrowToPayArtifact.getContractAbi(),this.provider)}getAllContractEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return[...yield this.getContractEventsForEventName(f.PaymentTypes.ESCROW_EVENTS_NAMES.FREEZE_ESCROW),...yield this.getContractEventsForEventName(f.PaymentTypes.ESCROW_EVENTS_NAMES.INITIATE_EMERGENCY_CLAIM),...yield this.getContractEventsForEventName(f.PaymentTypes.ESCROW_EVENTS_NAMES.REVERT_EMERGENCY_CLAIM)]}))}getContractEvents(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(!this.eventName)throw new Error("Missing event name in EscrowInfoRetriever for getContractEvents()");return this.getContractEventsForEventName(this.eventName)}))}getContractEventsForEventName(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=e===f.PaymentTypes.ESCROW_EVENTS_NAMES.FREEZE_ESCROW?this.contractEscrow.filters.RequestFrozen("0x"+this.paymentReference):e===f.PaymentTypes.ESCROW_EVENTS_NAMES.INITIATE_EMERGENCY_CLAIM?this.contractEscrow.filters.InitiatedEmergencyClaim("0x"+this.paymentReference):e===f.PaymentTypes.ESCROW_EVENTS_NAMES.REVERT_EMERGENCY_CLAIM?this.contractEscrow.filters.RevertedEmergencyClaim("0x"+this.paymentReference):e===f.PaymentTypes.ESCROW_EVENTS_NAMES.PAID_ESCROW?this.contractEscrow.filters.TransferWithReferenceAndFee(null,null,null,"0x"+this.paymentReference,null,null):void 0;if(!t)throw new Error("Wrong eventName for Escrow event retriever");t.fromBlock=this.escrowCreationBlockNumber,t.toBlock="latest";const r=(yield this.provider.getLogs(t)).map((e=>{const t=this.contractEscrow.interface.parseLog(e);return Object.assign(Object.assign({},e),{parsedLog:(0,s.parseLogArgs)(t)})})).filter((({parsedLog:e})=>!e.tokenAddress||e.tokenAddress.toLowerCase()===this.tokenContractAddress.toLowerCase()&&e.to.toLowerCase()===this.toAddress.toLowerCase())).map((({parsedLog:t,blockNumber:r,transactionHash:f})=>(0,n.__awaiter)(this,void 0,void 0,(function*(){var n,a;return{amount:(null===(n=t.amount)||void 0===n?void 0:n.toString())||void 0,name:e,parameters:{block:r,paymentReference:t.paymentReference,feeAddress:t.feeAddress||void 0,feeAmount:(null===(a=t.feeAmount)||void 0===a?void 0:a.toString())||void 0,to:this.toAddress||void 0,txHash:f},timestamp:(yield this.provider.getBlock(r||0)).timestamp}}))));return Promise.all(r)}))}getEscrowRequestMapping(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return this.contractEscrow.requestMapping(`0x${this.paymentReference}`)}))}}t.EscrowERC20InfoRetriever=u,u.getEscrowDeploymentInformation=(0,s.makeGetDeploymentInformation)(a.erc20EscrowToPayArtifact,c)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),f=r(619),a=r(279),i=r(706),o=r(713),s=r(714);class c extends f.default{constructor({decryptionProvider:e,httpConfig:t,nodeConnectionConfig:r,useLocalEthereumBroadcast:f,signatureProvider:c,useMockStorage:u,web3:d,ethereumProviderUrl:l,currencies:h,currencyManager:p}={httpConfig:{},nodeConnectionConfig:{},useLocalEthereumBroadcast:!1,useMockStorage:!1}){let b;u&&(b=new s.default);const m=u?new o.default(b):f?new i.default({httpConfig:t,nodeConnectionConfig:r,web3:d,ethereumProviderUrl:l}):new a.default({httpConfig:t,nodeConnectionConfig:r});p||(p=new n.CurrencyManager(h||n.CurrencyManager.getDefaultList())),super({dataAccess:m,signatureProvider:c,decryptionProvider:e,currencyManager:p}),this._mockStorage=b}}t.default=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),f=r(4),a=r(620),i=r(95),o=r(632),s=r(653),c=r(3),u=r(9),d=r(50),l=r(660),h=r(261),p=r(150);t.default=class{constructor({dataAccess:e,signatureProvider:t,decryptionProvider:r,bitcoinDetectionProvider:n,currencyManager:f}){this.supportedIdentities=u.default.identity.supportedIdentities,this.currencyManager=f||d.CurrencyManager.getDefault(),this.advancedLogic=new a.AdvancedLogic(this.currencyManager),this.transaction=new s.TransactionManager(e,r),this.requestLogic=new o.RequestLogic(this.transaction,t,this.advancedLogic),this.contentData=new l.default(this.advancedLogic),this.bitcoinDetectionProvider=n}createRequest(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:t,topics:r,paymentNetwork:n}=yield this.prepareRequestParameters(e),f=yield this.requestLogic.createRequest(t,e.signer,r),a=new h.default(f.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:n,requestLogicCreateResult:f,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield a.refresh(),a}))}_createEncryptedRequest(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{requestParameters:r,topics:n,paymentNetwork:f}=yield this.prepareRequestParameters(e),a=yield this.requestLogic.createEncryptedRequest(r,e.signer,t,n),i=new h.default(a.result.requestId,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:f,requestLogicCreateResult:a,skipPaymentDetection:e.disablePaymentDetection,disableEvents:e.disableEvents});return yield i.refresh(),i}))}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,f=i.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:n,explorerApiKeys:null==t?void 0:t.explorerApiKeys,currencyManager:this.currencyManager}),a=new h.default(e,this.requestLogic,this.currencyManager,{contentDataExtension:this.contentData,paymentNetwork:f,skipPaymentDetection:null==t?void 0:t.disablePaymentDetection,disableEvents:null==t?void 0:t.disableEvents});return yield a.refresh(r),a}))}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 f=(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=i.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),f=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 f.refresh(),f}))));return Promise.all(f)}))}fromMultipleTopics(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const f=(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=i.PaymentNetworkFactory.getPaymentNetworkFromRequest({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,request:t,currencyManager:this.currencyManager}),f=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 f.refresh(),f}))));return Promise.all(f)}))}getCurrency(e){if("string"==typeof e){const t=this.currencyManager.from(e);if(!t)throw new d.UnsupportedCurrencyError(e);return d.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}),f=e.paymentNetwork,a=e.contentData,o=(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 d=null;return f&&(d=i.PaymentNetworkFactory.createPaymentNetwork({advancedLogic:this.advancedLogic,bitcoinDetectionProvider:this.bitcoinDetectionProvider,currency:n.currency,paymentNetworkCreationParameters:f,currencyManager:this.currencyManager}),d&&s.extensionsData.push(yield d.createExtensionsDataForCreation(f.parameters))),a&&s.extensionsData.push(this.contentData.createExtensionsDataForCreation(a)),s.payee&&o.push(s.payee),s.payer&&o.push(s.payer),{requestParameters:s,topics:o,paymentNetwork:d}}))}validERC20Address(e){return f.utils.getAddress(e)===e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AdvancedLogic=void 0;var n=r(621);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(3),f=r(50),a=r(622),i=r(263),o=r(623),s=r(264),c=r(624),u=r(265),d=r(625),l=r(626),h=r(267),p=r(627),b=r(628),m=r(630),y=r(631);t.default=class{constructor(e){e||(e=f.CurrencyManager.getDefault()),this.extensions={addressBasedBtc:new i.default,addressBasedErc20:new c.default,addressBasedTestnetBtc:new o.default,contentData:new a.default,anyToErc20Proxy:new m.default(e),declarative:new s.default,ethereumInputData:new p.default,feeProxyContractErc20:new u.default,proxyContractErc20:new d.default,erc777Stream:new l.default,feeProxyContractEth:new h.default,anyToEthProxy:new y.default(e),nativeToken:[new b.default]}}applyActionToExtensions(e,t,r,n,f){return this.getExtensionForActionAndState(t,r).applyActionToExtension(e,t,r,n,f)}getExtensionForActionAndState(e,t){const r=e.id,f={[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_ERC777_STREAM]:this.extensions.erc777Stream,[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(!f){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 f}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(3),f=r(262);class a extends f.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=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(263);class a extends f.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_TESTNET_BITCOIN_ADDRESS_BASED,"0.1.0",["testnet"])}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(88),a=["mainnet","rinkeby","private"];class i extends f.default{constructor(){super(n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_ADDRESS_BASED,"0.1.0",a,n.RequestLogicTypes.CURRENCY.ERC20)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(89);class a extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC20_PROXY_CONTRACT,t="0.1.0",r=["mainnet","rinkeby","private"],f=n.RequestLogicTypes.CURRENCY.ERC20){super(e,t,r,f),this.extensionId=e,this.currentVersion=t,this.supportedNetworks=r,this.supportedCurrencyType=f}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(89),a=r(9);class i extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ERC777_STREAM,t="0.1.0",r=["matic","xdai","mumbai","rinkeby","arbitrum-rinkeby"],f=n.RequestLogicTypes.CURRENCY.ERC777){super(e,t,r,f),this.supportedNetworks=r,this.supportedCurrencyType=f}createCreationAction(e){if(!e.expectedFlowRate)throw Error("expectedFlowRate should not be empty");if(!e.expectedStartDate)throw Error("expectedStartDate should not be empty");return super.createCreationAction(e)}applyCreation(e,t){if(!e.parameters.expectedStartDate)throw Error("expectedStartDate should not be empty");if(!e.parameters.expectedFlowRate)throw Error("expectedFlowRate should not be empty");if(e.parameters.expectedStartDate&&!a.default.amount.isValid(e.parameters.expectedStartDate))throw Error("expectedStartDate is not a valid amount");if(e.parameters.expectedFlowRate&&!a.default.amount.isValid(e.parameters.expectedFlowRate))throw Error("expectedFlowRate is not a valid amount");const r=super.applyCreation(e,t);return Object.assign(Object.assign({},r),{events:[{name:"create",parameters:{expectedStartDate:e.parameters.expectedStartDate,expectedFlowRate:e.parameters.expectedFlowRate,paymentAddress:e.parameters.paymentAddress,refundAddress:e.parameters.refundAddress,salt:e.parameters.salt},timestamp:t}],values:Object.assign(Object.assign({},r.values),{expectedStartDate:e.parameters.expectedStartDate,expectedFlowRate:e.parameters.expectedFlowRate})})}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(89),a=["mainnet","rinkeby","xdai","sokol","fuse","matic","celo","fantom","bsctest","bsc","arbitrum-rinkeby","arbitrum-one","avalanche"];class i extends f.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_ETH_INPUT_DATA,t="0.3.0"){super(e,t,a,n.RequestLogicTypes.CURRENCY.ETH)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(88),a=r(629),i=["aurora","aurora-testnet"];class o extends a.default{constructor(e=n.ExtensionTypes.ID.PAYMENT_NETWORK_NATIVE_TOKEN,t="0.2.0"){super(e,t,i)}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 f.UnsupportedNetworkError(t,this.supportedNetworks)}}isValidMainnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR","aurora")}isValidTestnetAddress(e){return this.isValidAddressForSymbolAndNetwork(e,"NEAR-testnet","aurora-testnet")}}t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(88),a=r(89);class i extends a.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 f.InvalidPaymentAddressError(e.paymentAddress);if(e.refundAddress&&!this.isValidAddress(e.refundAddress,t))throw new f.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=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),f=r(3),a=r(265);class i extends a.default{constructor(e,t=f.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ERC20_PROXY,r="0.1.0"){super(t,r,n.conversionSupportedNetworks,f.RequestLogicTypes.CURRENCY.ERC20),this.currencyManager=e}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(!n.conversionSupportedNetworks.includes(t))throw Error(`network ${t} not supported`);for(const r of e.acceptedTokens){const e=this.currencyManager.fromAddress(r,t);if(!e)throw new n.UnsupportedCurrencyError({value:r,network:t});if(!this.currencyManager.supportsConversion(e,t))throw Error(`acceptedTokens must contain only supported token addresses (ERC20 only). ${r} 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 a=t.action===f.ExtensionTypes.PnFeeReferenceBased.ACTION.CREATE?t.parameters.network:null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network;if(!a)return;if(!a)return;if(!n.conversionSupportedNetworks.includes(a))throw new Error(`The network (${a}) is not supported for this payment network.`);const i=this.currencyManager.fromStorageCurrency(e.currency);if(!i)throw new n.UnsupportedCurrencyError(e.currency);if(!this.currencyManager.supportsConversion(i,a))throw new Error(`The currency (${i.id}, ${i.hash}) of the request is not supported for this payment network.`)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),f=r(3),a=r(267);class i extends a.default{constructor(e,t=f.ExtensionTypes.ID.PAYMENT_NETWORK_ANY_TO_ETH_PROXY,r="0.2.0"){super(t,r,n.conversionSupportedNetworks),this.currencyManager=e}createCreationAction(e){const t=e.network;if(!t)throw Error("network is required");if(!n.conversionSupportedNetworks.includes(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 a=t.action===f.ExtensionTypes.PnFeeReferenceBased.ACTION.CREATE?t.parameters.network:null===(r=e.extensions[this.extensionId])||void 0===r?void 0:r.values.network;if(!a)throw new Error("The network must be provided from the creation action or from the extension state");if(!n.conversionSupportedNetworks.includes(a))throw new Error(`The network (${a}) is not supported for this payment network.`);const i=this.currencyManager.fromStorageCurrency(e.currency);if(!i)throw new n.UnsupportedCurrencyError(e.currency);if(!this.currencyManager.supportsConversion(i,a))throw new Error(`The currency (${e.currency.value}) of the request is not supported for this payment network.`)}}t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestLogic=void 0;var n=r(633);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(634),f=r(27),a=r(40),i=r(3),o=r(9),s=r(645);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:a,hashedTopics:i}=yield this.createCreationActionRequestIdAndTopics(e,t,r);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const o=yield this.transactionManager.persistTransaction(JSON.stringify(n),a,i),c=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:o.meta},result:{requestId:a}});return o.on("confirmed",(e=>{c.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:a}})})).on("error",(e=>{c.emit("error",e)})),c}))}createEncryptedRequest(e,t,r,a=[]){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:i,hashedTopics:o}=yield this.createCreationActionRequestIdAndTopics(e,t,a);s.default.applyActionToRequest(null,n,Date.now(),this.advancedLogic);const c=yield this.transactionManager.persistTransaction(JSON.stringify(n),i,o,r),u=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:c.meta},result:{requestId:i}});return c.on("confirmed",(e=>{u.emit("confirmed",{meta:{transactionManagerMeta:e.meta},result:{requestId:i}})})).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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}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),a=s.default.getRequestIdFromAction(n);r&&(yield this.validateAction(a,n));const i=yield this.transactionManager.persistTransaction(JSON.stringify(n),a),o=Object.assign(new f.EventEmitter,{meta:{transactionManagerMeta:i.meta}});return i.on("confirmed",(e=>{o.emit("confirmed",{meta:{transactionManagerMeta:e.meta}})})).on("error",(e=>{o.emit("error",e)})),o}))}getRequestFromId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{ignoredTransactions:t,confirmedRequestState:r,pendingRequestState:n,transactionManagerMeta:f}=yield this.computeRequestFromRequestId(e);return{meta:{ignoredTransactions:t,transactionManagerMeta:f},result:{request:r,pending:this.computeDiffBetweenPendingAndConfirmedRequestState(r,n)}}}))}getRequestsByTopic(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const r=a.default.serialize(o.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=>a.default.serialize(o.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),f=s.default.getRequestIdFromAction(n);return{action:n,hashedTopics:r.map((e=>a.default.serialize(o.default.crypto.normalizeKeccak256Hash(e)))),requestId:f}}))}computeRequestFromRequestId(e){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.transactionManager.getTransactionsByChannelId(e),r=t.result.transactions.filter(o.default.notNull).sort(((e,t)=>e.timestamp-t.timestamp));let{ignoredTransactions:n,keptTransactions:f}=this.removeOldPendingTransactions(r);const a=o.default.uniqueByProperty(f.filter(o.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(o.default.notNull),"action");n=n.concat(a.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:i,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(a.uniqueItems);return n=n.concat(c),{confirmedRequestState:i,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===i.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===i.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,f=Object.keys(e.result.transactions).map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){let{ignoredTransactions:n,keptTransactions:f}=this.removeOldPendingTransactions(t[e]);const a=o.default.uniqueByProperty(f.filter(o.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(o.default.notNull),"action");n=n.concat(a.duplicates.map((e=>({reason:"Duplicated transaction",transaction:e}))));const{confirmedRequestState:i,pendingRequestState:s,ignoredTransactionsByApplication:c}=yield this.computeRequestFromTransactions(a.uniqueItems);n=n.concat(c);const u=this.computeDiffBetweenPendingAndConfirmedRequestState(i,s);return{ignoredTransactions:n,pending:u,request:i,transactionManagerMeta:r[e]}}))));return(yield Promise.all(f)).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&&o.default.crypto.normalizeKeccak256Hash(t[n]).value!==o.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===i.TransactionTypes.TransactionState.CONFIRMED,e.state===i.TransactionTypes.TransactionState.CONFIRMED||e.state===i.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 f})),r.d(t,"__assign",(function(){return a})),r.d(t,"__rest",(function(){return i})),r.d(t,"__decorate",(function(){return o})),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 d})),r.d(t,"__createBinding",(function(){return l})),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 m})),r.d(t,"__spreadArrays",(function(){return y})),r.d(t,"__spreadArray",(function(){return g})),r.d(t,"__await",(function(){return v})),r.d(t,"__asyncGenerator",(function(){return w})),r.d(t,"__asyncDelegator",(function(){return _})),r.d(t,"__asyncValues",(function(){return E})),r.d(t,"__makeTemplateObject",(function(){return A})),r.d(t,"__importStar",(function(){return x})),r.d(t,"__importDefault",(function(){return S})),r.d(t,"__classPrivateFieldGet",(function(){return C})),r.d(t,"__classPrivateFieldSet",(function(){return O}));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 f(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 a=function(){return(a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var f in t=arguments[r])Object.prototype.hasOwnProperty.call(t,f)&&(e[f]=t[f]);return e}).apply(this,arguments)};function i(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 f=0;for(n=Object.getOwnPropertySymbols(e);f<n.length;f++)t.indexOf(n[f])<0&&Object.prototype.propertyIsEnumerable.call(e,n[f])&&(r[n[f]]=e[n[f]])}return r}function o(e,t,r,n){var f,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(f=e[o])&&(i=(a<3?f(i):a>3?f(t,r,i):f(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}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(f,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function o(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?f(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,o)}s((n=n.apply(e,t||[])).next())}))}function d(e,t){var r,n,f,a,i={label:0,sent:function(){if(1&f[0])throw f[1];return f[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(f=2&a[0]?n.return:a[0]?n.throw||((f=n.return)&&f.call(n),0):n.next)&&!(f=f.call(n,a[1])).done)return f;switch(n=0,f&&(a=[2&a[0],f.value]),a[0]){case 0:case 1:f=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(f=i.trys,(f=f.length>0&&f[f.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!f||a[1]>f[0]&&a[1]<f[3])){i.label=a[1];break}if(6===a[0]&&i.label<f[1]){i.label=f[1],f=a;break}if(f&&i.label<f[2]){i.label=f[2],i.ops.push(a);break}f[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=f=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}}var l=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)||l(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,f,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){f={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(f)throw f.error}}return i}function m(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(b(arguments[t]));return e}function y(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),f=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,o=a.length;i<o;i++,f++)n[f]=a[i];return n}function g(e,t,r){if(r||2===arguments.length)for(var n,f=0,a=t.length;f<a;f++)!n&&f in t||(n||(n=Array.prototype.slice.call(t,0,f)),n[f]=t[f]);return e.concat(n||Array.prototype.slice.call(t))}function v(e){return this instanceof v?(this.v=e,this):new v(e)}function w(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,f=r.apply(e,t||[]),a=[];return n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n;function i(e){f[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||o(e,t)}))})}function o(e,t){try{(r=f[e](t)).value instanceof v?Promise.resolve(r.value.v).then(s,c):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function s(e){o("next",e)}function c(e){o("throw",e)}function u(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}function _(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,f){t[n]=e[n]?function(t){return(r=!r)?{value:v(e[n](t)),done:"return"===n}:f?f(t):t}:f}}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,f){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,f,(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 T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function x(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)&&l(t,e,r);return T(t,e),t}function S(e){return e&&e.__esModule?e:{default:e}}function C(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 O(e,t,r,n,f){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!f)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!f:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?f.call(e,r):f?f.value=r:t.set(e,r),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(636),a=r(637),i=r(638),o=new n.default([new f.default,new i.default,new a.default]);t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_CBC_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_CBC)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.AES256_GCM_ENCRYPTED,n.EncryptionTypes.METHOD.AES256_GCM)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.ECIES_ENCRYPTED,n.EncryptionTypes.METHOD.ECIES)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(640),a=new n.default([new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(268);class a extends f.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=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(642),a=new n.default([new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(268);class a extends f.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=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(109),f=r(644),a=new n.default([new f.default]);t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(90);class a extends f.default{constructor(){super(n.MultiFormatTypes.prefix.PLAIN_TEXT,n.MultiFormatTypes.PlainTypes.TYPE.PLAIN_TEXT)}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(647),s=r(648),c=r(649),u=r(650),d=r(651),l=r(652);t.default={applyActionToRequest:function(e,t,r,h){if(!a.default.isActionVersionSupported(t))throw new Error("action version not supported");const p=e?f.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");i.default.checkRequest(p),t.data.name===n.RequestLogicTypes.ACTION_NAME.ACCEPT&&(b=o.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=d.default.applyActionToRequest(t,r,p)),t.data.name===n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT&&(b=l.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,a.default.getSignerIdentityFromAction(t),r)),b.extensions));return b},formatAccept:o.default.format,formatAddExtensionsData:s.default.format,formatCancel:c.default.format,formatCreate:u.default.format,formatIncreaseExpectedAmount:d.default.format,formatReduceExpectedAmount:l.default.format,getRequestIdFromAction:function(e){return a.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(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:{extensionsDataLength:f.extensionsData?f.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 o=a.default.getSignerIdentityFromAction(e);if(i.default.getRoleInRequest(o,r)!==n.RequestLogicTypes.ROLE.PAYER)throw new Error("Signer must be the payer");r.state=n.RequestLogicTypes.STATE.ACCEPTED;let c=f.default.deepCopy(r);return c=i.default.pushExtensionsData(c,e.data.parameters.extensionsData),c.events.push(s(e,t,o)),c},format:function(e,t,r){const f={name:n.RequestLogicTypes.ACTION_NAME.ACCEPT,parameters:e,version:o.default.currentVersion};return a.default.createAction(f,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:{extensionsDataLength:f.extensionsData?f.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=a.default.getSignerIdentityFromAction(e);let o=f.default.deepCopy(r);return o=i.default.pushExtensionsData(o,e.data.parameters.extensionsData),o.events.push(s(e,t,n)),o},format:function(e,t,r){if(!e.extensionsData||0===e.extensionsData.length)throw new Error("extensionsData must be given");const f={name:n.RequestLogicTypes.ACTION_NAME.ADD_EXTENSIONS_DATA,parameters:e,version:o.default.currentVersion};return a.default.createAction(f,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:{extensionsDataLength:f.extensionsData?f.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 o=a.default.getSignerIdentityFromAction(e),c=i.default.getRoleInRequest(o,r);let u=f.default.deepCopy(r);if(u=i.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,o)),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 f={name:n.RequestLogicTypes.ACTION_NAME.CANCEL,parameters:e,version:o.default.currentVersion};return a.default.createAction(f,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(151),i=r(56),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:{expectedAmount:f.expectedAmount,extensionsDataLength:f.extensionsData?f.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&&f.default.identity.hasError(e.data.parameters.payee))throw new Error(`payee: ${f.default.identity.hasError(e.data.parameters.payee)}̀`);if(e.data.parameters.payer&&f.default.identity.hasError(e.data.parameters.payer))throw new Error(`payer: ${f.default.identity.hasError(e.data.parameters.payer)}̀`);if(!f.default.isString(e.data.parameters.expectedAmount)||!f.default.amount.isValid(e.data.parameters.expectedAmount))throw new Error("action.parameters.expectedAmount must be a string representing a positive integer");const r=i.default.getSignerIdentityFromAction(e),o=f.default.deepCopy(e.data.parameters);o.extensions={},o.requestId=i.default.getRequestId(e),o.version=i.default.getVersionFromAction(e),o.events=[s(e,t,r)],a.lt(e.data.version,"2.0.2")&&(o.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=i.default.getRoleInAction(r,e);if(c===n.RequestLogicTypes.ROLE.PAYEE)return o.state=n.RequestLogicTypes.STATE.CREATED,o.creator=e.data.parameters.payee,o;if(c===n.RequestLogicTypes.ROLE.PAYER)return o.state=n.RequestLogicTypes.STATE.ACCEPTED,o.creator=e.data.parameters.payer,o;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(!f.default.amount.isValid(e.expectedAmount))throw new Error("expectedAmount must be a positive integer");if(e.payee&&f.default.identity.hasError(e.payee))throw new Error(`payee: ${f.default.identity.hasError(e.payee)}̀`);if(e.payer&&f.default.identity.hasError(e.payer))throw new Error(`payer: ${f.default.identity.hasError(e.payer)}̀`);e.timestamp||(e.timestamp=f.default.getCurrentTimestampInSecond());e.expectedAmount=e.expectedAmount.toString();const a=o.default.currentVersion,s={name:n.RequestLogicTypes.ACTION_NAME.CREATE,parameters:e,version:a},c=i.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 i.default.createAction(s,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:f.extensionsData?f.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(!f.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o=a.default.getSignerIdentityFromAction(e),c=i.default.getRoleInRequest(o,r);let u=f.default.deepCopy(r);if(u=i.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,o)),c===n.RequestLogicTypes.ROLE.PAYER){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=f.default.amount.add(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payer")},format:function(e,t,r){if(!f.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const i={name:n.RequestLogicTypes.ACTION_NAME.INCREASE_EXPECTED_AMOUNT,parameters:e,version:o.default.currentVersion};return a.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),f=r(9),a=r(56),i=r(70),o=r(57);function s(e,t,r){const f=e.data.parameters;return{actionSigner:r,name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:{deltaAmount:e.data.parameters.deltaAmount,extensionsDataLength:f.extensionsData?f.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(!f.default.amount.isValid(e.data.parameters.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const o=a.default.getSignerIdentityFromAction(e),c=i.default.getRoleInRequest(o,r);let u=f.default.deepCopy(r);if(u=i.default.pushExtensionsData(u,e.data.parameters.extensionsData),u.events.push(s(e,t,o)),c===n.RequestLogicTypes.ROLE.PAYEE){if(r.state===n.RequestLogicTypes.STATE.CANCELED)throw new Error("the request must not be canceled");return u.expectedAmount=f.default.amount.reduce(r.expectedAmount,e.data.parameters.deltaAmount),u}throw new Error("signer must be the payee")},format:function(e,t,r){if(!f.default.amount.isValid(e.deltaAmount))throw new Error("deltaAmount must be a string representing a positive integer");const i={name:n.RequestLogicTypes.ACTION_NAME.REDUCE_EXPECTED_AMOUNT,parameters:e,version:o.default.currentVersion};return a.default.createAction(i,t,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransactionManager=void 0;var n=r(654);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(71),f=r(40),a=r(3),i=r(9),o=r(27),s=r(655),c=r(659);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 d=f.default.serialize(i.default.crypto.normalizeKeccak256Hash(JSON.parse(e)));if(t===d)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:f,channelType:i,encryptionMethod:o}=yield this.channelParser.getChannelTypeAndChannelKey(t,r.result.transactions);if(i===a.TransactionTypes.ChannelType.UNKNOWN)throw new Error(`Impossible to retrieve the channel: ${t}`);if(i===a.TransactionTypes.ChannelType.CLEAR&&(u=yield c.default.createClearTransaction(e)),i===a.TransactionTypes.ChannelType.ENCRYPTED){if(0!==s.length)throw new Error("Impossible to add new stakeholder to an existing channel");if(!f)throw new Error(`Impossible to decrypt the channel key of: ${t}`);u=yield c.default.createEncryptedTransaction(e,f),n=o}}const l=yield this.dataAccess.persistTransaction(u,t,r.concat([d])),h=Object.assign(new o.EventEmitter,{meta:{dataAccessMeta:l.meta,encryptionMethod:n},result:{}});return l.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:f,encryptionMethod:a}=yield this.channelParser.decryptAndCleanChannel(e,r.result.transactions),i={dataAccessMeta:r.meta,encryptionMethod:a,ignoredTransactions:f};return a||delete i.encryptionMethod,{meta:i,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]),f=yield t;return f.transactions[r]=n.transactions,f.ignoredTransactions[r]=n.ignoredTransactions,f}))),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(71),f=r(3),a=r(656);t.default=class{constructor(e){this.transactionParser=new a.default(e)}decryptAndCleanChannel(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){let r,a,i=f.TransactionTypes.ChannelType.UNKNOWN;const o=yield t.reduce(((t,o)=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const n=yield t;let s;try{s=yield this.transactionParser.parsePersistedTransaction(o.transaction,i,r)}catch(u){return n.concat([{ignored:{reason:u.message,transaction:o},valid:null}])}const c=s.transaction,u=yield c.getError();if(""!==u)return n.concat([{ignored:{reason:u,transaction:o},valid:null}]);if(i===f.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:o},valid:null}]);i=s.channelKey?f.TransactionTypes.ChannelType.ENCRYPTED:f.TransactionTypes.ChannelType.CLEAR,a=s.encryptionMethod,r=s.channelKey}const d=yield c.getData();return n.concat([{ignored:null,valid:{state:o.state,timestamp:o.timestamp,transaction:{data:d}}}])}))),Promise.resolve([])),s=o.map((e=>e.ignored)),c=o.map((e=>e.valid));return{encryptionMethod:a,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!==f.TransactionTypes.ChannelType.UNKNOWN)return n;let a;try{a=yield this.transactionParser.parsePersistedTransaction(r.transaction,f.TransactionTypes.ChannelType.UNKNOWN)}catch(e){return n}const i=a.transaction;if(""!==(yield i.getError()))return n;return(yield i.getHash())!==e||(n.channelType=a.channelKey?f.TransactionTypes.ChannelType.ENCRYPTED:f.TransactionTypes.ChannelType.CLEAR,n.channelKey=a.channelKey,n.encryptionMethod=a.encryptionMethod),n}))),Promise.resolve({channelKey:void 0,channelType:f.TransactionTypes.ChannelType.UNKNOWN,encryptionMethod:void 0}))}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71),f=r(40),a=r(3),i=r(657),o=r(658);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===a.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 i.default(e.data)}}if(e.encryptedData){if(t===a.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 o.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===`${a.EncryptionTypes.METHOD.ECIES}-${a.EncryptionTypes.METHOD.AES256_CBC}`)r=a.EncryptionTypes.METHOD.AES256_CBC;else{if(t!==`${a.EncryptionTypes.METHOD.ECIES}-${a.EncryptionTypes.METHOD.AES256_GCM}`)throw new Error(`Encryption method not supported: ${t}`);r=a.EncryptionTypes.METHOD.AES256_GCM}let i="";const o=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=f.default.deserialize(r)}catch(e){}if(t&&t.type===a.IdentityTypes.TYPE.ETHEREUM_ADDRESS&&this.decryptionProvider&&(yield this.decryptionProvider.isIdentityRegistered(t)))try{const a=f.default.deserialize(e[r]);n=yield this.decryptionProvider.decrypt(a,t)}catch(e){i=e.message}}return n}))),Promise.resolve(""));if(""===o)throw new Error(`Impossible to decrypt the channel key from this transaction (${i})`);return{key:o,method:r}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71),f=r(40),a=r(9);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 f.default.serialize(a.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(71),f=r(40),a=r(9);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=f.default.deserialize(this.persistedData);this.data=yield a.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=a.default.crypto.normalizeKeccak256Hash(JSON.parse(e));this.dataHashSerialized=f.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(71),f=r(40),a=r(3),i=r(9);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=`${a.EncryptionTypes.METHOD.ECIES}-${a.EncryptionTypes.METHOD.AES256_GCM}`,o=yield i.default.crypto.generate32BufferKey(),s=yield i.default.encryption.encrypt(e,{key:o,method:a.EncryptionTypes.METHOD.AES256_GCM});try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}if(!t.every((e=>e.method===a.EncryptionTypes.METHOD.ECIES)))throw new Error(`encryptionParams method must be all: ${a.EncryptionTypes.METHOD.ECIES}`);const c=t.map((e=>(0,n.__awaiter)(this,void 0,void 0,(function*(){const t=yield i.default.encryption.encrypt(o,e),r=i.default.encryption.getIdentityFromEncryptionParams(e);return{encryptedKey:t,multiFormattedIdentity:f.default.serialize(r)}})))),u=(yield Promise.all(c)).reduce(((e,t)=>{const r=f.default.serialize(t.encryptedKey);return e[t.multiFormattedIdentity]=r,e}),{});return{encryptedData:f.default.serialize(s),keys:u,encryptionMethod:r}}))}static createEncryptedTransaction(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(t.method!==a.EncryptionTypes.METHOD.AES256_GCM)throw new Error(`encryption method not supported for the channel key: ${t.method}`);const r=yield i.default.encryption.encrypt(e,t);try{JSON.parse(e)}catch(e){throw new Error("Data not parsable")}return{encryptedData:f.default.serialize(r)}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(661),f=r(3).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[f]?e.extensions[f].values.content:null}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(270),f=r(662),a=r(696),i=r(697),o=r(698);t.default={validate(e){var t;const r=(new f).addMetaSchema(a).addSchema(i);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=o.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(702),t)},function(e,t,r){"use strict";var n=r(663),f=r(152),a=r(667),i=r(271),o=r(272),s=r(668),c=r(669),u=r(690),d=r(72);e.exports=y,y.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 f=r(t);!0!==r.$async&&(this.errors=r.errors);return f},y.prototype.compile=function(e,t){var r=this._addSchema(e,void 0,t);return r.validate||this._compile(r)},y.prototype.addSchema=function(e,t,r,n){if(Array.isArray(e)){for(var a=0;a<e.length;a++)this.addSchema(e[a],void 0,r,n);return this}var i=this._getId(e);if(void 0!==i&&"string"!=typeof i)throw new Error("schema id must be string");return A(this,t=f.normalizeId(t||i)),this._schemas[t]=this._addSchema(e,r,n,!0),this},y.prototype.addMetaSchema=function(e,t,r){return this.addSchema(e,t,r,!0),this},y.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 f="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(f);this.logger.error(f)}return n},y.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=f.schema.call(e,{schema:{}},t);if(r){var a=r.schema,o=r.root,s=r.baseId,c=n.call(e,a,o,void 0,s);return e._fragments[t]=new i({ref:t,fragment:!0,schema:a,root:o,baseId:s,validate:c}),c}}(this,e)}},y.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 a=this._getId(e);a&&(a=f.normalizeId(a),delete this._schemas[a],delete this._refs[a])}return this},y.prototype.addFormat=function(e,t){"string"==typeof t&&(t=new RegExp(t));return this._formats[e]=t,this},y.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,f="",a=0;a<e.length;a++){var i=e[a];i&&(f+=n+i.dataPath+" "+i.message+r)}return f.slice(0,-r.length)},y.prototype._addSchema=function(e,t,r,n){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var a=this._opts.serialize,o=a?a(e):e,s=this._cache.get(o);if(s)return s;n=n||!1!==this._opts.addUsedSchema;var c=f.normalizeId(this._getId(e));c&&n&&A(this,c);var u,d=!1!==this._opts.validateSchema&&!t;d&&!(u=c&&c==f.normalizeId(e.$schema))&&this.validateSchema(e,!0);var l=f.ids.call(this,e),h=new i({id:c,schema:e,localRefs:l,cacheKey:o,meta:r});"#"!=c[0]&&n&&(this._refs[c]=h);this._cache.put(o,h),d&&u&&this.validateSchema(e,!0);return h},y.prototype._compile=function(e,t){if(e.compiling)return e.validate=a,a.schema=e.schema,a.errors=null,a.root=t||a,!0===e.schema.$async&&(a.$async=!0),a;var r,f;e.compiling=!0,e.meta&&(r=this._opts,this._opts=this._metaOpts);try{f=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=f,e.refs=f.refs,e.refVal=f.refVal,e.root=f.root,f;function a(){var t=e.validate,r=t.apply(this,arguments);return a.errors=t.errors,r}},y.prototype.compileAsync=r(691);var l=r(692);y.prototype.addKeyword=l.add,y.prototype.getKeyword=l.get,y.prototype.removeKeyword=l.remove,y.prototype.validateKeyword=l.validate;var h=r(154);y.ValidationError=h.Validation,y.MissingRefError=h.MissingRef,y.$dataMetaSchema=u;var p="http://json-schema.org/draft-07/schema",b=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],m=["/properties"];function y(e){if(!(this instanceof y))return new y(e);e=this._opts=d.copy(e)||{},function(e){var t=e._opts.logger;if(!1===t)e.logger={log:T,warn:T,error:T};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 a,this._loadingSchemas={},this._compilations=[],this.RULES=c(),this._getId=function(e){switch(e.schemaId){case"auto":return E;case"id":return w;default:return _}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=o),this._metaOpts=function(e){for(var t=d.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(695),e.addMetaSchema(t,t.$id,!0));if(!1===e._opts.meta)return;var n=r(278);e._opts.$data&&(n=u(n,m));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=f.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function v(e,t,r){for(var n in t){var f=t[n];f.meta||r&&!r.test(n)||(e._cache.del(f.cacheKey),delete t[n])}}function w(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function _(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 T(){}},function(e,t,r){"use strict";var n=r(152),f=r(72),a=r(154),i=r(272),o=r(273),s=f.ucs2length,c=r(153),u=a.Validation;function d(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 l(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 f=this._compilations[n];if(f.schema==e&&f.root==t&&f.baseId==r)return n}return-1}function p(e,t){return"var pattern"+e+" = new RegExp("+f.toQuotedString(t[e])+");"}function b(e){return"var default"+e+" = defaults["+e+"];"}function m(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function y(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 w=this,_=this._opts,E=[void 0],A={},T=[],x={},S=[],C={},O=[];r=r||{schema:t,refVal:E,refs:A};var k=d.call(this,t,r,v),P=this._compilations[k.index];if(k.compiling)return P.callValidate=function e(){var t=P.validate,r=t.apply(this,arguments);return e.errors=t.errors,r};var R=this._formats,M=this.RULES;try{var D=B(t,r,h,v);P.validate=D;var N=P.callValidate;return N&&(N.schema=D.schema,N.errors=null,N.refs=D.refs,N.refVal=D.refVal,N.root=D.root,N.$async=D.$async,_.sourceCode&&(N.source=D.source)),D}finally{l.call(this,t,r,v)}function B(t,i,d,l){var h=!i||i&&i.schema==t;if(i.schema!=r.schema)return e.call(w,t,i,d,l);var v,x=!0===t.$async,C=o({isTop:!0,schema:t,isRoot:h,baseId:l,root:i,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:a.MissingRef,RULES:M,validate:o,util:f,resolve:n,resolveRef:I,usePattern:L,useDefault:U,useCustomRule:q,opts:_,formats:R,logger:w.logger,self:w});C=g(E,m)+g(T,p)+g(S,b)+g(O,y)+C,_.processCode&&(C=_.processCode(C,t));try{v=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",C)(w,M,R,r,E,S,O,c,s,u),E[0]=v}catch(e){throw w.logger.error("Error compiling schema, function code:",C),e}return v.schema=t,v.errors=null,v.refs=A,v.refVal=E,v.root=h?v:i,x&&(v.$async=!0),!0===_.sourceCode&&(v.source={code:C,patterns:T,defaults:S}),v}function I(t,f,a){f=n.url(t,f);var i,o,s=A[f];if(void 0!==s)return j(i=E[s],o="refVal["+s+"]");if(!a&&r.refs){var c=r.refs[f];if(void 0!==c)return j(i=r.refVal[c],o=F(f,i))}o=F(f);var u=n.call(w,B,r,f);if(void 0===u){var d=h&&h[f];d&&(u=n.inlineRef(d,_.inlineRefs)?d:e.call(w,d,r,h,t))}if(void 0!==u)return function(e,t){var r=A[e];E[r]=t}(f,u),j(u,o);!function(e){delete A[e]}(f)}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=x[e];return void 0===t&&(t=x[e]=T.length,T[t]=e),"pattern"+t}function U(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return f.toQuotedString(e);case"object":if(null===e)return"null";var t=i(e),r=C[t];return void 0===r&&(r=C[t]=S.length,S[r]=e),"default"+r}}function q(e,t,r,n){if(!1!==w._opts.validateSchema){var f=e.definition.dependencies;if(f&&!f.every((function(e){return Object.prototype.hasOwnProperty.call(r,e)})))throw new Error("parent schema must have all required keywords: "+f.join(","));var a=e.definition.validateSchema;if(a)if(!a(t)){var i="keyword schema is invalid: "+w.errorsText(a.errors);if("log"!=w._opts.validateSchema)throw new Error(i);w.logger.error(i)}}var o,s=e.definition.compile,c=e.definition.inline,u=e.definition.macro;if(s)o=s.call(w,t,r,n);else if(u)o=u.call(w,t,r,n),!1!==_.validateSchema&&w.validateSchema(o,!0);else if(c)o=c.call(w,n,e.keyword,t,r);else if(!(o=e.definition.validate))return;if(void 0===o)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var d=O.length;return O[d]=o,{code:"customRule"+d,validate:o}}}},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,f=1;f<n;++f)t[f]=t[f].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 f(e){return e.toUpperCase()}function a(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 i(e,t){var r=e;if(t)for(var n in t)r[n]=t[n];return r}function o(e){var n="[A-Za-z]",f="[0-9]",a=t(f,"[A-Fa-f]"),i=r(r("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+r("%[89A-Fa-f]"+a+"%"+a+a)+"|"+r("%"+a+a)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",s=t("[\\:\\/\\?\\#\\[\\]\\@]",o),c=e?"[\\uE000-\\uF8FF]":"[]",u=t(n,f,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),d=r(n+t(n,f,"[\\+\\-\\.]")+"*"),l=r(r(i+"|"+t(u,o,"[\\:]"))+"*"),h=(r(r("25[0-5]")+"|"+r("2[0-4]"+f)+"|"+r("1"+f+f)+"|"+r("[1-9]"+f)+"|"+f),r(r("25[0-5]")+"|"+r("2[0-4]"+f)+"|"+r("1"+f+f)+"|"+r("0?[1-9]"+f)+"|0?0?"+f)),p=r(h+"\\."+h+"\\."+h+"\\."+h),b=r(a+"{1,4}"),m=r(r(b+"\\:"+b)+"|"+p),y=r(r(b+"\\:")+"{6}"+m),g=r("\\:\\:"+r(b+"\\:")+"{5}"+m),v=r(r(b)+"?\\:\\:"+r(b+"\\:")+"{4}"+m),w=r(r(r(b+"\\:")+"{0,1}"+b)+"?\\:\\:"+r(b+"\\:")+"{3}"+m),_=r(r(r(b+"\\:")+"{0,2}"+b)+"?\\:\\:"+r(b+"\\:")+"{2}"+m),E=r(r(r(b+"\\:")+"{0,3}"+b)+"?\\:\\:"+b+"\\:"+m),A=r(r(r(b+"\\:")+"{0,4}"+b)+"?\\:\\:"+m),T=r(r(r(b+"\\:")+"{0,5}"+b)+"?\\:\\:"+b),x=r(r(r(b+"\\:")+"{0,6}"+b)+"?\\:\\:"),S=r([y,g,v,w,_,E,A,T,x].join("|")),C=r(r(u+"|"+i)+"+"),O=(r(S+"\\%25"+C),r(S+r("\\%25|\\%(?!"+a+"{2})")+C)),k=r("[vV]"+a+"+\\."+t(u,o,"[\\:]")+"+"),P=r("\\["+r(O+"|"+S+"|"+k)+"\\]"),R=r(r(i+"|"+t(u,o))+"*"),M=r(P+"|"+p+"(?!"+R+")|"+R),D=r(f+"*"),N=r(r(l+"@")+"?"+M+r("\\:"+D)+"?"),B=r(i+"|"+t(u,o,"[\\:\\@]")),I=r(B+"*"),F=r(B+"+"),j=r(r(i+"|"+t(u,o,"[\\@]"))+"+"),L=r(r("\\/"+I)+"*"),U=r("\\/"+r(F+L)+"?"),q=r(j+L),H=r(F+L),z="(?!"+B+")",V=(r(L+"|"+U+"|"+q+"|"+H+"|"+z),r(r(B+"|"+t("[\\/\\?]",c))+"*")),K=r(r(B+"|[\\/\\?]")+"*"),G=r(r("\\/\\/"+N+L)+"|"+U+"|"+H+"|"+z),$=r(d+"\\:"+G+r("\\?"+V)+"?"+r("\\#"+K)+"?"),W=r(r("\\/\\/"+N+L)+"|"+U+"|"+q+"|"+z),Y=r(W+r("\\?"+V)+"?"+r("\\#"+K)+"?");return r($+"|"+Y),r(d+"\\:"+G+r("\\?"+V)+"?"),r(r("\\/\\/("+r("("+l+")@")+"?("+M+")"+r("\\:("+D+")")+"?)")+"?("+L+"|"+U+"|"+H+"|"+z+")"),r("\\?("+V+")"),r("\\#("+K+")"),r(r("\\/\\/("+r("("+l+")@")+"?("+M+")"+r("\\:("+D+")")+"?)")+"?("+L+"|"+U+"|"+q+"|"+z+")"),r("\\?("+V+")"),r("\\#("+K+")"),r(r("\\/\\/("+r("("+l+")@")+"?("+M+")"+r("\\:("+D+")")+"?)")+"?("+L+"|"+U+"|"+H+"|"+z+")"),r("\\?("+V+")"),r("\\#("+K+")"),r("("+l+")@"),r("\\:("+D+")"),{NOT_SCHEME:new RegExp(t("[^]",n,f,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",u,o),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",u,o),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",u,o),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",u,o),"g"),NOT_QUERY:new RegExp(t("[^\\%]",u,o,"[\\:\\@\\/\\?]",c),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",u,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",u,o),"g"),UNRESERVED:new RegExp(u,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",u,s),"g"),PCT_ENCODED:new RegExp(i,"g"),IPV4ADDRESS:new RegExp("^("+p+")$"),IPV6ADDRESS:new RegExp("^\\[?("+S+")"+r(r("\\%25|\\%(?!"+a+"{2})")+"("+C+")")+"?\\]?$")}}var s=o(!1),c=o(!0),u=function(){function e(e,t){var r=[],n=!0,f=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(n=(i=o.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){f=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(f)throw a}}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")}}(),d=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)},l=2147483647,h=36,p=1,b=26,m=38,y=700,g=72,v=128,w="-",_=/^xn--/,E=/[^\0-\x7E]/,A=/[\x2E\u3002\uFF0E\uFF61]/g,T={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},x=h-p,S=Math.floor,C=String.fromCharCode;function O(e){throw new RangeError(T[e])}function k(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}function P(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 R(e){for(var t=[],r=0,n=e.length;r<n;){var f=e.charCodeAt(r++);if(f>=55296&&f<=56319&&r<n){var a=e.charCodeAt(r++);56320==(64512&a)?t.push(((1023&f)<<10)+(1023&a)+65536):(t.push(f),r--)}else t.push(f)}return t}var M=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:h},D=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},N=function(e,t,r){var n=0;for(e=r?S(e/y):e>>1,e+=S(e/t);e>x*b>>1;n+=h)e=S(e/x);return S(n+(x+1)*e/(e+m))},B=function(e){var t=[],r=e.length,n=0,f=v,a=g,i=e.lastIndexOf(w);i<0&&(i=0);for(var o=0;o<i;++o)e.charCodeAt(o)>=128&&O("not-basic"),t.push(e.charCodeAt(o));for(var s=i>0?i+1:0;s<r;){for(var c=n,u=1,d=h;;d+=h){s>=r&&O("invalid-input");var m=M(e.charCodeAt(s++));(m>=h||m>S((l-n)/u))&&O("overflow"),n+=m*u;var y=d<=a?p:d>=a+b?b:d-a;if(m<y)break;var _=h-y;u>S(l/_)&&O("overflow"),u*=_}var E=t.length+1;a=N(n-c,E,0==c),S(n/E)>l-f&&O("overflow"),f+=S(n/E),n%=E,t.splice(n++,0,f)}return String.fromCodePoint.apply(String,t)},I=function(e){var t=[],r=(e=R(e)).length,n=v,f=0,a=g,i=!0,o=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var d=c.value;d<128&&t.push(C(d))}}catch(e){o=!0,s=e}finally{try{!i&&u.return&&u.return()}finally{if(o)throw s}}var m=t.length,y=m;for(m&&t.push(w);y<r;){var _=l,E=!0,A=!1,T=void 0;try{for(var x,k=e[Symbol.iterator]();!(E=(x=k.next()).done);E=!0){var P=x.value;P>=n&&P<_&&(_=P)}}catch(e){A=!0,T=e}finally{try{!E&&k.return&&k.return()}finally{if(A)throw T}}var M=y+1;_-n>S((l-f)/M)&&O("overflow"),f+=(_-n)*M,n=_;var B=!0,I=!1,F=void 0;try{for(var j,L=e[Symbol.iterator]();!(B=(j=L.next()).done);B=!0){var U=j.value;if(U<n&&++f>l&&O("overflow"),U==n){for(var q=f,H=h;;H+=h){var z=H<=a?p:H>=a+b?b:H-a;if(q<z)break;var V=q-z,K=h-z;t.push(C(D(z+V%K,0))),q=S(V/K)}t.push(C(D(q,0))),a=N(f,M,y==m),f=0,++y}}}catch(e){I=!0,F=e}finally{try{!B&&L.return&&L.return()}finally{if(I)throw F}}++f,++n}return t.join("")},F=function(e){return P(e,(function(e){return _.test(e)?B(e.slice(4).toLowerCase()):e}))},j=function(e){return P(e,(function(e){return E.test(e)?"xn--"+I(e):e}))},L={version:"2.1.0",ucs2:{decode:R,encode:function(e){return String.fromCodePoint.apply(String,d(e))}},decode:B,encode:I,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 H(e){for(var t="",r=0,n=e.length;r<n;){var f=parseInt(e.substr(r+1,2),16);if(f<128)t+=String.fromCharCode(f),r+=3;else if(f>=194&&f<224){if(n-r>=6){var a=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&f)<<6|63&a)}else t+=e.substr(r,6);r+=6}else if(f>=224){if(n-r>=9){var i=parseInt(e.substr(r+4,2),16),o=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&f)<<12|(63&i)<<6|63&o)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function z(e,t){function r(e){var r=H(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,f)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,q).replace(t.PCT_ENCODED,f)),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,f)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,q).replace(t.PCT_ENCODED,f)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,q).replace(t.PCT_ENCODED,f)),e}function V(e){return e.replace(/^0*(.*)/,"$1")||"0"}function K(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=u(r,2)[1];return n?n.split(".").map(V).join("."):e}function G(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=u(r,3),f=n[1],a=n[2];if(f){for(var i=f.toLowerCase().split("::").reverse(),o=u(i,2),s=o[0],c=o[1],d=c?c.split(":").map(V):[],l=s.split(":").map(V),h=t.IPV4ADDRESS.test(l[l.length-1]),p=h?7:8,b=l.length-p,m=Array(p),y=0;y<p;++y)m[y]=d[y]||l[b+y]||"";h&&(m[p-1]=K(m[p-1],t));var g=m.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 w=m.slice(0,g.index),_=m.slice(g.index+g.length);v=w.join(":")+"::"+_.join(":")}else v=m.join(":");return a&&(v+="%"+a),v}return e}var $=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,W=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 f=e.match($);if(f){W?(r.scheme=f[1],r.userinfo=f[3],r.host=f[4],r.port=parseInt(f[5],10),r.path=f[6]||"",r.query=f[7],r.fragment=f[8],isNaN(r.port)&&(r.port=f[5])):(r.scheme=f[1]||void 0,r.userinfo=-1!==e.indexOf("@")?f[3]:void 0,r.host=-1!==e.indexOf("//")?f[4]:void 0,r.port=parseInt(f[5],10),r.path=f[6]||"",r.query=-1!==e.indexOf("?")?f[7]:void 0,r.fragment=-1!==e.indexOf("#")?f[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?f[4]:void 0)),r.host&&(r.host=G(K(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 a=U[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||a&&a.unicodeSupport)z(r,n);else{if(r.host&&(t.domainHost||a&&a.domainHost))try{r.host=L.toASCII(r.host.replace(n.PCT_ENCODED,H).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+e}z(r,s)}a&&a.parse&&a.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(G(K(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=[],f=U[(t.scheme||e.scheme||"").toLowerCase()];if(f&&f.serialize&&f.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||f&&f.domainHost)try{e.host=t.iri?L.toUnicode(e.host):L.toASCII(e.host.replace(r.PCT_ENCODED,H).toLowerCase())}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+r}z(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var a=J(e,t);if(void 0!==a&&("suffix"!==t.reference&&n.push("//"),n.push(a),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var i=e.path;t.absolutePath||f&&f.absolutePath||(i=te(i)),void 0===a&&(i=i.replace(/^\/\//,"/%2F")),n.push(i)}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 fe(e,t,r){var n=i({scheme:"null"},r);return re(ne(Y(e,n),Y(t,n),n,!0),n)}function ae(e,t){return"string"==typeof e?e=re(Y(e,t),t):"object"===n(e)&&(e=Y(re(e,t),t)),e}function ie(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 oe(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,H)}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 de(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var le={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=de(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!==(de(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),f=n[0],a=n[1];e.path=f&&"/"!==f?f:void 0,e.query=a,e.resourceName=void 0}return e.fragment=void 0,e}},he={scheme:"wss",domainHost:le.domainHost,parse:le.parse,serialize:le.serialize},pe={},be="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",me="[0-9A-Fa-f]",ye=r(r("%[EFef]"+me+"%"+me+me+"%"+me+me)+"|"+r("%[89A-Fa-f]"+me+"%"+me+me)+"|"+r("%"+me+me)),ge="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ve=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),we="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",_e=new RegExp(be,"g"),Ee=new RegExp(ye,"g"),Ae=new RegExp(t("[^]",ge,"[\\.]",'[\\"]',ve),"g"),Te=new RegExp(t("[^]",be,we),"g"),xe=Te;function Se(e){var t=H(e);return t.match(_e)?t:e}var Ce={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 f=!1,a={},i=r.query.split("&"),o=0,s=i.length;o<s;++o){var c=i[o].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),d=0,l=u.length;d<l;++d)n.push(u[d]);break;case"subject":r.subject=se(c[1],t);break;case"body":r.body=se(c[1],t);break;default:f=!0,a[se(c[0],t)]=se(c[1],t)}}f&&(r.headers=a)}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=a(e.to);if(n){for(var i=0,o=n.length;i<o;++i){var s=String(n[i]),c=s.lastIndexOf("@"),u=s.slice(0,c).replace(Ee,Se).replace(Ee,f).replace(Ae,q),d=s.slice(c+1);try{d=t.iri?L.toUnicode(d):L.toASCII(se(d,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[i]=u+"@"+d}r.path=n.join(",")}var l=e.headers=e.headers||{};e.subject&&(l.subject=e.subject),e.body&&(l.body=e.body);var h=[];for(var p in l)l[p]!==pe[p]&&h.push(p.replace(Ee,Se).replace(Ee,f).replace(Te,q)+"="+l[p].replace(Ee,Se).replace(Ee,f).replace(xe,q));return h.length&&(r.query=h.join("&")),r}},Oe=/^([^\:]+)\:(.*)/,ke={scheme:"urn",parse:function(e,t){var r=e.path&&e.path.match(Oe),n=e;if(r){var f=t.scheme||n.scheme||"urn",a=r[1].toLowerCase(),i=r[2],o=f+":"+(t.nid||a),s=U[o];n.nid=a,n.nss=i,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,f=r+":"+(t.nid||n),a=U[f];a&&(e=a.serialize(e,t));var i=e,o=e.nss;return i.path=(n||t.nid)+":"+o,i}},Pe=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Re={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(Pe)||(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[le.scheme]=le,U[he.scheme]=he,U[Ce.scheme]=Ce,U[ke.scheme]=ke,U[Re.scheme]=Re,e.SCHEMES=U,e.pctEncChar=q,e.pctDecChars=H,e.parse=Y,e.removeDotSegments=te,e.serialize=re,e.resolveComponents=ne,e.resolve=fe,e.normalize=ae,e.equal=ie,e.escapeComponent=oe,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,f=0;f<n;)r++,(t=e.charCodeAt(f++))>=55296&&t<=56319&&f<n&&56320==(64512&(t=e.charCodeAt(f)))&&f++;return r}},function(e,t,r){"use strict";var n=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),f(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function f(e,t,r,a,i,o,s,c,u,d){if(a&&"object"==typeof a&&!Array.isArray(a)){for(var l in t(a,i,o,s,c,u,d),a){var h=a[l];if(Array.isArray(h)){if(l in n.arrayKeywords)for(var p=0;p<h.length;p++)f(e,t,r,h[p],i+"/"+l+"/"+p,o,i,l,a,p)}else if(l in n.propsKeywords){if(h&&"object"==typeof h)for(var b in h)f(e,t,r,h[b],i+"/"+l+"/"+b.replace(/~/g,"~0").replace(/\//g,"~1"),o,i,l,a,b)}else(l in n.keywords||e.allKeys&&!(l in n.skipKeywords))&&f(e,t,r,h,i+"/"+l,o,i,l,a)}r(a,i,o,s,c,u,d)}}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(72),f=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,a=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,o=/^(?=.{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,d=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,l=/^(?:\/(?:[^~/]|~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 m(e){var t=e.match(f);if(!t)return!1;var r=+t[1],n=+t[2],i=+t[3];return n>=1&&n<=12&&i>=1&&i<=(2==n&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(r)?29:a[n])}function y(e,t){var r=e.match(i);if(!r)return!1;var n=r[1],f=r[2],a=r[3],o=r[5];return(n<=23&&f<=59&&a<=59||23==n&&59==f&&60==a)&&(!t||o)}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:o,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:_,uuid:d,"json-pointer":l,"json-pointer-uri-fragment":h,"relative-json-pointer":p},b.full={date:m,time:y,"date-time":function(e){var t=e.split(g);return 2==t.length&&m(t[0])&&y(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:o,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:_,uuid:d,"json-pointer":l,"json-pointer-uri-fragment":h,"relative-json-pointer":p};var g=/t|\s/i;var v=/\/|:/;var w=/[^\\]\\Z/;function _(e){if(w.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},function(e,t,r){"use strict";var n=r(670),f=r(72).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=f(t),e.types=f(["number","integer","string","array","object","boolean","null"]),e.forEach((function(r){r.rules=r.rules.map((function(r){var f;if("object"==typeof r){var a=Object.keys(r)[0];f=r[a],r=a,f.forEach((function(r){t.push(r),e.all[r]=!0}))}return t.push(r),e.all[r]={keyword:r,code:n[r],implements:f}})),e.all.$comment={keyword:"$comment",code:n.$comment},r.type&&(e.types[r.type]=r)})),e.keywords=f(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(671),allOf:r(672),anyOf:r(673),$comment:r(674),const:r(675),contains:r(676),dependencies:r(677),enum:r(678),format:r(679),if:r(680),items:r(681),maximum:r(274),minimum:r(274),maxItems:r(275),minItems:r(275),maxLength:r(276),minLength:r(276),maxProperties:r(277),minProperties:r(277),multipleOf:r(682),not:r(683),oneOf:r(684),pattern:r(685),properties:r(686),propertyNames:r(687),required:r(688),uniqueItems:r(689),validate:r(273)}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(o||""),l="valid"+i;if("#"==s||"#/"==s)e.isRoot?(n=e.async,f="validate"):(n=!0===e.root.schema.$async,f="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(a),a="",!1!==e.createErrors?(a+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(s)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(s)+"' "),e.opts.verbose&&(a+=" , schema: "+e.util.toQuotedString(s)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),a+=" } "):a+=" {} ";var b=a;a=g.pop(),!e.compositeRule&&u?e.async?a+=" throw new ValidationError(["+b+"]); ":a+=" validate.errors = ["+b+"]; return false; ":a+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(a+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,s,p);e.logger.warn(p),u&&(a+=" if (true) { ")}}else if(h.inline){var m=e.util.copy(e);m.level++;var y="valid"+m.level;m.schema=h.schema,m.schemaPath="",m.errSchemaPath=s,a+=" "+e.validate(m).replace(/validate\.schema/g,h.code)+" ",u&&(a+=" if ("+y+") { ")}else n=!0===h.$async||e.async&&!1!==h.$async,f=h.code}if(f){var g;(g=g||[]).push(a),a="",e.opts.passContext?a+=" "+f+".call(this, ":a+=" "+f+"( ",a+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(a+=" + "+e.errorPath);var v=a+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(a=g.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(a+=" var "+l+"; "),a+=" try { await "+v+"; ",u&&(a+=" "+l+" = true; "),a+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(a+=" "+l+" = false; "),a+=" } ",u&&(a+=" if ("+l+") { ")}else a+=" if (!"+v+") { if (vErrors === null) vErrors = "+f+".errors; else vErrors = vErrors.concat("+f+".errors); errors = vErrors.length; } ",u&&(a+=" else { ")}return a}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.schema[t],a=e.schemaPath+e.util.getProperty(t),i=e.errSchemaPath+"/"+t,o=!e.opts.allErrors,s=e.util.copy(e),c="";s.level++;var u="valid"+s.level,d=s.baseId,l=!0,h=f;if(h)for(var p,b=-1,m=h.length-1;b<m;)p=h[b+=1],(e.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:e.util.schemaHasRules(p,e.RULES.all))&&(l=!1,s.schema=p,s.schemaPath=a+"["+b+"]",s.errSchemaPath=i+"/"+b,n+=" "+e.validate(s)+" ",s.baseId=d,o&&(n+=" if ("+u+") { ",c+="}"));return o&&(n+=l?" if (true) { ":" "+c.slice(0,-1)+" "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level;if(i.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&Object.keys(t).length>0:e.util.schemaHasRules(t,e.RULES.all)}))){var m=h.baseId;n+=" var "+l+" = errors; var "+d+" = false; ";var y=e.compositeRule;e.compositeRule=h.compositeRule=!0;var g=i;if(g)for(var v,w=-1,_=g.length-1;w<_;)v=g[w+=1],h.schema=v,h.schemaPath=o+"["+w+"]",h.errSchemaPath=s+"/"+w,n+=" "+e.validate(h)+" ",h.baseId=m,n+=" "+d+" = "+d+" || "+b+"; if (!"+d+") { ",p+="}";e.compositeRule=h.compositeRule=y,n+=" "+p+" if (!"+d+") { 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"+o+" , 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 = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; 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=" ",f=e.schema[t],a=e.errSchemaPath+"/"+t,i=(e.opts.allErrors,e.util.toQuotedString(f));return!0===e.opts.$comment?n+=" console.log("+i+");":"function"==typeof e.opts.$comment&&(n+=" self._opts.$comment("+i+", "+e.util.toQuotedString(a)+", validate.root.schema);"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l=e.opts.$data&&i&&i.$data;l&&(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; "),l||(n+=" var schema"+f+" = validate.schema"+o+";"),n+="var "+d+" = equal("+u+", schema"+f+"); if (!"+d+") { ";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"+f+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to constant' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e);h.level++;var p="valid"+h.level,b="i"+f,m=h.dataLevel=e.dataLevel+1,y="data"+m,g=e.baseId,v=e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all);if(n+="var "+l+" = errors;var "+d+";",v){var w=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=i,h.schemaPath=o,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 _=u+"["+b+"]";h.dataPathArr[m]=b;var E=e.validate(h);h.baseId=g,e.util.varOccurences(E,y)<2?n+=" "+e.util.varReplace(E,y,_)+" ":n+=" var "+y+" = "+_+"; "+E+" ",n+=" if ("+p+") break; } ",e.compositeRule=h.compositeRule=w,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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var T=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",v&&(n+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e),h="";l.level++;var p="valid"+l.level,b={},m={},y=e.opts.ownProperties;for(_ in i)if("__proto__"!=_){var g=i[_],v=Array.isArray(g)?m:b;v[_]=g}n+="var "+d+" = errors;";var w=e.errorPath;for(var _ in n+="var missing"+f+";",m)if((v=m[_]).length){if(n+=" if ( "+u+e.util.getProperty(_)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(_)+"') "),c){n+=" && ( ";var E=v;if(E)for(var A=-1,T=E.length-1;A<T;){P=E[A+=1],A&&(n+=" || "),n+=" ( ( "+(N=u+(D=e.util.getProperty(P)))+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(P)+"') "),n+=") && (missing"+f+" = "+e.util.toQuotedString(e.opts.jsonPointers?P:D)+") ) "}n+=")) { ";var x="missing"+f,S="' + "+x+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(w,x,!0):w+" + "+x);var C=C||[];C.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(_)+"', missingProperty: '"+S+"', 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(_)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var O=n;n=C.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+O+"]); ":n+=" validate.errors = ["+O+"]; return false; ":n+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{n+=" ) { ";var k=v;if(k)for(var P,R=-1,M=k.length-1;R<M;){P=k[R+=1];var D=e.util.getProperty(P),N=(S=e.util.escapeQuotes(P),u+D);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(w,P,e.opts.jsonPointers)),n+=" if ( "+N+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(P)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(_)+"', missingProperty: '"+S+"', 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(_)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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=w;var B=l.baseId;for(var _ in b){g=b[_];(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(_)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(_)+"') "),n+=") { ",l.schema=g,l.schemaPath=o+e.util.getProperty(_),l.errSchemaPath=s+"/"+e.util.escapeFragment(_),n+=" "+e.validate(l)+" ",l.baseId=B,n+=" } ",c&&(n+=" if ("+p+") { ",h+="}"))}return c&&(n+=" "+h+" if ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l=e.opts.$data&&i&&i.$data;l&&(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; ");var h="i"+f,p="schema"+f;l||(n+=" var "+p+" = validate.schema"+o+";"),n+="var "+d+";",l&&(n+=" if (schema"+f+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+f+")) "+d+" = false; else {"),n+=d+" = false;for (var "+h+"=0; "+h+"<"+p+".length; "+h+"++) if (equal("+u+", "+p+"["+h+"])) { "+d+" = true; break; }",l&&(n+=" } "),n+=" if (!"+d+") { ";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"+f+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var m=n;return n=b.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+=" }",c&&(n+=" else { "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||"");if(!1===e.opts.format)return c&&(n+=" if (true) { "),n;var d,l=e.opts.$data&&i&&i.$data;l?(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; ",d="schema"+f):d=i;var h=e.opts.unknownFormats,p=Array.isArray(h);if(l){n+=" var "+(b="format"+f)+" = formats["+d+"]; var "+(m="isObject"+f)+" = typeof "+b+" == 'object' && !("+b+" instanceof RegExp) && "+b+".validate; var "+(y="formatType"+f)+" = "+m+" && "+b+".type || 'string'; if ("+m+") { ",e.async&&(n+=" var async"+f+" = "+b+".async; "),n+=" "+b+" = "+b+".validate; } if ( ",l&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),n+=" (","ignore"!=h&&(n+=" ("+d+" && !"+b+" ",p&&(n+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),n+=") || "),n+=" ("+b+" && "+y+" == '"+r+"' && !(typeof "+b+" == 'function' ? ",e.async?n+=" (async"+f+" ? await "+b+"("+u+") : "+b+"("+u+")) ":n+=" "+b+"("+u+") ",n+=" : "+b+".test("+u+"))))) {"}else{var b;if(!(b=e.formats[i])){if("ignore"==h)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(n+=" if (true) { "),n;if(p&&h.indexOf(i)>=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var m,y=(m="object"==typeof b&&!(b instanceof RegExp)&&b.validate)&&b.type||"string";if(m){var g=!0===b.async;b=b.validate}if(y!=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(i)+".validate")+"("+u+"))) { "}else{n+=" if (! ";var v="formats"+e.util.getProperty(i);m&&(v+=".validate"),n+="function"==typeof b?" "+v+"("+u+") ":" "+v+".test("+u+") ",n+=") { "}}var w=w||[];w.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { format: ",n+=l?""+d:""+e.util.toQuotedString(i),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=l?"' + "+d+" + '":""+e.util.escapeQuotes(i),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=l?"validate.schema"+o:""+e.util.toQuotedString(i),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var _=n;return n=w.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e);h.level++;var p="valid"+h.level,b=e.schema.then,m=e.schema.else,y=void 0!==b&&(e.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:e.util.schemaHasRules(b,e.RULES.all)),g=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:e.util.schemaHasRules(m,e.RULES.all)),v=h.baseId;if(y||g){var w;h.createErrors=!1,h.schema=i,h.schemaPath=o,h.errSchemaPath=s,n+=" var "+l+" = errors; var "+d+" = true; ";var _=e.compositeRule;e.compositeRule=h.compositeRule=!0,n+=" "+e.validate(h)+" ",h.baseId=v,h.createErrors=!0,n+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=_,y?(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+=" "+d+" = "+p+"; ",y&&g?n+=" var "+(w="ifClause"+f)+" = 'then'; ":w="'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+=" "+d+" = "+p+"; ",y&&g?n+=" var "+(w="ifClause"+f)+" = 'else'; ":w="'else'",n+=" } "),n+=" if (!"+d+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { failingKeyword: "+w+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match \"' + "+w+" + '\" schema' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,m="i"+f,y=h.dataLevel=e.dataLevel+1,g="data"+y,v=e.baseId;if(n+="var "+l+" = errors;var "+d+";",Array.isArray(i)){var w=e.schema.additionalItems;if(!1===w){n+=" "+d+" = "+u+".length <= "+i.length+"; ";var _=s;s=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+i.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=_,c&&(p+="}",n+=" else { ")}var T=i;if(T)for(var x,S=-1,C=T.length-1;S<C;)if(x=T[S+=1],e.opts.strictKeywords?"object"==typeof x&&Object.keys(x).length>0:e.util.schemaHasRules(x,e.RULES.all)){n+=" "+b+" = true; if ("+u+".length > "+S+") { ";var O=u+"["+S+"]";h.schema=x,h.schemaPath=o+"["+S+"]",h.errSchemaPath=s+"/"+S,h.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),h.dataPathArr[y]=S;var k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,O)+" ":n+=" var "+g+" = "+O+"; "+k+" ",n+=" } ",c&&(n+=" if ("+b+") { ",p+="}")}if("object"==typeof w&&(e.opts.strictKeywords?"object"==typeof w&&Object.keys(w).length>0:e.util.schemaHasRules(w,e.RULES.all))){h.schema=w,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+b+" = true; if ("+u+".length > "+i.length+") { for (var "+m+" = "+i.length+"; "+m+" < "+u+".length; "+m+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);O=u+"["+m+"]";h.dataPathArr[y]=m;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,O)+" ":n+=" var "+g+" = "+O+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" } } ",c&&(n+=" if ("+b+") { ",p+="}")}}else if(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all)){h.schema=i,h.schemaPath=o,h.errSchemaPath=s,n+=" for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);O=u+"["+m+"]";h.dataPathArr[y]=m;k=e.validate(h);h.baseId=v,e.util.varOccurences(k,g)<2?n+=" "+e.util.varReplace(k,g,O)+" ":n+=" var "+g+" = "+O+"; "+k+" ",c&&(n+=" if (!"+b+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+l+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(i||""),l=e.opts.$data&&o&&o.$data;if(l?(f+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",n="schema"+a):n=o,!l&&"number"!=typeof o)throw new Error(t+" must be number");f+="var division"+a+";if (",l&&(f+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),f+=" (division"+a+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?f+=" Math.abs(Math.round(division"+a+") - division"+a+") > 1e-"+e.opts.multipleOfPrecision+" ":f+=" division"+a+" !== parseInt(division"+a+") ",f+=" ) ",l&&(f+=" ) "),f+=" ) { ";var h=h||[];h.push(f),f="",!1!==e.createErrors?(f+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(f+=" , message: 'should be multiple of ",f+=l?"' + "+n:n+"'"),e.opts.verbose&&(f+=" , schema: ",f+=l?"validate.schema"+s:""+o,f+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var p=f;return f=h.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+p+"]); ":f+=" validate.errors = ["+p+"]; return false; ":f+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",u&&(f+=" else { "),f}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e);l.level++;var h="valid"+l.level;if(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all)){l.schema=i,l.schemaPath=o,l.errSchemaPath=s,n+=" var "+d+" = errors; ";var p,b=e.compositeRule;e.compositeRule=l.compositeRule=!0,l.createErrors=!1,l.opts.allErrors&&(p=l.opts.allErrors,l.opts.allErrors=!1),n+=" "+e.validate(l)+" ",l.createErrors=!0,p&&(l.opts.allErrors=p),e.compositeRule=l.compositeRule=b,n+=" if ("+h+") { ";var m=m||[];m.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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var y=n;n=m.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+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; 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"+o+" , 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=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l="errs__"+f,h=e.util.copy(e),p="";h.level++;var b="valid"+h.level,m=h.baseId,y="prevValid"+f,g="passingSchemas"+f;n+="var "+l+" = errors , "+y+" = false , "+d+" = false , "+g+" = null; ";var v=e.compositeRule;e.compositeRule=h.compositeRule=!0;var w=i;if(w)for(var _,E=-1,A=w.length-1;E<A;)_=w[E+=1],(e.opts.strictKeywords?"object"==typeof _&&Object.keys(_).length>0:e.util.schemaHasRules(_,e.RULES.all))?(h.schema=_,h.schemaPath=o+"["+E+"]",h.errSchemaPath=s+"/"+E,n+=" "+e.validate(h)+" ",h.baseId=m):n+=" var "+b+" = true; ",E&&(n+=" if ("+b+" && "+y+") { "+d+" = false; "+g+" = ["+g+", "+E+"]; } else { ",p+="}"),n+=" if ("+b+") { "+d+" = "+y+" = true; "+g+" = "+E+"; }";return e.compositeRule=h.compositeRule=v,n+=p+"if (!"+d+") { 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"+o+" , 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 = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(i||""),l=e.opts.$data&&o&&o.$data;l?(f+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",n="schema"+a):n=o,f+="if ( ",l&&(f+=" ("+n+" !== undefined && typeof "+n+" != 'string') || "),f+=" !"+(l?"(new RegExp("+n+"))":e.usePattern(o))+".test("+d+") ) { ";var h=h||[];h.push(f),f="",!1!==e.createErrors?(f+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",f+=l?""+n:""+e.util.toQuotedString(o),f+=" } ",!1!==e.opts.messages&&(f+=" , message: 'should match pattern \"",f+=l?"' + "+n+" + '":""+e.util.escapeQuotes(o),f+="\"' "),e.opts.verbose&&(f+=" , schema: ",f+=l?"validate.schema"+s:""+e.util.toQuotedString(o),f+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var p=f;return f=h.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+p+"]); ":f+=" validate.errors = ["+p+"]; return false; ":f+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",u&&(f+=" else { "),f}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e),h="";l.level++;var p="valid"+l.level,b="key"+f,m="idx"+f,y=l.dataLevel=e.dataLevel+1,g="data"+y,v="dataProperties"+f,w=Object.keys(i||{}).filter(D),_=e.schema.patternProperties||{},E=Object.keys(_).filter(D),A=e.schema.additionalProperties,T=w.length||E.length,x=!1===A,S="object"==typeof A&&Object.keys(A).length,C=e.opts.removeAdditional,O=x||S||C,k=e.opts.ownProperties,P=e.baseId,R=e.schema.required;if(R&&(!e.opts.$data||!R.$data)&&R.length<e.opts.loopRequired)var M=e.util.toHash(R);function D(e){return"__proto__"!==e}if(n+="var "+d+" = errors;var "+p+" = true;",k&&(n+=" var "+v+" = undefined;"),O){if(n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+v+".length; "+m+"++) { var "+b+" = "+v+"["+m+"]; ":" for (var "+b+" in "+u+") { ",T){if(n+=" var isAdditional"+f+" = !(false ",w.length)if(w.length>8)n+=" || validate.schema"+o+".hasOwnProperty("+b+") ";else{var N=w;if(N)for(var B=-1,I=N.length-1;B<I;)Y=N[B+=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;)ae=F[j+=1],n+=" || "+e.usePattern(ae)+".test("+b+") "}n+=" ); if (isAdditional"+f+") { "}if("all"==C)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)),x)if(C)n+=" delete "+u+"["+b+"]; ";else{n+=" "+p+" = false; ";var H=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 z=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+z+"]); ":n+=" validate.errors = ["+z+"]; return false; ":n+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=H,c&&(n+=" break; ")}else if(S)if("failing"==C){n+=" var "+d+" = errors; ";var V=e.compositeRule;e.compositeRule=l.compositeRule=!0,l.schema=A,l.schemaPath=e.schemaPath+".additionalProperties",l.errSchemaPath=e.errSchemaPath+"/additionalProperties",l.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);var K=u+"["+b+"]";l.dataPathArr[y]=b;var G=e.validate(l);l.baseId=P,e.util.varOccurences(G,g)<2?n+=" "+e.util.varReplace(G,g,K)+" ":n+=" var "+g+" = "+K+"; "+G+" ",n+=" if (!"+p+") { errors = "+d+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+b+"]; } ",e.compositeRule=l.compositeRule=V}else{l.schema=A,l.schemaPath=e.schemaPath+".additionalProperties",l.errSchemaPath=e.errSchemaPath+"/additionalProperties",l.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);K=u+"["+b+"]";l.dataPathArr[y]=b;G=e.validate(l);l.baseId=P,e.util.varOccurences(G,g)<2?n+=" "+e.util.varReplace(G,g,K)+" ":n+=" var "+g+" = "+K+"; "+G+" ",c&&(n+=" if (!"+p+") break; ")}e.errorPath=U}T&&(n+=" } "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}var $=e.opts.useDefaults&&!e.compositeRule;if(w.length){var W=w;if(W)for(var Y,J=-1,X=W.length-1;J<X;){var Z=i[Y=W[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=(K=u+Q,$&&void 0!==Z.default);l.schema=Z,l.schemaPath=o+Q,l.errSchemaPath=s+"/"+e.util.escapeFragment(Y),l.errorPath=e.util.getPath(e.errorPath,Y,e.opts.jsonPointers),l.dataPathArr[y]=e.util.toQuotedString(Y);G=e.validate(l);if(l.baseId=P,e.util.varOccurences(G,g)<2){G=e.util.varReplace(G,g,K);var te=K}else{te=g;n+=" var "+g+" = "+K+"; "}if(ee)n+=" "+G+" ";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,H=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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";z=n;n=re.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+z+"]); ":n+=" validate.errors = ["+z+"]; return false; ":n+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=H,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+=" "+G+" } "}}c&&(n+=" if ("+p+") { ",h+="}")}}if(E.length){var fe=E;if(fe)for(var ae,ie=-1,oe=fe.length-1;ie<oe;){Z=_[ae=fe[ie+=1]];if(e.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0:e.util.schemaHasRules(Z,e.RULES.all)){l.schema=Z,l.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ae),l.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ae),n+=k?" "+v+" = "+v+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+v+".length; "+m+"++) { var "+b+" = "+v+"["+m+"]; ":" for (var "+b+" in "+u+") { ",n+=" if ("+e.usePattern(ae)+".test("+b+")) { ",l.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers);K=u+"["+b+"]";l.dataPathArr[y]=b;G=e.validate(l);l.baseId=P,e.util.varOccurences(G,g)<2?n+=" "+e.util.varReplace(G,g,K)+" ":n+=" var "+g+" = "+K+"; "+G+" ",c&&(n+=" if (!"+p+") break; "),n+=" } ",c&&(n+=" else "+p+" = true; "),n+=" } ",c&&(n+=" if ("+p+") { ",h+="}")}}}return c&&(n+=" "+h+" if ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="errs__"+f,l=e.util.copy(e);l.level++;var h="valid"+l.level;if(n+="var "+d+" = errors;",e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0:e.util.schemaHasRules(i,e.RULES.all)){l.schema=i,l.schemaPath=o,l.errSchemaPath=s;var p="key"+f,b="idx"+f,m="i"+f,y="' + "+p+" + '",g="data"+(l.dataLevel=e.dataLevel+1),v="dataProperties"+f,w=e.opts.ownProperties,_=e.baseId;w&&(n+=" var "+v+" = undefined; "),n+=w?" "+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"+f+" = errors; ";var E=p,A=e.compositeRule;e.compositeRule=l.compositeRule=!0;var T=e.validate(l);l.baseId=_,e.util.varOccurences(T,g)<2?n+=" "+e.util.varReplace(T,g,E)+" ":n+=" var "+g+" = "+E+"; "+T+" ",e.compositeRule=l.compositeRule=A,n+=" if (!"+h+") { for (var "+m+"=startErrs"+f+"; "+m+"<errors; "+m+"++) { vErrors["+m+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(n+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { propertyName: '"+y+"' } ",!1!==e.opts.messages&&(n+=" , message: 'property name \\'"+y+"\\' is invalid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+o+" , 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 ("+d+" == errors) {"),n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n=" ",f=e.level,a=e.dataLevel,i=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),d="valid"+f,l=e.opts.$data&&i&&i.$data;l&&(n+=" var schema"+f+" = "+e.util.getData(i.$data,a,e.dataPathArr)+"; ");var h="schema"+f;if(!l)if(i.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],b=i;if(b)for(var m,y=-1,g=b.length-1;y<g;){m=b[y+=1];var v=e.schema.properties[m];v&&(e.opts.strictKeywords?"object"==typeof v&&Object.keys(v).length>0:e.util.schemaHasRules(v,e.RULES.all))||(p[p.length]=m)}}else p=i;if(l||p.length){var w=e.errorPath,_=l||p.length>=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+f+"; ",_){l||(n+=" var "+h+" = validate.schema"+o+"; ");var A="' + "+(k="schema"+f+"["+(S="i"+f)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(w,k,e.opts.jsonPointers)),n+=" var "+d+" = true; ",l&&(n+=" if (schema"+f+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+f+")) "+d+" = false; else {"),n+=" for (var "+S+" = 0; "+S+" < "+h+".length; "+S+"++) { "+d+" = "+u+"["+h+"["+S+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+u+", "+h+"["+S+"]) "),n+="; if (!"+d+") break; } ",l&&(n+=" } "),n+=" if (!"+d+") { ",(O=O||[]).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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";var T=n;n=O.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var x=p;if(x)for(var S=-1,C=x.length-1;S<C;){R=x[S+=1],S&&(n+=" || "),n+=" ( ( "+(B=u+(N=e.util.getProperty(R)))+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),n+=") && (missing"+f+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:N)+") ) "}n+=") { ";var O;A="' + "+(k="missing"+f)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(w,k,!0):w+" + "+k),(O=O||[]).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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ";T=n;n=O.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else if(_){l||(n+=" var "+h+" = validate.schema"+o+"; ");var k;A="' + "+(k="schema"+f+"["+(S="i"+f)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(w,k,e.opts.jsonPointers)),l&&(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"+o+" , 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 "+S+" = 0; "+S+" < "+h+".length; "+S+"++) { if ("+u+"["+h+"["+S+"]] === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+h+"["+S+"]) "),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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",l&&(n+=" } ")}else{var P=p;if(P)for(var R,M=-1,D=P.length-1;M<D;){R=P[M+=1];var N=e.util.getProperty(R),B=(A=e.util.escapeQuotes(R),u+N);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(w,R,e.opts.jsonPointers)),n+=" if ( "+B+" === undefined ",E&&(n+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),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"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=w}else c&&(n+=" if (true) {");return n}},function(e,t,r){"use strict";e.exports=function(e,t,r){var n,f=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(i||""),l="valid"+a,h=e.opts.$data&&o&&o.$data;if(h?(f+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",n="schema"+a):n=o,(o||h)&&!1!==e.opts.uniqueItems){h&&(f+=" var "+l+"; if ("+n+" === false || "+n+" === undefined) "+l+" = true; else if (typeof "+n+" != 'boolean') "+l+" = false; else { "),f+=" var i = "+d+".length , "+l+" = 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))f+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+l+" = false; break outer; } } } ";else{f+=" var itemIndices = {}, item; for (;i--;) { var item = "+d+"[i]; ";var m="checkDataType"+(b?"s":"");f+=" if ("+e.util[m](p,"item",e.opts.strictNumbers,!0)+") continue; ",b&&(f+=" if (typeof item == 'string') item = '\"' + item; "),f+=" if (typeof itemIndices[item] == 'number') { "+l+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}f+=" } ",h&&(f+=" } "),f+=" if (!"+l+") { ";var y=y||[];y.push(f),f="",!1!==e.createErrors?(f+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(f+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(f+=" , schema: ",f+=h?"validate.schema"+s:""+o,f+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),f+=" } "):f+=" {} ";var g=f;f=y.pop(),!e.compositeRule&&u?e.async?f+=" throw new ValidationError(["+g+"]); ":f+=" validate.errors = ["+g+"]; return false; ":f+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } ",u&&(f+=" else { ")}else u&&(f+=" if (true) { ");return f}},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 f,a=t[r].split("/"),i=e;for(f=1;f<a.length;f++)i=i[a[f]];for(f=0;f<n.length;f++){var o=n[f],s=i[o];s&&(i[o]={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(154).MissingRef;e.exports=function e(t,r,f){var a=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof r&&(f=r,r=void 0);var i=o(t).then((function(){var e=a._addSchema(t,void 0,r);return e.validate||s(e)}));f&&i.then((function(e){f(null,e)}),f);return i;function o(t){var r=t.$schema;return r&&!a.getSchema(r)?e.call(a,{$ref:r},!0):Promise.resolve()}function s(e){try{return a._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 f=a._loadingSchemas[n];f||(f=a._loadingSchemas[n]=a._opts.loadSchema(n)).then(i,i);return f.then((function(e){if(!c(n))return o(e).then((function(){c(n)||a.addSchema(e,n,void 0,r)}))})).then((function(){return s(e)}));function i(){delete a._loadingSchemas[n]}function c(e){return a._refs[e]||a._schemas[e]}}(t);throw t}}}},function(e,t,r){"use strict";var n=/^[a-z_$][a-z0-9_$-]*$/i,f=r(693),a=r(694);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 a=t.type;if(Array.isArray(a))for(var i=0;i<a.length;i++)s(e,a[i],t);else s(e,a,t);var o=t.metaSchema;o&&(t.$data&&this._opts.$data&&(o={anyOf:[o,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(o,!0))}function s(e,t,n){for(var a,i=0;i<r.length;i++){var o=r[i];if(o.type==t){a=o;break}}a||(a={type:t,rules:[]},r.push(a));var s={keyword:e,definition:n,custom:!0,code:f,implements:n.implements};a.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,f=0;f<n.length;f++)if(n[f].keyword==e){n.splice(f,1);break}return this},validate:function e(t,r){e.errors=null;var n=this._validateKeyword=this._validateKeyword||this.compile(a,!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,f,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,l="data"+(o||""),h="valid"+i,p="errs__"+i,b=e.opts.$data&&s&&s.$data;b?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",f="schema"+i):f=s;var m,y,g,v,w,_=this,E="definition"+i,A=_.definition,T="";if(b&&A.$data){w="keywordValidate"+i;var x=A.validateSchema;a+=" var "+E+" = RULES.custom['"+t+"'].definition; var "+w+" = "+E+".validate;"}else{if(!(v=e.useCustomRule(_,s,e.schema,e)))return;f="validate.schema"+c,w=v.code,m=A.compile,y=A.inline,g=A.macro}var S=w+".errors",C="i"+i,O="ruleErr"+i,k=A.async;if(k&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(a+=S+" = null;"),a+="var "+p+" = errors;var "+h+";",b&&A.$data&&(T+="}",a+=" if ("+f+" === undefined) { "+h+" = true; } else { ",x&&(T+="}",a+=" "+h+" = "+E+".validateSchema("+f+"); if ("+h+") { ")),y)A.statements?a+=" "+v.validate+" ":a+=" "+h+" = "+v.validate+"; ";else if(g){var P=e.util.copy(e);T="";P.level++;var R="valid"+P.level;P.schema=v.validate,P.schemaPath="";var M=e.compositeRule;e.compositeRule=P.compositeRule=!0;var D=e.validate(P).replace(/validate\.schema/g,w);e.compositeRule=P.compositeRule=M,a+=" "+D}else{(F=F||[]).push(a),a="",a+=" "+w+".call( ",e.opts.passContext?a+="this":a+="self",m||!1===A.schema?a+=" , "+l+" ":a+=" , "+f+" , "+l+" , validate.schema"+e.schemaPath+" ",a+=" , (dataPath || '')",'""'!=e.errorPath&&(a+=" + "+e.errorPath);var N=o?"data"+(o-1||""):"parentData",B=o?e.dataPathArr[o]:"parentDataProperty",I=a+=" , "+N+" , "+B+" , rootData ) ";a=F.pop(),!1===A.errors?(a+=" "+h+" = ",k&&(a+="await "),a+=I+"; "):a+=k?" var "+(S="customErrors"+i)+" = null; try { "+h+" = await "+I+"; } catch (e) { "+h+" = false; if (e instanceof ValidationError) "+S+" = e.errors; else throw e; } ":" "+S+" = null; "+h+" = "+I+"; "}if(A.modifying&&(a+=" if ("+N+") "+l+" = "+N+"["+B+"];"),a+=""+T,A.valid)d&&(a+=" if (true) { ");else{var F;a+=" if ( ",void 0===A.valid?(a+=" !",a+=g?""+R:""+h):a+=" "+!A.valid+" ",a+=") { ",n=_.keyword,(F=F||[]).push(a),a="",(F=F||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+_.keyword+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should pass \""+_.keyword+"\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ";var j=a;a=F.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+j+"]); ":a+=" validate.errors = ["+j+"]; return false; ":a+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var L=a;a=F.pop(),y?A.errors?"full"!=A.errors&&(a+=" for (var "+C+"="+p+"; "+C+"<errors; "+C+"++) { var "+O+" = vErrors["+C+"]; if ("+O+".dataPath === undefined) "+O+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+O+".schemaPath === undefined) { "+O+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(a+=" "+O+".schema = "+f+"; "+O+".data = "+l+"; "),a+=" } "):!1===A.errors?a+=" "+L+" ":(a+=" if ("+p+" == errors) { "+L+" } else { for (var "+C+"="+p+"; "+C+"<errors; "+C+"++) { var "+O+" = vErrors["+C+"]; if ("+O+".dataPath === undefined) "+O+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+O+".schemaPath === undefined) { "+O+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(a+=" "+O+".schema = "+f+"; "+O+".data = "+l+"; "),a+=" } } "):g?(a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+_.keyword+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should pass \""+_.keyword+"\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&d&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; ")):!1===A.errors?a+=" "+L+" ":(a+=" if (Array.isArray("+S+")) { if (vErrors === null) vErrors = "+S+"; else vErrors = vErrors.concat("+S+"); errors = vErrors.length; for (var "+C+"="+p+"; "+C+"<errors; "+C+"++) { var "+O+" = vErrors["+C+"]; if ("+O+".dataPath === undefined) "+O+".dataPath = (dataPath || '') + "+e.errorPath+"; "+O+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(a+=" "+O+".schema = "+f+"; "+O+".data = "+l+"; "),a+=" } } else { "+L+" } "),a+=" } ",d&&(a+=" else { ")}return a}},function(e,t,r){"use strict";var n=r(278);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(699),"0.0.2":r(700),"0.0.3":r(701)}};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":2},"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},"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},"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(270).__exportStar)(r(703),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getInvoiceTaxTotal=t.getInvoiceLineTotalWithoutTax=t.getInvoiceTotalWithoutTax=t.getInvoiceLineTotal=t.getInvoiceTotal=void 0;const n=r(4);t.getInvoiceTotal=e=>e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotal)(r))),n.BigNumber.from(0));t.getInvoiceLineTotal=e=>{const t=e.taxPercent?{type:"percentage",amount:String(e.taxPercent)}:e.tax||{type:"percentage",amount:"0"},r=t.amount&&"percentage"===t.type?Number(t.amount)+100:100,f=t.amount&&"fixed"===t.type?n.BigNumber.from(t.amount):n.BigNumber.from(0),a=e.discount?n.BigNumber.from(e.discount):n.BigNumber.from(0);return n.BigNumber.from(n.FixedNumber.from(e.unitPrice).mulUnsafe(n.FixedNumber.fromString(e.quantity.toString())).subUnsafe(n.FixedNumber.from(a)).mulUnsafe(n.FixedNumber.fromString(r.toString())).divUnsafe(n.FixedNumber.from(100)).addUnsafe(n.FixedNumber.from(f)).round(0).toString().split(".")[0])};t.getInvoiceTotalWithoutTax=e=>e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotalWithoutTax)(r))),n.BigNumber.from(0));t.getInvoiceLineTotalWithoutTax=e=>{const t=e.discount?n.BigNumber.from(e.discount):n.BigNumber.from(0);return n.BigNumber.from(n.FixedNumber.from(e.unitPrice).mulUnsafe(n.FixedNumber.fromString(e.quantity.toString())).subUnsafe(n.FixedNumber.from(t)).round(0).toString().split(".")[0])};t.getInvoiceTaxTotal=e=>{const r=e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotalWithoutTax)(r))),n.BigNumber.from(0));return e.invoiceItems.reduce(((e,r)=>e.add((0,t.getInvoiceLineTotal)(r))),n.BigNumber.from(0)).sub(r)}},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.1742+37ba3970","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":">=16.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 tsconfig.build.json","build:umd":"webpack","clean":"shx rm -rf dist tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo","docs":"shx rm -rf ./docs && compodoc -p tsconfig.json --output docs --disablePrivate --gaID UA-105153327-8","lint":"eslint . --fix","lint:check":"eslint .","prepare":"yarn run build","test":"jest","test:watch":"yarn test --watch"},"dependencies":{"@requestnetwork/advanced-logic":"0.34.1-next.1742+37ba3970","@requestnetwork/currency":"0.8.1-next.1742+37ba3970","@requestnetwork/data-access":"0.26.1-next.1742+37ba3970","@requestnetwork/data-format":"0.9.1-next.1742+37ba3970","@requestnetwork/epk-signature":"0.5.35-next.1742+37ba3970","@requestnetwork/multi-format":"0.15.10-next.1742+37ba3970","@requestnetwork/payment-detection":"0.35.1-next.1742+37ba3970","@requestnetwork/request-logic":"0.26.10-next.1742+37ba3970","@requestnetwork/smart-contracts":"0.28.1-next.1742+37ba3970","@requestnetwork/transaction-manager":"0.26.10-next.1742+37ba3970","@requestnetwork/types":"0.35.1-next.1742+37ba3970","@requestnetwork/utils":"0.35.1-next.1742+37ba3970","axios":"0.27.2","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":"37ba397037992d6031949b824d5e9e1be202798c"}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),f=r(280),a=r(43),i=r(3),o=r(9),s=r(67),c=r(4),u=r(27),d=r(279);class l extends d.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(a.requestHashSubmitterArtifact.getAddress(this.networkName),a.requestHashSubmitterArtifact.getContractAbi(),this.provider.getSigner())}const n=f.Block.pushTransaction(f.Block.createEmptyBlock(),e,t,r),{data:{ipfsHash:o,ipfsSize:d}}=yield s.default.post("/ipfsAdd",{data:n},this.axiosConfig),l=yield this.submitterContract.getFeesAmount(d),h=yield this.submitterContract.submitHash(o,c.ethers.utils.hexZeroPad(c.ethers.utils.hexlify(d),32),{value:l}),p=yield this.provider.getBlock(h.blockNumber),b={blockConfirmation:h.confirmations,blockNumber:h.blockNumber,blockTimestamp:p.timestamp,fee:l,networkName:this.networkName,smartContractAddress:h.to,transactionHash:h.hash};this.cache[t]||(this.cache[t]={}),this.cache[t][o]={block:n,storageMeta:b};const m=new u.EventEmitter,y={meta:{storageMeta:{ethereum:b,ipfs:{size:d},state:i.StorageTypes.ContentState.PENDING,timestamp:b.blockTimestamp},topics:r||[],transactionStorageLocation:o},result:{}};return h.wait().then((e=>{const t={blockConfirmation:e.confirmations,blockNumber:e.blockNumber,blockTimestamp:p.timestamp,fee:l,networkName:this.networkName,smartContractAddress:e.to,transactionHash:e.hash};m.emit("confirmed",{meta:{storageMeta:t,topics:r||[],transactionStorageLocation:o},result:{}})})),Object.assign(m,y)}))}getTransactionsByChannelId(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){const{data:r}=yield o.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})(),f=this.getCachedTransactionsAndCleanCache(e,r.meta.transactionsStorageLocation,t);return{meta:{storageMeta:r.meta.storageMeta.concat(f.meta.storageMeta),transactionsStorageLocation:r.meta.transactionsStorageLocation.concat(f.meta.transactionsStorageLocation)},result:{transactions:r.result.transactions.concat(f.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)=>{var f;const a=this.cache[e][n];return this.cache[e][n]&&(!r||(void 0===r.from||r.from<=(null==a?void 0:a.storageMeta.blockTimestamp))&&(void 0===r.to||r.to>=(null==a?void 0:a.storageMeta.blockTimestamp)))&&(null===(f=t.meta.storageMeta)||void 0===f||f.push(null==a?void 0:a.storageMeta),t.meta.transactionsStorageLocation.push(n),t.result.transactions.push({state:i.DataAccessTypes.TransactionState.PENDING,timestamp:null==a?void 0:a.storageMeta.blockTimestamp,transaction:null==a?void 0:a.block.transactions[0]})),t}),{meta:{storageMeta:[],transactionsStorageLocation:[]},result:{transactions:[]}})}}t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(58),f=r(40),a=r(3),i=r(9),o=r(281),s=r(27),c=r(282),u=r(708),d=r(711),l=r(283),h={meta:{storageMeta:{},transactionsStorageLocation:{}},result:{transactions:{}}};t.default=class{constructor(e,t){this.isInitialized=!1;const r={ignoredLocationIndex:new u.default,logger:new i.default.SimpleLogger,synchronizationIntervalTime:1e4,transactionIndex:new l.default,autoStartSynchronization:!1},{ignoredLocationIndex:n,logger:f,synchronizationIntervalTime:a,transactionIndex:o,autoStartSynchronization:s}=Object.assign(Object.assign({},r),t);this.storage=e,this.lastSyncStorageTimestamp=0,this.autoStartSynchronization=s,this.synchronizationTimer=new d.default((()=>this.synchronizeNewDataIds()),a,f,5),this.transactionIndex=o,this.ignoredLocationIndex=n,this.logger=f}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=i.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,this.autoStartSynchronization&&this.startAutoSynchronization()}))}close(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){yield this.stopAutoSynchronization()}))}persistTransaction(e,t,r=[]){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const a=r.filter((e=>!f.default.hashFormat.isDeserializableString(e)));if(0!==a.length)throw new Error(`The following topics are not well formatted: ${JSON.stringify(a)}`);const i=c.default.pushTransaction(c.default.createEmptyBlock(),e,t,r),o=yield this.storage.append(JSON.stringify(i)),u=Object.assign(new s.EventEmitter,{meta:{storageMeta:o.meta,topics:r,transactionStorageLocation:o.id},result:{}});return o.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(o.id,i.header,o.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(),!f.default.hashFormat.isDeserializableString(e))throw new Error(`The topic is not well formatted: ${e}`);const r=yield this.transactionIndex.getChannelIdsForTopic(e,t);return o.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}),i.default.deepCopy(h))}))}getChannelsByMultipleTopics(e,t){return(0,n.__awaiter)(this,void 0,void 0,(function*(){if(this.checkInitialized(),e.some((e=>!f.default.hashFormat.isDeserializableString(e))))throw new Error("The topics are not well formatted");const r=yield this.transactionIndex.getChannelIdsForMultipleTopics(e,t);return o.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}),i.default.deepCopy(h))}))}synchronizeNewDataIds(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.checkInitialized();const e=i.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(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){this.synchronizationTimer.isStarted&&(yield 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(),f=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:f}}))}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 o.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 f=e.content;try{n=c.default.parseBlock(f),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 f=i.default.unique(e).uniqueItems.map((e=>({state:n.state===a.StorageTypes.ContentState.CONFIRMED?a.DataAccessTypes.TransactionState.CONFIRMED:a.DataAccessTypes.TransactionState.PENDING,timestamp:n.timestamp,transaction:t.transactions[e]}))),o=Array(f.length).fill(r),s=f.map((()=>n));return{transactions:f,transactionsStorageLocation:o,storageMeta:s}}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(58),f=r(110);t.default=class{constructor(e){this.reasonsByIgnoredLocation=new f({namespace:"reasonsByIgnoredLocation",store:e}),this.listIgnoredLocation=new f({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="",f=Array.isArray(r);n=f?"[":"{";var a=!0;for(var i in r){var o="function"==typeof r[i]||!f&&void 0===r[i];Object.hasOwnProperty.call(r,i)&&!o&&(a||(n+=","),a=!1,f?null==r[i]?n+="null":n+=t(r[i]):void 0!==r[i]&&(n+=t(i)+":"+t(r[i])))}return n+=f?"]":"}"}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(6).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=710},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(58);t.default=class{constructor(e,t,r,n=1){this.intervalFunctionSuccessiveFailureCount=0,this.timeoutObject=null,this.lastRecursion=Promise.resolve(),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}`)}t()})),t=()=>{this.timeoutObject=setTimeout((()=>{this.lastRecursion=e()}),this.intervalTime)};t()}stop(){return(0,n.__awaiter)(this,void 0,void 0,(function*(){return this.timeoutObject?(clearTimeout(this.timeoutObject),this.timeoutObject=null,this.lastRecursion):Promise.reject("Can't stop IntervalTimer if it has not been started")}))}get isStarted(){return Boolean(this.timeoutObject)}getConfig(){return{intervalTime:this.intervalTime,successiveFailureThreshold:this.successiveFailureThreshold}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(58),f=r(281),a=r(110),i=r(284),o=r(285);t.default=class{constructor(e){this.timestampByLocation=new o.default(e),this.locationByTopic=new i.default(e),this.indexedLocation=new a({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 f.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 f of r){if(yield this.timestampByLocation.isDataInBoundaries(f,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 f of r){if(yield this.timestampByLocation.isDataInBoundaries(f,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(280);class f extends n.DataAccess{constructor(e){super(e),this.isInitialized=!0}}t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),f=r(40),a=r(3),i=r(9),o=r(27);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=f.default.serialize(i.default.crypto.normalizeKeccak256Hash(e)),r=i.default.getCurrentTimestampInSecond();return this.data.set(t,{content:e,state:a.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=f.default.serialize(i.default.crypto.normalizeKeccak256Hash(e)),r=i.default.getCurrentTimestampInSecond(),n={content:e,state:a.StorageTypes.ContentState.PENDING,timestamp:r};this.data.set(t,n);const s={content:e,id:t,meta:{state:a.StorageTypes.ContentState.PENDING,storageType:a.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:r}},c=Object.assign(new o.EventEmitter,s);return setTimeout((()=>{this.forceEmitError?(this.forceEmitError=!1,c.emit("error","forced error asked by _makeNextAppendFailInsteadOfConfirmed()")):(n.state=a.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:a.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:a.StorageTypes.StorageSystemType.IN_MEMORY_MOCK,timestamp:n}}))),lastTimestamp:i.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(69).__exportStar)(r(159),t);var n=r(3);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.d(t,"a",(function(){return a}));var n=r(0),f=r(60);function a(e,t,r,a,i){let o;e=Object(n.arrayify)(e),t=Object(n.arrayify)(t);let s=1;const c=new Uint8Array(a),u=new Uint8Array(t.length+4);let d,l;u.set(t);for(let h=1;h<=s;h++){u[t.length]=h>>24&255,u[t.length+1]=h>>16&255,u[t.length+2]=h>>8&255,u[t.length+3]=255&h;let p=Object(n.arrayify)(Object(f.a)(i,e,u));o||(o=p.length,l=new Uint8Array(o),s=Math.ceil(a/o),d=a-(s-1)*o),l.set(p);for(let t=1;t<r;t++){p=Object(n.arrayify)(Object(f.a)(i,e,p));for(let e=0;e<o;e++)l[e]^=p[e]}const b=(h-1)*o,m=h===s?d:o;c.set(Object(n.arrayify)(l).slice(0,m),b)}return Object(n.hexlify)(c)}},,,function(e,t,r){"use strict";r.d(t,"b",(function(){return p})),r.d(t,"c",(function(){return b})),r.d(t,"a",(function(){return y}));var n=r(0),f=r(2),a=r(112),i=r(13);const o=new f.Logger(a.a),s={},c=i.a.from(0),u=i.a.from(-1);function d(e,t,r,n){const a={fault:t,operation:r};return void 0!==n&&(a.value=n),o.throwError(e,f.Logger.errors.NUMERIC_FAULT,a)}let l="0";for(;l.length<256;)l+=l;function h(e){if("number"!=typeof e)try{e=i.a.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+l.substring(0,e):o.throwArgumentError("invalid decimal size","decimals",e)}function p(e,t){null==t&&(t=0);const r=h(t),n=(e=i.a.from(e)).lt(c);n&&(e=e.mul(u));let f=e.mod(r).toString();for(;f.length<r.length-1;)f="0"+f;f=f.match(/^([0-9]*[1-9]|0)(0*)/)[1];const a=e.div(r).toString();return e=1===r.length?a:a+"."+f,n&&(e="-"+e),e}function b(e,t){null==t&&(t=0);const r=h(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||o.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&o.throwArgumentError("missing value","value",e);const f=e.split(".");f.length>2&&o.throwArgumentError("too many decimal points","value",e);let a=f[0],s=f[1];for(a||(a="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&d("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const c=i.a.from(a),l=i.a.from(s);let p=c.mul(r).add(l);return n&&(p=p.mul(u)),p}class m{constructor(e,t,r,n){e!==s&&o.throwError("cannot use FixedFormat constructor; use FixedFormat.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=h(n),Object.freeze(this)}static from(e){if(e instanceof m)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const f=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);f||o.throwArgumentError("invalid fixed format","format",e),t="u"!==f[1],r=parseInt(f[2]),n=parseInt(f[3])}else if(e){const f=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&o.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=f("signed","boolean",t),r=f("width","number",r),n=f("decimals","number",n)}return r%8&&o.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&o.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new m(s,t,r,n)}}class y{constructor(e,t,r,n){o.checkNew(new.target,y),e!==s&&o.throwError("cannot use FixedNumber constructor; use FixedNumber.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&o.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=b(this._value,this.format.decimals),r=b(e._value,e.format.decimals);return y.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=y.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(g.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=y.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(g.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&o.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=y.from("1"+l.substring(0,e),this.format),n=v.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){if(null==e)return this._hex;e%8&&o.throwArgumentError("invalid byte width","width",e);const t=i.a.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString();return Object(n.hexZeroPad)(t,e/8)}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return y.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||Object(i.d)(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),y.fromString(p(e,t),m.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=m.from(t),f=b(e,r.decimals);!r.signed&&f.lt(c)&&d("unsigned value cannot be negative","overflow","value",e);let a=null;r.signed?a=f.toTwos(r.width).toHexString():(a=f.toHexString(),a=Object(n.hexZeroPad)(a,r.width/8));const i=p(f,r.decimals);return new y(s,a,i,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=m.from(t);if(Object(n.arrayify)(e).length>r.width/8)throw new Error("overflow");let f=i.a.from(e);r.signed&&(f=f.fromTwos(r.width));const a=f.toTwos((r.signed?0:1)+r.width).toHexString(),o=p(f,r.decimals);return new y(s,a,o,r)}static from(e,t){if("string"==typeof e)return y.fromString(e,t);if(Object(n.isBytes)(e))return y.fromBytes(e,t);try{return y.fromValue(e,0,t)}catch(e){if(e.code!==f.Logger.errors.INVALID_ARGUMENT)throw e}return o.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const g=y.from(1),v=y.from("0.5")},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(117);let f=null;function a(e){if(null==f&&(f="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==n.a.check(e)))throw f=null,new Error("BIP39 Wordlist for en (English) FAILED")}class i extends n.a{constructor(){super("en")}getWord(e){return a(this),f[e]}getWordIndex(e){return a(this),f.indexOf(e)}}const o=new i;n.a.register(o);const s={en:o}}])}));
289
289
  //# sourceMappingURL=requestnetwork.min.js.map