UNPKG

ufomarketplace-sdk-new

Version:

SDK to interact with set ufo marketplace contracts

1,667 lines (1,665 loc) 77.8 kB
/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import type { Provider, TransactionRequest } from "@ethersproject/providers"; import type { SuperGalaticFactory, SuperGalaticFactoryInterface, } from "../SuperGalaticFactory"; const _abi = [ { type: "constructor", inputs: [], stateMutability: "nonpayable", }, { type: "function", name: "DEFAULT_ADMIN_ROLE", inputs: [], outputs: [ { name: "", type: "bytes32", internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", name: "PRICE_UPDATE_ROLE", inputs: [], outputs: [ { name: "", type: "bytes32", internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", name: "addUpdatePriceRole", inputs: [ { name: "addr", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "alreadyPurchasedLootBoxCount", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "alreadyUsedSignature", inputs: [ { name: "", type: "bytes", internalType: "bytes", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "backendSigner", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "beamAmountPerNft", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "blockNumberWaitingForRandom", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "burnWallet", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "concatSignature", inputs: [ { name: "v", type: "uint8", internalType: "uint8", }, { name: "r", type: "bytes32", internalType: "bytes32", }, { name: "s", type: "bytes32", internalType: "bytes32", }, ], outputs: [ { name: "", type: "bytes", internalType: "bytes", }, ], stateMutability: "pure", }, { type: "function", name: "factoryHelper", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "getRoleAdmin", inputs: [ { name: "role", type: "bytes32", internalType: "bytes32", }, ], outputs: [ { name: "", type: "bytes32", internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", name: "getWeaponUsdtPrice", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "grantRole", inputs: [ { name: "role", type: "bytes32", internalType: "bytes32", }, { name: "account", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "hasRole", inputs: [ { name: "role", type: "bytes32", internalType: "bytes32", }, { name: "account", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "initialize", inputs: [ { name: "_admin", type: "address", internalType: "address", }, { name: "_beacon", type: "address", internalType: "address", }, { name: "_plasmaAddr", type: "address", internalType: "address", }, { name: "_plasmaAmountPerNFT", type: "uint256", internalType: "uint256", }, { name: "_weaponPrice", type: "uint256", internalType: "uint256", }, { name: "_uap", type: "address", internalType: "address", }, { name: "_factoryHelper", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "isSuperGalaticNFTContract", inputs: [ { name: "_nftAddress", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isSuperGalatics", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "marketplaceContract", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "merkleRoot", inputs: [], outputs: [ { name: "", type: "bytes32", internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", name: "mintBatchSuperGalatic", inputs: [ { name: "categoryIds", type: "uint256[]", internalType: "uint256[]", }, { name: "amounts", type: "uint256[]", internalType: "uint256[]", }, { name: "_merkleProof", type: "bytes32[]", internalType: "bytes32[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "mintWithBeam", inputs: [ { name: "categoryIds", type: "uint256[]", internalType: "uint256[]", }, { name: "amounts", type: "uint256[]", internalType: "uint256[]", }, { name: "_merkleProof", type: "bytes32[]", internalType: "bytes32[]", }, ], outputs: [], stateMutability: "payable", }, { type: "function", name: "mintWithUSDT", inputs: [ { name: "categoryIds", type: "uint256[]", internalType: "uint256[]", }, { name: "amounts", type: "uint256[]", internalType: "uint256[]", }, { name: "_merkleProof", type: "bytes32[]", internalType: "bytes32[]", }, ], outputs: [], stateMutability: "payable", }, { type: "function", name: "nftContracts", inputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "openLootBoxBySignature", inputs: [ { name: "v", type: "uint8", internalType: "uint8", }, { name: "r", type: "bytes32", internalType: "bytes32", }, { name: "s", type: "bytes32", internalType: "bytes32", }, { name: "_info", type: "tuple", internalType: "struct EIP712SuperGalaticFactory.WeaponInfo", components: [ { name: "rarity", type: "uint256", internalType: "uint256", }, { name: "weaponType", type: "uint256", internalType: "uint256", }, { name: "owner", type: "address", internalType: "address", }, { name: "salt", type: "uint256", internalType: "uint256", }, { name: "tokenId", type: "uint256", internalType: "uint256", }, ], }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "openRound", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "phase", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "plasmaAddr", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "plasmaAmountPerNFT", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "purchaseLootbox", inputs: [ { name: "quantity", type: "uint256", internalType: "uint256", }, { name: "_tokenType", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "purchaseLootboxAndSendGift", inputs: [ { name: "quantity", type: "uint256", internalType: "uint256", }, { name: "_giftReceiver", type: "address", internalType: "address", }, { name: "_tokenType", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "registerForMint", inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "removeUpdatePriceSole", inputs: [ { name: "addr", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "renounceRole", inputs: [ { name: "role", type: "bytes32", internalType: "bytes32", }, { name: "account", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "reserveWallet", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "revenueWallet", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "revokeRole", inputs: [ { name: "role", type: "bytes32", internalType: "bytes32", }, { name: "account", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "round1End", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "round1Start", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "round2End", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "round2Start", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "round3End", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "round3Start", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "setBackendSigner", inputs: [ { name: "_bkSigner", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setMarketplaceAddress", inputs: [ { name: "_marketplace", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setMerkeRoot", inputs: [ { name: "merkleRootHash", type: "bytes32", internalType: "bytes32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setPhase", inputs: [ { name: "phaseValue", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setRoundInfo", inputs: [ { name: "startTime", type: "uint256", internalType: "uint256", }, { name: "endTime", type: "uint256", internalType: "uint256", }, { name: "round", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setRouterAddress", inputs: [ { name: "router", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setTokenAddresses", inputs: [ { name: "_weth", type: "address", internalType: "address", }, { name: "_ufo", type: "address", internalType: "address", }, { name: "_usdt", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "slippage", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "supportsInterface", inputs: [ { name: "interfaceId", type: "bytes4", internalType: "bytes4", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "totalUSerOwnedCount", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "uapAddr", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "ufoAddress", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "updateBeamPriceOfNft", inputs: [ { name: "price", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateFactoryHelperAddr", inputs: [ { name: "_factoryHelperAddr", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateGenesisNftPrice", inputs: [ { name: "_priceInUSDT", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateNFTBodypart", inputs: [ { name: "nftContract", type: "address", internalType: "address", }, { name: "nftId", type: "uint256", internalType: "uint256", }, { name: "bodyType", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updatePlasmaAddr", inputs: [ { name: "_plasma", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updatePlasmaAmountPerNFT", inputs: [ { name: "_plasmaAmount", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updatePriceOfWeaponNFT", inputs: [ { name: "_price", type: "uint256", internalType: "uint256", }, { name: "_tokenType", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateWeapon", inputs: [ { name: "_weaponId", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateWeaponAddr", inputs: [ { name: "_weapon", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "usdtAddress", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "usdtAmountPerNFT", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "weaponNFT", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "weaponPrice", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "weaponUfoPrice", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "weaponUsdtPrice", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "wethAddr", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "withdraw", inputs: [ { name: "receiver", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "withdrawPlasma", inputs: [ { name: "recipient", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "event", name: "CreateSuperGalatic", inputs: [ { name: "nftIndex", type: "uint256", indexed: true, internalType: "uint256", }, { name: "nftContract", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "GrantPriceUpdateRole", inputs: [ { name: "addr", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "Initialized", inputs: [ { name: "version", type: "uint8", indexed: false, internalType: "uint8", }, ], anonymous: false, }, { type: "event", name: "RemovePriceUpdateRole", inputs: [ { name: "addr", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "RoleAdminChanged", inputs: [ { name: "role", type: "bytes32", indexed: true, internalType: "bytes32", }, { name: "previousAdminRole", type: "bytes32", indexed: true, internalType: "bytes32", }, { name: "newAdminRole", type: "bytes32", indexed: true, internalType: "bytes32", }, ], anonymous: false, }, { type: "event", name: "RoleGranted", inputs: [ { name: "role", type: "bytes32", indexed: true, internalType: "bytes32", }, { name: "account", type: "address", indexed: true, internalType: "address", }, { name: "sender", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "RoleRevoked", inputs: [ { name: "role", type: "bytes32", indexed: true, internalType: "bytes32", }, { name: "account", type: "address", indexed: true, internalType: "address", }, { name: "sender", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "SetBackendSigner", inputs: [ { name: "signer", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateFactoryHelper", inputs: [ { name: "newHelperAddr", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateGenesisNftPrice", inputs: [ { name: "usdtPrice", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "UpdateMarketplaceAddr", inputs: [ { name: "newMarketplace", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateMerkleRoot", inputs: [ { name: "root", type: "bytes32", indexed: false, internalType: "bytes32", }, ], anonymous: false, }, { type: "event", name: "UpdateNftBeamPrice", inputs: [ { name: "price", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "UpdateNftPriceInPlasma", inputs: [ { name: "plasmaPrice", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "UpdatePhase", inputs: [ { name: "phase", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "UpdatePlasmaAddr", inputs: [ { name: "newPlasma", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateRoundInfo", inputs: [ { name: "start", type: "uint256", indexed: false, internalType: "uint256", }, { name: "end", type: "uint256", indexed: false, internalType: "uint256", }, { name: "round", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "UpdateUfoAddr", inputs: [ { name: "ufo", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateUsdtAddr", inputs: [ { name: "usdt", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateWeaponAddr", inputs: [ { name: "newWeapon", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "UpdateWeaponPrice", inputs: [ { name: "price", type: "uint256", indexed: false, internalType: "uint256", }, { name: "tokenType", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "UpdateWrappedNativeAddr", inputs: [ { name: "wNative", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "Withdraw", inputs: [ { name: "receiver", type: "address", indexed: false, internalType: "address", }, { name: "amount", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "WithdrawPlasma", inputs: [ { name: "recipient", type: "address", indexed: false, internalType: "address", }, { name: "amount", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "error", name: "AddressNotNull", inputs: [], }, { type: "error", name: "CannotMintMore", inputs: [], }, { type: "error", name: "CannotMintRandomNft", inputs: [], }, { type: "error", name: "InvalidSignature", inputs: [], }, { type: "error", name: "NotEnoughBEAM", inputs: [], }, { type: "error", name: "OnlyAvailableInBetaOpen", inputs: [], }, { type: "error", name: "SetInfoEndTimeError", inputs: [ { name: "time", type: "uint256", internalType: "uint256", }, ], }, { type: "error", name: "SetInfoError", inputs: [ { name: "start", type: "uint256", internalType: "uint256", }, { name: "end", type: "uint256", internalType: "uint256", }, ], }, { type: "error", name: "SetInfoStartTimeError", inputs: [ { name: "time", type: "uint256", internalType: "uint256", }, ], }, { type: "error", name: "WrongParameters", inputs: [], }, { type: "error", name: "WrongRound", inputs: [], }, ] as const; const _bytecode = "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6156b980620000f36000396000f3fe6080604052600436106200047f5760003560e01c80637a5e1c181162000257578063b8b6f0751162000147578063d1bb5cf111620000c5578063df2eee191162000084578063df2eee191462000e16578063e562dfd91462000e2e578063ed6943141462000e46578063fc7b15d21462000e5e578063fd53f53b1462000e8357600080fd5b8063d1bb5cf11462000d7e578063d547741f1462000da0578063d72b11bd1462000dc5578063dbd2cb691462000de7578063ddb42a721462000dff57600080fd5b8063c6cc51d31162000112578063c6cc51d31462000cd0578063c6d9cfcc1462000cf5578063c8a131891462000d29578063d0ffc9b81462000d41578063d1b5c6431462000d5957600080fd5b8063b8b6f0751462000c56578063bc39a82f1462000c7b578063bc79daeb1462000ca0578063c08b3aa01462000cb857600080fd5b806391d1485411620001d5578063a9d600cd11620001a0578063a9d600cd1462000bc4578063b04668631462000bdc578063b1c9fe6e1462000bf4578063b47cc5561462000c0c578063b62d08d41462000c3157600080fd5b806391d148541462000b415780639ab4a4451462000b66578063a217fddf1462000b88578063a424c7831462000b9f57600080fd5b8063847d34fb1162000222578063847d34fb1462000a6b5780638825213f1462000a835780638d1516e91462000ac25780638d94e5e91462000af65780638d9c39711462000b1b57600080fd5b80637a5e1c1814620009e85780637d5aa5f41462000a0d5780637f9bb0721462000a2f578063816629c71462000a5457600080fd5b806336f9567011620003735780634d3f9d3e11620002f1578063628b37c711620002bc578063628b37c7146200094f578063628c75d01462000974578063657128c2146200098c57806365d65e8614620009a45780636bb7527214620009c657600080fd5b80634d3f9d3e14620008be57806351cff8d914620008e3578063562429bc14620009085780636213b727146200092a57600080fd5b806341cb87fc116200033e57806341cb87fc146200082557806344478425146200084a578063467150ee146200086c5780634ac0ab1c14620008845780634c4cbca5146200089c57600080fd5b806336f956701462000786578063389fa61514620007ab5780633ca7b4ea14620007e85780633e032a3b146200080d57600080fd5b806327c1c94a11620004015780632f2ff15d11620003cc5780632f2ff15d14620006c157806331f20de814620006e6578063334672c1146200071757806335460670146200073c57806336568abe146200076157600080fd5b806327c1c94a146200063a5780632b6b5052146200065f5780632cc8265514620006845780632eb4a7ab14620006a957600080fd5b80630bb4d82a116200044e5780630bb4d82a1462000560578063142f25a9146200059a5780631551fbc414620005bf57806321b7e5e614620005e4578063248a9ca3146200060657600080fd5b806301ffc9a714620004845780630417678214620004be5780630505b2b414620004fe578063062287491462000525575b600080fd5b3480156200049157600080fd5b50620004a9620004a336600462004866565b62000ea5565b60405190151581526020015b60405180910390f35b348015620004cb57600080fd5b50620004ef620004dd366004620045f8565b60e86020526000908152604090205481565b604051908152602001620004b5565b3480156200050b57600080fd5b50620005236200051d366004620045f8565b62000edd565b005b3480156200053257600080fd5b5060e15462000547906001600160a01b031681565b6040516001600160a01b039091168152602001620004b5565b3480156200056d57600080fd5b50620005476200057f36600462004819565b60dd602052600090815260409020546001600160a01b031681565b348015620005a757600080fd5b5062000523620005b9366004620049a2565b62000f6e565b348015620005cc57600080fd5b5062000523620005de36600462004719565b6200102d565b348015620005f157600080fd5b5060d55462000547906001600160a01b031681565b3480156200061357600080fd5b50620004ef6200062536600462004819565b60009081526065602052604090206001015490565b3480156200064757600080fd5b50620005236200065936600462004819565b6200130b565b3480156200066c57600080fd5b50620005236200067e366004620045f8565b6200134e565b3480156200069157600080fd5b5062000523620006a336600462004819565b620013d8565b348015620006b657600080fd5b50620004ef60e05481565b348015620006ce57600080fd5b5062000523620006e036600462004833565b6200141b565b348015620006f357600080fd5b50620004ef62000705366004620045f8565b60ea6020526000908152604090205481565b3480156200072457600080fd5b50620005236200073636600462004819565b62001449565b3480156200074957600080fd5b50620005236200075b366004620049a2565b6200149a565b3480156200076e57600080fd5b50620005236200078036600462004833565b620016e6565b3480156200079357600080fd5b5062000523620007a5366004620045f8565b62001764565b348015620007b857600080fd5b50620004a9620007ca366004620045f8565b6001600160a01b0316600090815260de602052604090205460ff1690565b348015620007f557600080fd5b50620005236200080736600462004819565b620017e8565b3480156200081a57600080fd5b50620004ef60e75481565b3480156200083257600080fd5b506200052362000844366004620045f8565b6200182b565b3480156200085757600080fd5b5060e35462000547906001600160a01b031681565b3480156200087957600080fd5b50620004ef60d35481565b3480156200089157600080fd5b50620004ef60d75481565b348015620008a957600080fd5b5060cb5462000547906001600160a01b031681565b348015620008cb57600080fd5b5062000523620008dd36600462004638565b6200185b565b348015620008f057600080fd5b506200052362000902366004620045f8565b62001995565b3480156200091557600080fd5b5060cd5462000547906001600160a01b031681565b3480156200093757600080fd5b5062000523620009493660046200468a565b620019ed565b3480156200095c57600080fd5b50620005236200096e366004620045f8565b62001d1a565b3480156200098157600080fd5b50620004ef60d05481565b3480156200099957600080fd5b50620004ef60db5481565b348015620009b157600080fd5b5060c95462000547906001600160a01b031681565b348015620009d357600080fd5b5060ce5462000547906001600160a01b031681565b348015620009f557600080fd5b506200052362000a0736600462004819565b62001d9e565b34801562000a1a57600080fd5b5060e45462000547906001600160a01b031681565b34801562000a3c57600080fd5b506200052362000a4e366004620045f8565b62001de1565b6200052362000a6536600462004751565b62001eca565b34801562000a7857600080fd5b50620004ef60d95481565b34801562000a9057600080fd5b50620004a962000aa236600462004892565b805160208183018101805160e98252928201919093012091525460ff1681565b34801562000acf57600080fd5b50620004a962000ae1366004620045f8565b60de6020526000908152604090205460ff1681565b34801562000b0357600080fd5b506200052362000b1536600462004967565b6200224e565b34801562000b2857600080fd5b506200052333600090815260ea60205260409020439055565b34801562000b4e57600080fd5b50620004a962000b6036600462004833565b6200249e565b34801562000b7357600080fd5b5060e55462000547906001600160a01b031681565b34801562000b9557600080fd5b50620004ef600081565b34801562000bac57600080fd5b506200052362000bbe366004620045f8565b620024c9565b34801562000bd157600080fd5b50620004ef60d45481565b34801562000be957600080fd5b50620004ef6200254d565b34801562000c0157600080fd5b50620004ef60df5481565b34801562000c1957600080fd5b506200052362000c2b366004620045f8565b62002598565b34801562000c3e57600080fd5b506200052362000c5036600462004819565b6200261c565b34801562000c6357600080fd5b50620004ef6000805160206200568d83398151915281565b34801562000c8857600080fd5b506200052362000c9a36600462004a67565b62002884565b34801562000cad57600080fd5b50620004ef60cf5481565b34801562000cc557600080fd5b50620004ef60da5481565b34801562000cdd57600080fd5b506200052362000cef366004620049ea565b62002972565b34801562000d0257600080fd5b5062000d1a62000d1436600462004a46565b62002b96565b604051620004b5919062004bcb565b34801562000d3657600080fd5b50620004ef60d65481565b34801562000d4e57600080fd5b50620004ef60d85481565b34801562000d6657600080fd5b506200052362000d7836600462004751565b62002bd3565b34801562000d8b57600080fd5b5060cc5462000547906001600160a01b031681565b34801562000dad57600080fd5b506200052362000dbf36600462004833565b62002d63565b34801562000dd257600080fd5b5060e25462000547906001600160a01b031681565b34801562000df457600080fd5b50620004ef60d15481565b6200052362000e1036600462004751565b62002d8c565b34801562000e2357600080fd5b50620004ef60d25481565b34801562000e3b57600080fd5b50620004ef60dc5481565b34801562000e5357600080fd5b50620004ef60eb5481565b34801562000e6b57600080fd5b506200052362000e7d366004620045f8565b62003105565b34801562000e9057600080fd5b5060ca5462000547906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b148062000ed757506301ffc9a760e01b6001600160e01b03198316145b92915050565b600062000eea8162003189565b6001600160a01b03821662000f125760405163f8b7150760e01b815260040160405180910390fd5b62000f2d6000805160206200568d8339815191528362003198565b6040516001600160a01b03831681527f0c1599a415df7df1043c154c0ad7818459c975b2019450a1a5c5381def6a0d78906020015b60405180910390a15050565b600062000f7b8162003189565b6040805180820190915260028152610ccd60f21b60208201526003831062000fc15760405162461bcd60e51b815260040162000fb8919062004bcb565b60405180910390fd5b508162000fd35760d283905562000fee565b816001141562000fe85760d483905562000fee565b60d38390555b60408051848152602081018490527fa2a06a48cf0ad8605be8181861290033a1f5bdbd40cd999dbb30d354ce42291f91015b60405180910390a1505050565b60068111806200103b575080155b156200105a5760405163bd28cf5f60e01b815260040160405180910390fd5b6001600160a01b038316600090815260de60209081526040918290205482518084019093526002835261313560f01b9183019190915260ff16620010b35760405162461bcd60e51b815260040162000fb8919062004bcb565b50620010c183338462003222565b604051806040016040528060018152602001601960f91b81525090620010fc5760405162461bcd60e51b815260040162000fb8919062004bcb565b50604051631df5f84360e11b8152600481018390526024810182905260009081906001600160a01b03861690633bebf08690604401604080518083038186803b1580156200114957600080fd5b505afa1580156200115e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011849190620049c5565b91509150620011a882826003811115620011a257620011a262004d22565b620032bb565b604051806040016040528060018152602001602360f91b81525090620011e35760405162461bcd60e51b815260040162000fb8919062004bcb565b5060ca546000906001600160a01b031663db863276836200120686600162004c2b565b6040516001600160e01b031960e085901b1681526004810192909252602482015260440160206040518083038186803b1580156200124357600080fd5b505afa15801562001258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200127e91906200494d565b6200129290670de0b6b3a764000062004c69565b9050620012a0813362003310565b604051638000209160e01b815260048101859052602481018690526001600160a01b03871690638000209190604401600060405180830381600087803b158015620012ea57600080fd5b505af1158015620012ff573d6000803e3d6000fd5b50505050505050505050565b6000620013188162003189565b60e08290556040518281527fae8bdbc15b982b030d313524fca26f653a8826332c662cb93c670068172d217e9060200162000f62565b60006200135b8162003189565b6001600160a01b038216620013835760405163f8b7150760e01b815260040160405180910390fd5b6200139e6000805160206200568d8339815191528362002d63565b6040516001600160a01b03831681527f71a08fb94bdb69a641149d5205dc5302a41c829df340a4b4623bcacac213fd399060200162000f62565b6000620013e58162003189565b60df8290556040518281527f950f882195edb5ea868063c1d152918a8cfff7d9f80aba11c970763f87a826e89060200162000f62565b600082815260656020526040902060010154620014388162003189565b62001444838362003198565b505050565b6000805160206200568d833981519152620014648162003189565b60d18290556040518281527f10797db75e153daf26ab5f826d87e077c0fd35336632791e6cd5e9e2203f6f389060200162000f62565b620014a462003513565b6127108260eb54620014b7919062004c2b565b1115620014d75760405163e2a5313760e01b815260040160405180910390fd5b600080620014e5836200356f565b90925090506000620014f8858462004c69565b604051636eb1769f60e11b815233600482015230602482015290915081906001600160a01b0384169063dd62ed3e9060440160206040518083038186803b1580156200154357600080fd5b505afa15801562001558573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200157e91906200494d565b101560405180604001604052806002815260200161191960f11b81525090620015bc5760405162461bcd60e51b815260040162000fb8919062004bcb565b506040516323b872dd60e01b81526001600160a01b038316906323b872dd90620015ef9033903090869060040162004b81565b602060405180830381600087803b1580156200160a57600080fd5b505af11580156200161f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016459190620047f5565b5060cb546040516332d46d5f60e01b81526004810187905233602482015260448101839052606481018690526001600160a01b03909116906332d46d5f90608401600060405180830381600087803b158015620016a157600080fd5b505af1158015620016b6573d6000803e3d6000fd5b505050508460eb6000828254620016ce919062004c2b565b9091555050600160975550620016e2915050565b5050565b6001600160a01b0381163314620017585760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840162000fb8565b620016e2828262003620565b6000620017718162003189565b6001600160a01b038216620017995760405163f8b7150760e01b815260040160405180910390fd5b60c980546001600160a01b0319166001600160a01b0384169081179091556040519081527f51ad1d0f5aa4dce01cdbd1ffce145596092a73bcb73db321a014518db8b55b229060200162000f62565b6000620017f58162003189565b60cf8290556040518281527fd80634d8ccc9a8044b81b386ba3360632ef2df87981d13df91a27c21f9405a889060200162000f62565b6000620018388162003189565b5060e680546001600160a01b0319166001600160a01b0392909216919091179055565b6000620018688162003189565b6001600160a01b03841615620018ca5760e480546001600160a01b0319166001600160a01b0386169081179091556040519081527f76007df2bb027b05db3255d900349c109dd5f1811b2f9bf447a14144ca76452b9060200160405180910390a15b6001600160a01b038316156200192c5760d580546001600160a01b0319166001600160a01b0385169081179091556040519081527ffffb08c841cdfb56c0107c5d4bdc815f66bdc90947ca9923bf2c58d1b5b5fbc29060200160405180910390a15b6001600160a01b038216156200198f5760e580546001600160a01b0319166001600160a01b0384169081179091556040519081527fa93511a455ce22450ebdd0bb324e562191f0947dfdfa6e3b87bb82f4dd8502a0906020015b60405180910390a15b50505050565b6000620019a28162003189565b620019ae82476200368a565b604080516001600160a01b03841681524760208201527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364910162000f62565b600054610100900460ff161580801562001a0e5750600054600160ff909116105b8062001a2a5750303b15801562001a2a575060005460ff166001145b62001a8f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000fb8565b6000805460ff19166001179055801562001ab3576000805461ff0019166101001790555b6001600160a01b038816158062001ad157506001600160a01b038716155b8062001ae457506001600160a01b038616155b8062001af757506001600160a01b038316155b1562001b165760405163f8b7150760e01b815260040160405180910390fd5b62001b20620037a9565b62001b2a620037d5565b62001b3760008962003198565b60cd80546001600160a01b038089166001600160a01b03199283161790925560cf87905560ca805485841690831617905560d28690556301c9c38060d35569d3c21bcecceda100000060d45560ce8054928616928216929092179091556901c5324e5ad259a0000060d15560fa60d055606460e75560e18054821673dead00000000000000004206942069420694206917905560e28054821673f9690a9521c9c4cea419b70d3720f958a837c3f817905560e38054821673b980d88ae1e9599096e6030fb5381483e4312f3117905560e58054821673999f90f25a2922ae1b21a06066f7edebedad42a917905560e48054821673d51bfa777609213a653a2cd067c9a0132a2d316a17905560e6805490911673965b104e250648d01d4b3b72bac751cde809d29e17905560005b600a81101562001c905762001c7b89898362003809565b8062001c878162004cee565b91505062001c64565b506367f85b8060d6556367fc500060d7556367fda18060d855636800448060d955636801960060da55636804390060db556368058a8060dc55801562001d10576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b600062001d278162003189565b6001600160a01b03821662001d4f5760405163f8b7150760e01b815260040160405180910390fd5b60ca80546001600160a01b0319166001600160a01b0384169081179091556040519081527f7bf10f89b05788c765ea1d9d5d613224cf4c42dd9646c5d07f6c627afda3f3e09060200162000f62565b600062001dab8162003189565b60d08290556040518281527f33dc8fd53ad74509c6e95a92cd0fbc8e2d674a94106c8a08fd49b5ca1e0ca1479060200162000f62565b600062001dee8162003189565b60cd546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801562001e3357600080fd5b505afa15801562001e48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e6e91906200494d565b60cd5490915062001e8a906001600160a01b0316848362003923565b604080516001600160a01b0385168152602081018390527f010a5b2e79ead477789f19dd02af3588808775c591b3b1198d173c4d63b473b0910162001020565b62001ed462003513565b33600090815260ea602052604090205443148062001eff575033600090815260ea6020526040902054155b1562001f1e5760405163d0c2348760e01b815260040160405180910390fd5b33600090815260ea602052604081205560dc5442101562001f525760405163461b04cd60e01b815260040160405180910390fd5b60df5462001fa45762001f66828262003988565b60405180604001604052806002815260200161323360f01b8152509062001fa25760405162461bcd60e51b815260040162000fb8919062004bcb565b505b84831462001fc55760405163bd28cf5f60e01b815260040160405180910390fd5b6000805b86811015620021a057600a86868381811062001fe95762001fe962004d38565b905060200201351115604051806040016040528060018152602001604160f81b815250906200202d5760405162461bcd60e51b815260040162000fb8919062004bcb565b50600a88888381811062002045576200204562004d38565b9050602002013510604051806040016040528060018152602001604160f81b81525090620020885760405162461bcd60e51b815260040162000fb8919062004bcb565b50600060dd60008a8a85818110620020a457620020a462004d38565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b878784818110620020e157620020e162004d38565b905060200201358110156200216a5760d15460405163c529b32f60e01b81523360048201526003602482015260448101919091526001600160a01b0383169063c529b32f90606401600060405180830381600087803b1580156200214457600080fd5b505af115801562002159573d6000803e3d6000fd5b505060019092019150620020cc9050565b5086868381811062002180576200218062004d38565b905060200201358362002194919062004c2b565b92505060010162001fc9565b50600060d15482620021b3919062004c69565b905034811115620021d7576040516307194af560e01b815260040160405180910390fd5b6000620021e5823462004c8b565b90508015620021fa57620021fa33826200368a565b33600090815260e86020526040812080548592906200221b90849062004c2b565b909155505060e35462002238906001600160a01b0316836200368a565b505050620022466001609755565b505050505050565b6200225862003513565b6127108360eb546200226b919062004c2b565b11156200228b5760405163e2a5313760e01b815260040160405180910390fd5b60008062002299836200356f565b90925090506000620022ac868462004c69565b604051636eb1769f60e11b815233600482015230602482015290915081906001600160a01b0384169063dd62ed3e9060440160206040518083038186803b158015620022f757600080fd5b505afa1580156200230c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200233291906200494d565b101560405180604001604052806002815260200161191960f11b81525090620023705760405162461bcd60e51b8152600401