[ { "inputs": [ { "internalType": "contract IERC20", "name": "_paytoken", "type": "address" }, { "internalType": "contract BusinessesV2", "name": "_businesses", "type": "address" }, { "internalType": "address", "name": "_contractOwner", "type": "address" }, { "internalType": "address", "name": "_royaltyReceiver", "type": "address" }, { "internalType": "address", "name": "_tokenReceiverAddr", "type": "address" }, { "internalType": "uint256", "name": "_startTime", "type": "uint256" }, { "internalType": "uint256", "name": "_mintTime", "type": "uint256" }, { "internalType": "uint256", "name": "_gameDuration", "type": "uint256" }, { "internalType": "string", "name": "_baseuri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "TransferFailed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "chloeooNumber", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "chloeName", "type": "string" } ], "name": "NameChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "chloeooNumber", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "PurchaseEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "chloeooNumber", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "isForSale", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "SaleToggle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BASE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BASE2", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DIVISOR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAXIMUM_MINTS_PER_WHITELIST_ADDRESS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PayToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_signer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toAdd", "type": "address" } ], "name": "addAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "allowMinting", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "authorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burndontsend", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "businesses", "outputs": [ { "internalType": "contract BusinessesV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "buyToken", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddr", "type": "address" } ], "name": "changeTokenReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "changeUrl", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disablePriceHalving", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_noSignature", "type": "bool" } ], "name": "disableSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableTokenMinting", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "excludedList", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gameDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllSaleTokens", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getChloeRunDetails", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getCurrentMessageToSign", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getMessageHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ids", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintFeeAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_royaltyPercentage", "type": "uint256" }, { "internalType": "uint256", "name": "_tokenPriceMAIN", "type": "uint256" }, { "internalType": "uint256", "name": "_tokenPriceTOKEN", "type": "uint256" }, { "internalType": "address", "name": "_paymentSplitter", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isInitialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "merkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfToken", "type": "uint256" }, { "internalType": "bool", "name": "_withToken", "type": "bool" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintFeeAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "numberOfToken", "type": "uint256" }, { "internalType": "bool", "name": "_withToken", "type": "bool" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mintWhitelist", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintingStartedWhitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "namechangeprice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "noSignature", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_ethSignedMessageHash", "type": "bytes32" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "recoverSigner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toRemove", "type": "address" } ], "name": "removeAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltyPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "_chloeName", "type": "string" } ], "name": "setChloename", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_newLevel", "type": "uint256" } ], "name": "setLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_newPrice", "type": "uint256" }, { "internalType": "bool", "name": "isForSale", "type": "bool" } ], "name": "setPriceForSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintFee", "type": "uint256" }, { "internalType": "uint256", "name": "_tokenAvax", "type": "uint256" }, { "internalType": "uint256", "name": "_tokenToken", "type": "uint256" }, { "internalType": "uint256", "name": "_namechangeprice", "type": "uint256" } ], "name": "setSalePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_allowMinting", "type": "bool" }, { "internalType": "bool", "name": "_whitelist", "type": "bool" }, { "internalType": "bool", "name": "_disableTokenMinting", "type": "bool" }, { "internalType": "bool", "name": "_disablePriceHalving", "type": "bool" }, { "internalType": "bool", "name": "_burndontsend", "type": "bool" } ], "name": "setSaleStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" } ], "name": "setSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setStartTimeWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "splitSignature", "outputs": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startTimeWhitelist", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenPriceMAIN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenPriceTOKEN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "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": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "walletMints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistClaimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "whitelistOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
610100604052600f805460ff60a01b1916600160a01b179055600560135560be805460ff191660011790553480156200003757600080fd5b50604051620059c6380380620059c68339810160408190526200005a9162000236565b60408051808201825260088082526743686c6f6543454f60c01b6020808401829052845180860190955291845290830152889160006200009b838262000428565b506001620000aa828262000428565b5050506001600160a01b038116620000dc57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e781620001b5565b50600b80546001600160a01b03808c166001600160a01b031992831617909255600c80548b8416908316179055600d8054898416908316179055600e805492881692909116919091179055608084905260a083905260e08290526200015082620151806200050a565b6200015c90856200052a565b60c0526001600160a01b03878116600090815260b760205260408082208054600160ff199182168117909255938a168352912080549092161790556016620001a5828262000428565b5050505050505050505062000540565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200021d57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060008060006101208a8c0312156200025657600080fd5b8951620002638162000207565b60208b0151909950620002768162000207565b60408b0151909850620002898162000207565b60608b01519097506200029c8162000207565b60808b0151909650620002af8162000207565b60a08b015160c08c015160e08d01516101008e0151939850919650945092506001600160401b0380821115620002e457600080fd5b818c0191508c601f830112620002f957600080fd5b8151818111156200030e576200030e62000220565b604051601f8201601f19908116603f0116810190838211818310171562000339576200033962000220565b816040528281528f60208487010111156200035357600080fd5b600093505b828410156200037b57602084860101516020858301015260208401935062000358565b60006020848301015280955050505050509295985092959850929598565b600181811c90821680620003ae57607f821691505b602082108103620003cf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200042357600081815260208120601f850160051c81016020861015620003fe5750805b601f850160051c820191505b818110156200041f578281556001016200040a565b5050505b505050565b81516001600160401b0381111562000444576200044462000220565b6200045c8162000455845462000399565b84620003d5565b602080601f8311600181146200049457600084156200047b5750858301515b600019600386901b1c1916600185901b1785556200041f565b600085815260208120601f198616915b82811015620004c557888601518255948401946001909101908401620004a4565b5085821015620004e45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620005245762000524620004f4565b92915050565b80820180821115620005245762000524620004f4565b60805160a05160c05160e051615414620005b260003960008181610c89015281816111630152612043015260008181610687015281816110e80152818161111301528181611fc80152611ff30152600061093a0152600081816108ac0152818161113b015261201b01526154146000f3fe60806040526004361061044b5760003560e01c80638647812211610234578063ccd652961161012e578063e985e9c5116100b6578063f0293fd31161007a578063f0293fd314610d54578063f127c39c14610d81578063f2fde38b14610da1578063f60f49bb14610dc1578063fac333ac14610de157600080fd5b8063e985e9c514610cc1578063eb41903a14610ce1578063ec342ad014610d01578063ee1a516814610d1d578063efe0d7ce14610d3f57600080fd5b8063d5abeb01116100fd578063d5abeb011461054a578063d884cd1414610c37578063db4bec4414610c4a578063e1f0c37614610c77578063e6e5892f14610cab57600080fd5b8063ccd6529614610ba0578063cd656a8914610bc0578063cf1c316a14610bf6578063d18e366914610c1657600080fd5b8063a924ee60116101bc578063bf6214b211610180578063bf6214b214610b00578063c87b56dd14610b20578063c8dece3714610b40578063ca239c2214610b60578063ca29e8c814610b8057600080fd5b8063a924ee6014610a59578063ac4732b914610a7a578063b88d4fde14610a90578063b918161114610ab0578063bc2790c814610ae057600080fd5b806395d89b411161020357806395d89b41146109a557806397aba7f9146109ba5780639e3ac3a7146109da578063a22cb465146109fb578063a7bb580314610a1b57600080fd5b80638647812214610928578063877e6e9c1461095c5780638a71bb2d146109715780638da5cb5b1461098757600080fd5b8063392e53cd116103455780636817c76c116102cd578063715018a611610291578063715018a61461088557806378e979251461089a5780637cb64759146108ce5780637db3aecc146108ee5780637eb01a581461090857600080fd5b80636817c76c146107db5780636c0360eb146108105780636c19e7831461082557806370a082311461084557806370a93b361461086557600080fd5b8063530fe41611610314578063530fe4161461073f5780635600d2fa146107555780635f823d281461078557806361bfa8da146107a55780636352211e146107bb57600080fd5b8063392e53cd146106be57806342842e0e146106df578063485d7d94146106ff5780634f6ccce71461071f57600080fd5b80631d54f67a116103d35780632d296bf1116103975780632d296bf11461062c5780632eb4a7ab1461063f5780632f745c59146106555780633197cbb6146106755780633410fe6e146106a957600080fd5b80631d54f67a146105965780631f5ac1b2146105b657806323b872dd146105d65780632476703e146105f657806325aa05031461060c57600080fd5b8063095ea7b31161041a578063095ea7b3146105075780631602a1241461052957806316cd209a1461054a57806318160ddd1461056e5780631d53f0651461058357600080fd5b806301ffc9a71461045757806306fdde031461048c578063081812fc146104ae57806308b5c176146104e657600080fd5b3661045257005b600080fd5b34801561046357600080fd5b506104776104723660046149e0565b610e14565b60405190151581526020015b60405180910390f35b34801561049857600080fd5b506104a1610e25565b6040516104839190614a4d565b3480156104ba57600080fd5b506104ce6104c9366004614a60565b610eb7565b6040516001600160a01b039091168152602001610483565b3480156104f257600080fd5b50600f5461047790600160a81b900460ff1681565b34801561051357600080fd5b50610527610522366004614a95565b610ee0565b005b34801561053557600080fd5b50600f5461047790600160a01b900460ff1681565b34801561055657600080fd5b506105606109c481565b604051908152602001610483565b34801561057a57600080fd5b50600854610560565b610527610591366004614b21565b610eef565b3480156105a257600080fd5b506105276105b1366004614b7d565b611960565b3480156105c257600080fd5b506105606105d1366004614bee565b6119e0565b3480156105e257600080fd5b506105276105f1366004614c09565b611a61565b34801561060257600080fd5b5061056060bd5481565b34801561061857600080fd5b50600c546104ce906001600160a01b031681565b61052761063a366004614a60565b611aec565b34801561064b57600080fd5b5061056060bb5481565b34801561066157600080fd5b50610560610670366004614a95565b611e72565b34801561068157600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b3480156106b557600080fd5b50610560606481565b3480156106ca57600080fd5b50600f5461047790600160c01b900460ff1681565b3480156106eb57600080fd5b506105276106fa366004614c09565b611ed7565b34801561070b57600080fd5b5061052761071a366004614bee565b611ef7565b34801561072b57600080fd5b5061056061073a366004614a60565b611f48565b34801561074b57600080fd5b5061056060115481565b34801561076157600080fd5b50610477610770366004614bee565b60b76020526000908152604090205460ff1681565b34801561079157600080fd5b506105276107a0366004614ce8565b611fa1565b3480156107b157600080fd5b5061056060135481565b3480156107c757600080fd5b506104ce6107d6366004614a60565b611fb5565b3480156107e757600080fd5b506107f0611fc0565b604080519485526020850193909352918301526060820152608001610483565b34801561081c57600080fd5b506104a16122ca565b34801561083157600080fd5b50610527610840366004614bee565b612358565b34801561085157600080fd5b50610560610860366004614bee565b612382565b34801561087157600080fd5b50610527610880366004614d1d565b6123ca565b34801561089157600080fd5b50610527612609565b3480156108a657600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b3480156108da57600080fd5b506105276108e9366004614a60565b61261d565b3480156108fa57600080fd5b5060be546104779060ff1681565b34801561091457600080fd5b50610527610923366004614d3f565b61262a565b34801561093457600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b34801561096857600080fd5b50610560600581565b34801561097d57600080fd5b5061056060125481565b34801561099357600080fd5b50600a546001600160a01b03166104ce565b3480156109b157600080fd5b506104a16128aa565b3480156109c657600080fd5b506104ce6109d5366004614d78565b6128b9565b3480156109e657600080fd5b5060b65461047790600160a01b900460ff1681565b348015610a0757600080fd5b50610527610a16366004614dbf565b612938565b348015610a2757600080fd5b50610a3b610a36366004614ce8565b612943565b60408051938452602084019290925260ff1690820152606001610483565b348015610a6557600080fd5b50600f5461047790600160b01b900460ff1681565b348015610a8657600080fd5b5061056060145481565b348015610a9c57600080fd5b50610527610aab366004614df6565b6129b7565b348015610abc57600080fd5b50610477610acb366004614bee565b60b96020526000908152604090205460ff1681565b348015610aec57600080fd5b50610527610afb366004614bee565b6129ce565b348015610b0c57600080fd5b50610527610b1b366004614e5e565b612a3e565b348015610b2c57600080fd5b506104a1610b3b366004614a60565b612ab3565b348015610b4c57600080fd5b50610527610b5b366004614d78565b612b1b565b348015610b6c57600080fd5b506104a1610b7b366004614bee565b612de4565b348015610b8c57600080fd5b5060b6546104ce906001600160a01b031681565b348015610bac57600080fd5b50610527610bbb366004614e7b565b612e5e565b348015610bcc57600080fd5b50610be0610bdb366004614a60565b612ef9565b6040516104839a99989796959493929190614ec4565b348015610c0257600080fd5b50610527610c11366004614bee565b613084565b348015610c2257600080fd5b50600f5461047790600160b81b900460ff1681565b610527610c45366004614f30565b6130c3565b348015610c5657600080fd5b50610560610c65366004614bee565b60bc6020526000908152604090205481565b348015610c8357600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b348015610cb757600080fd5b5061056060105481565b348015610ccd57600080fd5b50610477610cdc366004614fe9565b6139a4565b348015610ced57600080fd5b50610527610cfc366004614a60565b6139d2565b348015610d0d57600080fd5b50610560670de0b6b3a764000081565b348015610d2957600080fd5b50610d326139df565b604051610483919061501c565b348015610d4b57600080fd5b50610477613ab6565b348015610d6057600080fd5b50610560610d6f366004614bee565b60ba6020526000908152604090205481565b348015610d8d57600080fd5b50610527610d9c366004615060565b613ae0565b348015610dad57600080fd5b50610527610dbc366004614bee565b613afc565b348015610dcd57600080fd5b50600b546104ce906001600160a01b031681565b348015610ded57600080fd5b50610e01610dfc366004614a60565b613b3a565b60405161ffff9091168152602001610483565b6000610e1f82613b69565b92915050565b606060008054610e3490615092565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6090615092565b8015610ead5780601f10610e8257610100808354040283529160200191610ead565b820191906000526020600020905b815481529060010190602001808311610e9057829003601f168201915b5050505050905090565b6000610ec282613b8e565b506000828152600460205260409020546001600160a01b0316610e1f565b610eeb828233613bc7565b5050565b600f54600160c01b900460ff16610f435760405162461bcd60e51b8152602060048201526013602482015272139bdd081a5b9a5d1a585b1a5e9959081e595d606a1b60448201526064015b60405180910390fd5b600f54600160a01b900460ff16610f8f5760405162461bcd60e51b815260206004820152601060248201526f135a5b9d1a5b99c8111a5cd8589b195960821b6044820152606401610f3a565b6109c484610f9c60085490565b610fa691906150e2565b1115610fe15760405162461bcd60e51b815260206004820152600a6024820152696d617820737570706c7960b01b6044820152606401610f3a565b600084118015610ff25750600c8411155b61102e5760405162461bcd60e51b815260206004820152600d60248201526c26b4b71018961026b0bc10189960991b6044820152606401610f3a565b60b654600160a01b900460ff168061109b575061108961104d336119e0565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128b992505050565b60b6546001600160a01b039081169116145b6110e15760405162461bcd60e51b8152602060048201526017602482015276546573743a20696e76616c6964207369676e617475726560481b6044820152606401610f3a565b60008080807f0000000000000000000000000000000000000000000000000000000000000000158015906111345750427f0000000000000000000000000000000000000000000000000000000000000000115b15611243577f0000000000000000000000000000000000000000000000000000000000000000600061118760057f000000000000000000000000000000000000000000000000000000000000000061510b565b611194906201518061511f565b90506111a081836150e2565b4210156111b05760109250611240565b6111bb81600261511f565b6111c590836150e2565b4210156111d55760089250611240565b6111e081600361511f565b6111ea90836150e2565b4210156111fa5760049250611240565b61120581600461511f565b61120f90836150e2565b42101561121f5760029250611240565b61122a81600561511f565b61123490836150e2565b42101561124057600192505b50505b600080600083601014806112655750600f54600160a81b900460ff1615156001145b1561127e576014549250601054915060115490506113db565b83600814801561129d5750600f54600160a81b900460ff161515600114155b156112da5760026014546112b1919061510b565b925060026010546112c2919061510b565b915060026011546112d3919061510b565b90506113db565b8360041480156112f95750600f54600160a81b900460ff161515600114155b1561132f57600460145461130d919061510b565b9250600460105461131e919061510b565b915060046011546112d3919061510b565b83600214801561134e5750600f54600160a81b900460ff161515600114155b15611384576008601454611362919061510b565b92506008601054611373919061510b565b915060086011546112d3919061510b565b8360011480156113a35750600f54600160a81b900460ff161515600114155b156113db5760106014546113b7919061510b565b9250601080546113c7919061510b565b915060106011546113d8919061510b565b90505b33600090815260b7602052604090205460ff166117495789156116a857600f54600160b01b900460ff161561144b5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b88135a5b9d1a5b99c8111a5cd8589b195960521b6044820152606401610f3a565b6114558b8361511f565b95506114618b8261511f565b600b546040516370a0823160e01b815233600482015291965086916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d29190615136565b10156115135760405162461bcd60e51b815260206004820152601060248201526f2727aa1022a727aaa3a4102a27a5a2a760811b6044820152606401610f3a565b8534146115325760405162461bcd60e51b8152600401610f3a9061514f565b600f54600160b81b900460ff16156115ad57600c54604051636e22bc5560e11b8152336004820152602481018790526001600160a01b039091169063dc4578aa90604401600060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b5050505061162e565b600b54600e546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018890529116906323b872dd906064016020604051808303816000875af1158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190615177565b505b600f546040516000916001600160a01b03169034908381818185875af1925050503d806000811461167b576040519150601f19603f3d011682016040523d82523d6000602084013e611680565b606091505b50509050806116a2576040516312171d8360e31b815260040160405180910390fd5b50611749565b6116b28b8461511f565b96508634146116d35760405162461bcd60e51b8152600401610f3a9061514f565b600f546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611720576040519150601f19603f3d011682016040523d82523d6000602084013e611725565b606091505b5050905080611747576040516312171d8360e31b815260040160405180910390fd5b505b33600090815260ba6020526040812080548d92906117689084906150e2565b90915550600190505b8b81116119525760008a8a8360405160200161178f93929190615194565b6040516020818303038152906040528051906020012060001c905060006117b582613bd4565b90506117c2335b82613dd2565b60006117cd83613dec565b905060006040518061014001604052808481526020016117ea3390565b6001600160a01b03168152602001336001600160a01b03168152602001600081526020018d8152602001600081526020016000151581526020016064815260200160405180604001604052806009815260200168616e6f6e796d6f757360b81b81525081526020018381525090508060b860008581526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e0820151816007015561010082015181600801908161192e91906151f4565b506101208201518160090155905050505050508061194b906152b4565b9050611771565b505050505050505050505050565b611968613ec6565b600f805460be805496151560ff1990971696909617909555901515600160b81b0260ff60b81b19921515600160a81b029290921662ff00ff60a81b19931515600160b01b0260ff60b01b19961515600160a01b029690961662ff00ff60a01b1990951694909417949094179190911691909117179055565b60006119eb82612de4565b6040516020016119fb91906152cd565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c01604051602081830303815290604052805190602001209050919050565b6001600160a01b038216611a8b57604051633250574960e11b815260006004820152602401610f3a565b6000611a98838333613ef3565b9050836001600160a01b0316816001600160a01b031614611ae6576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610f3a565b50505050565b611af581613b8e565b506000611b0182611fb5565b90506001600160a01b038116611b1657600080fd5b336001600160a01b03821603611b2b57600080fd5b600082815260b8602090815260408083208151610140810183528154815260018201546001600160a01b03908116948201949094526002820154909316918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460ff16151560c0830152600781015460e083015260088101805461010084019190611bbc90615092565b80601f0160208091040260200160405190810160405280929190818152602001828054611be890615092565b8015611c355780601f10611c0a57610100808354040283529160200191611c35565b820191906000526020600020905b815481529060010190602001808311611c1857829003601f168201915b5050505050815260200160098201548152505090508060800151341015611c5b57600080fd5b8060c00151611c6957600080fd5b6012543490600090606490611c7e908461511f565b611c88919061510b565b90506000611c9682846152e9565b600d546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611cd1573d6000803e3d6000fd5b5083604001516001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015611d0f573d6000803e3d6000fd5b5060808401516060850152336040850152600060c085015260a08401805160019190611d3c9083906150e2565b905250600086815260b8602090815260409182902086518155908601516001820180546001600160a01b03199081166001600160a01b039384161790915592870151600283018054909416911617909155606085015160038201556080850151600482015560a0850151600582015560c085015160068201805460ff191691151591909117905560e085015160078201556101008501518591906008820190611de590826151f4565b506101209190910151600990910155611dff853388613f08565b7fdc84c3c75a393011959e6391215e5b01982de6ad00f83b8b26ac7c52a5844b22868560400151611e2d3390565b8760800151604051611e6294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a1505050505050565b6000611e7d83612382565b8210611eae5760405163295f44f760e21b81526001600160a01b038416600482015260248101839052604401610f3a565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b611ef2838383604051806020016040528060008152506129b7565b505050565b611eff613ec6565b6001600160a01b038116611f1257600080fd5b336001600160a01b03821603611f2757600080fd5b6001600160a01b0316600090815260b960205260409020805460ff19169055565b6000611f5360085490565b8210611f7c5760405163295f44f760e21b81526000600482015260248101839052604401610f3a565b60088281548110611f8f57611f8f6152fc565b90600052602060002001549050919050565b611fa9613ec6565b6016610eeb82826151f4565b6000610e1f82613b8e565b6000808080807f0000000000000000000000000000000000000000000000000000000000000000158015906120145750427f0000000000000000000000000000000000000000000000000000000000000000115b15612123577f0000000000000000000000000000000000000000000000000000000000000000600061206760057f000000000000000000000000000000000000000000000000000000000000000061510b565b612074906201518061511f565b905061208081836150e2565b4210156120905760109250612120565b61209b81600261511f565b6120a590836150e2565b4210156120b55760089250612120565b6120c081600361511f565b6120ca90836150e2565b4210156120da5760049250612120565b6120e581600461511f565b6120ef90836150e2565b4210156120ff5760029250612120565b61210a81600561511f565b61211490836150e2565b42101561212057600192505b50505b600080600083601014806121455750600f54600160a81b900460ff1615156001145b1561215e576014549250601054915060115490506122bb565b83600814801561217d5750600f54600160a81b900460ff161515600114155b156121ba576002601454612191919061510b565b925060026010546121a2919061510b565b915060026011546121b3919061510b565b90506122bb565b8360041480156121d95750600f54600160a81b900460ff161515600114155b1561220f5760046014546121ed919061510b565b925060046010546121fe919061510b565b915060046011546121b3919061510b565b83600214801561222e5750600f54600160a81b900460ff161515600114155b15612264576008601454612242919061510b565b92506008601054612253919061510b565b915060086011546121b3919061510b565b8360011480156122835750600f54600160a81b900460ff161515600114155b156122bb576010601454612297919061510b565b9250601080546122a7919061510b565b915060106011546122b8919061510b565b90505b91965094509250905090919293565b601680546122d790615092565b80601f016020809104026020016040519081016040528092919081815260200182805461230390615092565b80156123505780601f1061232557610100808354040283529160200191612350565b820191906000526020600020905b81548152906001019060200180831161233357829003601f168201915b505050505081565b612360613ec6565b60b680546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166123ae576040516322718ad960e21b815260006004820152602401610f3a565b506001600160a01b031660009081526003602052604090205490565b33600090815260b9602052604090205460ff16806123f25750600a546001600160a01b031633145b61242f5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610f3a565b600082815260b8602090815260408083208151610140810183528154815260018201546001600160a01b03908116948201949094526002820154909316918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460ff16151560c0830152600781015460e0830152600881018054610100840191906124c090615092565b80601f01602080910402602001604051908101604052809291908181526020018280546124ec90615092565b80156125395780601f1061250e57610100808354040283529160200191612539565b820191906000526020600020905b81548152906001019060200180831161251c57829003601f168201915b50505091835250506009919091015460209182015260e08201848152600086815260b8835260409081902084518155928401516001840180546001600160a01b03199081166001600160a01b0393841617909155918501516002850180549093169116179055606083015160038301556080830151600483015560a0830151600583015560c083015160068301805460ff1916911515919091179055516007820155610100820151919250829160088201906125f590826151f4565b506101208201518160090155905050505050565b612611613ec6565b61261b6000613fb8565b565b612625613ec6565b60bb55565b61263383613b8e565b50600061263f84611fb5565b90506001600160a01b03811633146126855760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610f3a565b600084815260b8602090815260408083208151610140810183528154815260018201546001600160a01b03908116948201949094526002820154909316918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460ff16151560c0830152600781015460e08301526008810180546101008401919061271690615092565b80601f016020809104026020016040519081016040528092919081815260200182805461274290615092565b801561278f5780601f106127645761010080835404028352916020019161278f565b820191906000526020600020905b81548152906001019060200180831161277257829003601f168201915b5050509183525050600991909101546020918201526080820186815285151560c08401908152600089815260b8845260409081902085518155938501516001850180546001600160a01b03199081166001600160a01b0393841617909155918601516002860180549093169116179055606084015160038401559051600483015560a083015160058301555160068201805460ff191691151591909117905560e082015160078201556101008201519192508291600882019061285290826151f4565b5061012091909101516009909101556040805186815284151560208201529081018590527f64b12cff1b4037cf4ed0ff891d2f6f0ee06c004d6bac81d0e718c447a93fe16e9060600160405180910390a15050505050565b606060018054610e3490615092565b6000806000806128c885612943565b6040805160008152602081018083528b905260ff8316918101919091526060810184905260808101839052929550909350915060019060a0016020604051602081039080840390855afa158015612923573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b610eeb33838361400a565b600080600083516041146129995760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606401610f3a565b50505060208101516040820151606090920151909260009190911a90565b6129c2848484611a61565b611ae6848484846140a9565b6129d6613ec6565b6001600160a01b038116612a1c5760405162461bcd60e51b815260206004820152600d60248201526c29b0b6b2902932b1b2b4bb32b960991b6044820152606401610f3a565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b612a46613ec6565b80151560b660149054906101000a900460ff16151503612a955760405162461bcd60e51b815260206004820152600a60248201526953616d6520537461746560b01b6044820152606401610f3a565b60b68054911515600160a01b0260ff60a01b19909216919091179055565b6060612abe82613b8e565b506000612ac96141d2565b90506000815111612ae95760405180602001604052806000815250612b14565b80612af3846141e1565b604051602001612b04929190615312565b6040516020818303038152906040525b9392505050565b612b2482613b8e565b506000612b3083611fb5565b9050601354612b3e82612382565b1015612b8c5760405162461bcd60e51b815260206004820181905260248201527f6e6f7420656e6f7567682043686c6f657320746f206368616e6765206e616d656044820152606401610f3a565b6001600160a01b0381163314612bd05760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610f3a565b600083815260b8602090815260408083208151610140810183528154815260018201546001600160a01b03908116948201949094526002820154909316918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460ff16151560c0830152600781015460e083015260088101805461010084019190612c6190615092565b80601f0160208091040260200160405190810160405280929190818152602001828054612c8d90615092565b8015612cda5780601f10612caf57610100808354040283529160200191612cda565b820191906000526020600020905b815481529060010190602001808311612cbd57829003601f168201915b5050509183525050600991909101546020918201526101008201858152600087815260b8835260409081902084518155928401516001840180546001600160a01b03199081166001600160a01b0393841617909155918501516002850180549093169116179055606083015160038301556080830151600483015560a0830151600583015560c083015160068301805460ff191691151591909117905560e083015160078301555191925082916008820190612d9690826151f4565b5061012082015181600901559050507f7e632a301794d8d4a81ea7e20f37d1947158d36e66403af04ba85dd194b66f1b8484604051612dd6929190615341565b60405180910390a150505050565b6001600160a01b038116600090815260ba602052604081205460609190612e0a906141e1565b905060006040518060400160405280600a8152602001694e4654204d696e74202360b01b81525090508082604051602001612e46929190615312565b60405160208183030381529060405292505050919050565b612e66613ec6565b600f54600160c01b900460ff1615612eb65760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610f3a565b601494909455601292909255600f8054601092909255601192909255600164ff0000000160a01b0319166001600160a01b0390921691909117600160c01b179055565b600081815260b8602090815260408083208151610140810183528154815260018201546001600160a01b0390811694820194909452600282015490931691830191909152600381015460608381019190915260048201546080840152600582015460a0840152600682015460ff16151560c0840152600782015460e084015260088201805485948594859485948594859485948593849361010084019190612fa090615092565b80601f0160208091040260200160405190810160405280929190818152602001828054612fcc90615092565b80156130195780601f10612fee57610100808354040283529160200191613019565b820191906000526020600020905b815481529060010190602001808311612ffc57829003601f168201915b505050505081526020016009820154815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b61308c613ec6565b6001600160a01b03811661309f57600080fd5b6001600160a01b0316600090815260b960205260409020805460ff19166001179055565b600f54600160c01b900460ff166131125760405162461bcd60e51b8152602060048201526013602482015272139bdd081a5b9a5d1a585b1a5e9959081e595d606a1b6044820152606401610f3a565b60bb546000036131535760405162461bcd60e51b815260206004820152600c60248201526b1b5a5cdcda5b99c81c9bdbdd60a21b6044820152606401610f3a565b61315b613ab6565b6131a75760405162461bcd60e51b815260206004820152601d60248201527f77686974656c697374206d696e74696e67206e6f7420737461727465640000006044820152606401610f3a565b600f54600160a01b900460ff166131f35760405162461bcd60e51b815260206004820152601060248201526f135a5b9d1a5b99c8111a5cd8589b195960821b6044820152606401610f3a565b6109c48461320060085490565b61320a91906150e2565b11156132455760405162461bcd60e51b815260206004820152600a6024820152696d617820737570706c7960b01b6044820152606401610f3a565b6000841180156132565750600c8411155b6132925760405162461bcd60e51b815260206004820152600d60248201526c26b4b71018961026b0bc10189960991b6044820152606401610f3a565b33600090815260bc60205260409020546109c4906132b19086906150e2565b11156132ff5760405162461bcd60e51b815260206004820152601f60248201527f6d6178696d756d2077686974656c697374206d696e74732072656163686564006044820152606401610f3a565b60b654600160a01b900460ff1680613330575061331e61104d336119e0565b60b6546001600160a01b039081169116145b6133765760405162461bcd60e51b8152602060048201526017602482015276546573743a20696e76616c6964207369676e617475726560481b6044820152606401610f3a565b6040516bffffffffffffffffffffffff193360601b1660208201526000906034016040516020818303038152906040528051906020012090506133f08787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060bb549150849050614274565b61344a5760405162461bcd60e51b815260206004820152602560248201527f74686973206164647265737320646f6573206e6f742068617665207065726d6960448201526439b9b4b7b760d91b6064820152608401610f3a565b33600090815260b760205260408120548190819060ff166137c857861561372357600f54600160b01b900460ff16156134be5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b88135a5b9d1a5b99c8111a5cd8589b195960521b6044820152606401610f3a565b876010546134cc919061511f565b9150876011546134dc919061511f565b600b546040516370a0823160e01b815233600482015291925082916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354d9190615136565b101561358e5760405162461bcd60e51b815260206004820152601060248201526f2727aa1022a727aaa3a4102a27a5a2a760811b6044820152606401610f3a565b8134146135ad5760405162461bcd60e51b8152600401610f3a9061514f565b600f54600160b81b900460ff161561362857600c54604051636e22bc5560e11b8152336004820152602481018390526001600160a01b039091169063dc4578aa90604401600060405180830381600087803b15801561360b57600080fd5b505af115801561361f573d6000803e3d6000fd5b505050506136a9565b600b54600e546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018490529116906323b872dd906064016020604051808303816000875af1158015613683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a79190615177565b505b600f546040516000916001600160a01b03169034908381818185875af1925050503d80600081146136f6576040519150601f19603f3d011682016040523d82523d6000602084013e6136fb565b606091505b505090508061371d576040516312171d8360e31b815260040160405180910390fd5b506137c8565b87601454613731919061511f565b92508234146137525760405162461bcd60e51b8152600401610f3a9061514f565b600f546040516000916001600160a01b03169034908381818185875af1925050503d806000811461379f576040519150601f19603f3d011682016040523d82523d6000602084013e6137a4565b606091505b50509050806137c6576040516312171d8360e31b815260040160405180910390fd5b505b33600090815260ba6020526040812080548a92906137e79084906150e2565b90915550600190505b88811161399757600087878360405160200161380e93929190615194565b6040516020818303038152906040528051906020012060001c9050600061383482613bd4565b905061383f336117bc565b600061384a83613dec565b905060006040518061014001604052808481526020016138673390565b6001600160a01b03168152602001336001600160a01b0390811682526000602080840182905260408085018e905260608086018490526080808701859052606460a080890191909152835180850185526009815268616e6f6e796d6f757360b81b8187015260c0808a019190915260e09889018c90528c875260b886529584902089518155948901516001860180546001600160a01b0319908116928a16929092179055938901516002860180549095169716969096179092558601516003830155850151600482015591840151600583015583015160068201805460ff19169115159190911790559082015160078201556101008201519192508291600882019061397390826151f4565b5061012082015181600901559050505050505080613990906152b4565b90506137f0565b5050505050505050505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6139da613ec6565b60bd55565b606060006139ec60085490565b905060008167ffffffffffffffff811115613a0957613a09614c45565b604051908082528060200260200182016040528015613a32578160200160208202803683370190505b509050600060015b838111613aad57600081815260b8602052604090206006015460ff161515600103613a9b57600081815260b860205260409020548351849084908110613a8257613a826152fc565b602090810291909101015281613a97816152b4565b9250505b80613aa5816152b4565b915050613a3a565b50909392505050565b600060bd54600014158015613acd575060bd544210155b8015613adb575060be5460ff165b905090565b613ae8613ec6565b601493909355601091909155601155601355565b613b04613ec6565b6001600160a01b038116613b2e57604051631e4fbdf760e01b815260006004820152602401610f3a565b613b3781613fb8565b50565b6017816109c58110613b4b57600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b60006001600160e01b0319821663780e9d6360e01b1480610e1f5750610e1f8261428a565b6000818152600260205260408120546001600160a01b031680610e1f57604051637e27328960e01b815260048101849052602401610f3a565b611ef283838360016142da565b60b4805461ffff8082166001011661ffff1990911681179091556000908190613bff906109c56152e9565b905080600003613c3f5760405162461bcd60e51b815260206004820152600b60248201526a1b9bc81a591cc81b19599d60aa1b6044820152606401610f3a565b6000613c4b828561535a565b90506017816109c58110613c6157613c616152fc565b601091828204019190066002029054906101000a900461ffff1661ffff16600003613c8c5780613cbf565b6017816109c58110613ca057613ca06152fc565b601091828204019190066002029054906101000a900461ffff1661ffff165b92506017613cce6001846152e9565b6109c58110613cdf57613cdf6152fc565b601081049190910154600f9091166002026101000a900461ffff1615613d40576017613d0c6001846152e9565b6109c58110613d1d57613d1d6152fc565b601091828204019190066002029054906101000a900461ffff1661ffff16613d4b565b613d4b6001836152e9565b6017826109c58110613d5f57613d5f6152fc565b601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060006017600184613d9591906152e9565b6109c58110613da657613da66152fc565b601091828204019190066002026101000a81548161ffff021916908361ffff1602179055505050919050565b610eeb8282604051806020016040528060008152506143e0565b6000806000606484604051602001613e0691815260200190565b6040516020818303038152906040528051906020012060001c613e29919061535a565b905080613e35816152b4565b91505060378111613e4557606491505b60388110158015613e575750604d8111155b15613e615760c891505b604e8110158015613e735750605b8111155b15613e7e5761012c91505b605c8110158015613e90575060628111155b15613e9b5761019091505b60638110613ea9576103e891505b60b58054906000613eb9836152b4565b9091555091949350505050565b600a546001600160a01b0316331461261b5760405163118cdaa760e01b8152336004820152602401610f3a565b6000613f008484846143f7565b949350505050565b6001600160a01b038216613f3257604051633250574960e11b815260006004820152602401610f3a565b6000613f4083836000613ef3565b90506001600160a01b038116613f6c57604051637e27328960e01b815260048101839052602401610f3a565b836001600160a01b0316816001600160a01b031614611ae6576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610f3a565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661403c57604051630b61174360e31b81526001600160a01b0383166004820152602401610f3a565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15611ae657604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906140eb90339088908790879060040161536e565b6020604051808303816000875af1925050508015614126575060408051601f3d908101601f19168201909252614123918101906153ab565b60015b61418f573d808015614154576040519150601f19603f3d011682016040523d82523d6000602084013e614159565b606091505b50805160000361418757604051633250574960e11b81526001600160a01b0385166004820152602401610f3a565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146141cb57604051633250574960e11b81526001600160a01b0385166004820152602401610f3a565b5050505050565b606060168054610e3490615092565b606060006141ee836144c4565b600101905060008167ffffffffffffffff81111561420e5761420e614c45565b6040519080825280601f01601f191660200182016040528015614238576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461424257509392505050565b600082614281858461459c565b14949350505050565b60006001600160e01b031982166380ac58cd60e01b14806142bb57506001600160e01b03198216635b5e139f60e01b145b80610e1f57506301ffc9a760e01b6001600160e01b0319831614610e1f565b80806142ee57506001600160a01b03821615155b156143b05760006142fe84613b8e565b90506001600160a01b0383161580159061432a5750826001600160a01b0316816001600160a01b031614155b801561433d575061433b81846139a4565b155b156143665760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610f3a565b81156143ae5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6143ea83836145e9565b611ef260008484846140a9565b60008061440585858561464e565b90506001600160a01b0381166144625761445d84600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b614485565b846001600160a01b0316816001600160a01b031614614485576144858185614747565b6001600160a01b0385166144a15761449c846147d8565b613f00565b846001600160a01b0316816001600160a01b031614613f0057613f008585614887565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106145035772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061452f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061454d57662386f26fc10000830492506010015b6305f5e1008310614565576305f5e100830492506008015b612710831061457957612710830492506004015b6064831061458b576064830492506002015b600a8310610e1f5760010192915050565b600081815b84518110156145e1576145cd828683815181106145c0576145c06152fc565b60200260200101516148d7565b9150806145d9816152b4565b9150506145a1565b509392505050565b6001600160a01b03821661461357604051633250574960e11b815260006004820152602401610f3a565b600061462183836000613ef3565b90506001600160a01b03811615611ef2576040516339e3563760e11b815260006004820152602401610f3a565b6000828152600260205260408120546001600160a01b039081169083161561467b5761467b818486614903565b6001600160a01b038116156146b9576146986000856000806142da565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156146e8576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b600061475283612382565b6000838152600760205260409020549091508082146147a5576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906147ea906001906152e9565b60008381526009602052604081205460088054939450909284908110614812576148126152fc565b906000526020600020015490508060088381548110614833576148336152fc565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061486b5761486b6153c8565b6001900381819060005260206000200160009055905550505050565b6000600161489484612382565b61489e91906152e9565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60008183106148f3576000828152602084905260409020612b14565b5060009182526020526040902090565b61490e838383614967565b611ef2576001600160a01b03831661493c57604051637e27328960e01b815260048101829052602401610f3a565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610f3a565b60006001600160a01b03831615801590613f005750826001600160a01b0316846001600160a01b031614806149a157506149a184846139a4565b80613f005750506000908152600460205260409020546001600160a01b03908116911614919050565b6001600160e01b031981168114613b3757600080fd5b6000602082840312156149f257600080fd5b8135612b14816149ca565b60005b83811015614a18578181015183820152602001614a00565b50506000910152565b60008151808452614a398160208601602086016149fd565b601f01601f19169290920160200192915050565b602081526000612b146020830184614a21565b600060208284031215614a7257600080fd5b5035919050565b80356001600160a01b0381168114614a9057600080fd5b919050565b60008060408385031215614aa857600080fd5b614ab183614a79565b946020939093013593505050565b8015158114613b3757600080fd5b8035614a9081614abf565b60008083601f840112614aea57600080fd5b50813567ffffffffffffffff811115614b0257600080fd5b602083019150836020828501011115614b1a57600080fd5b9250929050565b60008060008060608587031215614b3757600080fd5b843593506020850135614b4981614abf565b9250604085013567ffffffffffffffff811115614b6557600080fd5b614b7187828801614ad8565b95989497509550505050565b600080600080600060a08688031215614b9557600080fd5b8535614ba081614abf565b94506020860135614bb081614abf565b93506040860135614bc081614abf565b92506060860135614bd081614abf565b91506080860135614be081614abf565b809150509295509295909350565b600060208284031215614c0057600080fd5b612b1482614a79565b600080600060608486031215614c1e57600080fd5b614c2784614a79565b9250614c3560208501614a79565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614c6c57600080fd5b813567ffffffffffffffff80821115614c8757614c87614c45565b604051601f8301601f19908116603f01168101908282118183101715614caf57614caf614c45565b81604052838152866020858801011115614cc857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215614cfa57600080fd5b813567ffffffffffffffff811115614d1157600080fd5b613f0084828501614c5b565b60008060408385031215614d3057600080fd5b50508035926020909101359150565b600080600060608486031215614d5457600080fd5b83359250602084013591506040840135614d6d81614abf565b809150509250925092565b60008060408385031215614d8b57600080fd5b82359150602083013567ffffffffffffffff811115614da957600080fd5b614db585828601614c5b565b9150509250929050565b60008060408385031215614dd257600080fd5b614ddb83614a79565b91506020830135614deb81614abf565b809150509250929050565b60008060008060808587031215614e0c57600080fd5b614e1585614a79565b9350614e2360208601614a79565b925060408501359150606085013567ffffffffffffffff811115614e4657600080fd5b614e5287828801614c5b565b91505092959194509250565b600060208284031215614e7057600080fd5b8135612b1481614abf565b600080600080600060a08688031215614e9357600080fd5b85359450602086013593506040860135925060608601359150614eb860808701614a79565b90509295509295909350565b60006101408c835260018060a01b03808d166020850152808c166040850152508960608401528860808401528760a084015286151560c08401528560e084015280610100840152614f1781840186614a21565b915050826101208301529b9a5050505050505050505050565b60008060008060008060808789031215614f4957600080fd5b863567ffffffffffffffff80821115614f6157600080fd5b818901915089601f830112614f7557600080fd5b813581811115614f8457600080fd5b8a60208260051b8501011115614f9957600080fd5b602083810199509097508901359550614fb460408a01614acd565b94506060890135915080821115614fca57600080fd5b50614fd789828a01614ad8565b979a9699509497509295939492505050565b60008060408385031215614ffc57600080fd5b61500583614a79565b915061501360208401614a79565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561505457835183529284019291840191600101615038565b50909695505050505050565b6000806000806080858703121561507657600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c908216806150a657607f821691505b6020821081036150c657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e1f57610e1f6150cc565b634e487b7160e01b600052601260045260246000fd5b60008261511a5761511a6150f5565b500490565b8082028115828204841417610e1f57610e1f6150cc565b60006020828403121561514857600080fd5b5051919050565b6020808252600e908201526d4e6f7420656e6f7567682066656560901b604082015260600190565b60006020828403121561518957600080fd5b8151612b1481614abf565b82848237909101908152602001919050565b601f821115611ef257600081815260208120601f850160051c810160208610156151cd5750805b601f850160051c820191505b818110156151ec578281556001016151d9565b505050505050565b815167ffffffffffffffff81111561520e5761520e614c45565b6152228161521c8454615092565b846151a6565b602080601f831160018114615257576000841561523f5750858301515b600019600386901b1c1916600185901b1785556151ec565b600085815260208120601f198616915b8281101561528657888601518255948401946001909101908401615267565b50858210156152a45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016152c6576152c66150cc565b5060010190565b600082516152df8184602087016149fd565b9190910192915050565b81810381811115610e1f57610e1f6150cc565b634e487b7160e01b600052603260045260246000fd5b600083516153248184602088016149fd565b8351908301906153388183602088016149fd565b01949350505050565b828152604060208201526000613f006040830184614a21565b600082615369576153696150f5565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906153a190830184614a21565b9695505050505050565b6000602082840312156153bd57600080fd5b8151612b14816149ca565b634e487b7160e01b600052603160045260246000fdfea26469706673582212205ff048ac383ba0e3403c46a85a7fbfcbfa8b6f9d744a24256b763e2e88f85e9064736f6c6343000814003300000000000000000000000015c841043e13ffaa9a99fabea236d40f4561562300000000000000000000000015c841043e13ffaa9a99fabea236d40f456156230000000000000000000000007aaea48335309cfee9ba5170f1daf18a55bd41f50000000000000000000000007aaea48335309cfee9ba5170f1daf18a55bd41f50000000000000000000000007aaea48335309cfee9ba5170f1daf18a55bd41f50000000000000000000000000000000000000000000000000000000065d237900000000000000000000000000000000000000000000000000000000065d0f420000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003d68747470733a2f2f6275636b65742d30707773696d2e73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f63686c6f6563656f2f000000