[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "bailOutMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "calculateClaimableAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkPresaleActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "claimById", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "collection", "outputs": [ { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "firstRun", "type": "uint256" }, { "internalType": "uint256", "name": "maxFirstRun", "type": "uint256" }, { "internalType": "uint256", "name": "trueYield", "type": "uint256" }, { "internalType": "uint256", "name": "snowball", "type": "uint256" }, { "internalType": "uint256", "name": "maxSnowball", "type": "uint256" }, { "internalType": "uint256", "name": "maxDailySell", "type": "uint256" }, { "internalType": "uint256", "name": "currentSupply", "type": "uint256" }, { "internalType": "uint256", "name": "purchaseLimit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "corkAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimAddress", "type": "address" } ], "name": "getClaimFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getClaimFeeById", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimAddress", "type": "address" } ], "name": "getClaimableCork", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getClaimableCorkById", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCorkPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getNodeState", "outputs": [ { "components": [ { "internalType": "address", "name": "purchaser", "type": "address" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" }, { "internalType": "uint256", "name": "purchasedAt", "type": "uint256" }, { "internalType": "uint256", "name": "snowballAt", "type": "uint256" }, { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "claimedSnowball", "type": "uint256" }, { "internalType": "uint256", "name": "remainClaimedAmounts", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "internalType": "struct NodeERC1155.NodeStruct", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" } ], "name": "getOwnedNodeCountByType", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPresaleActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nodeType", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nodeState", "outputs": [ { "internalType": "address", "name": "purchaser", "type": "address" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" }, { "internalType": "uint256", "name": "purchasedAt", "type": "uint256" }, { "internalType": "uint256", "name": "snowballAt", "type": "uint256" }, { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "claimedSnowball", "type": "uint256" }, { "internalType": "uint256", "name": "remainClaimedAmounts", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownedNodes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pairAddress", "type": "address" }, { "internalType": "address", "name": "_corkAddress", "type": "address" }, { "internalType": "address", "name": "_swapAddress", "type": "address" } ], "name": "resetContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "sellableCork", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isPresaleActive", "type": "bool" } ], "name": "setPresaleActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "swapTokensForAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawCork", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526305f5e1006009556000600a5562015180600b55601e600c553480156200002a57600080fd5b5060408051808201909152601d81527f68747470733a2f2f6578616d706c652e636f6d2f7b69647d2e6a736f6e00000060208201526200006a816200008b565b506200007633620000a4565b600160045562000085620000f6565b620006cb565b8051620000a0906002906020840190620005e8565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516101a0810182526004610160820190815263426c756560e01b6101808301528152673782dace9d900000602080830191909152617530928201929092526216e36060608201526305f5e10060808201526205573060a08201526106a460c082015261c35060e082015262e4e1c061010082015260006101208201819052601e610140830152600d80546001810182559152815180519293600b9092027fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50192620001c89284920190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050600d6040518061016001604052806040518060400160405280600381526020016214995960ea1b8152508152602001678ac7230489e800008152602001613a988152602001621e848081526020016305f5e1008152602001620dbba08152602001610d058152602001620186a0815260200162989680815260200160008152602001601e81525090806001815401808255809150506001900390600052602060002090600b0201600090919091909150600082015181600001908051906020019062000300929190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050600d60405180610160016040528060405180604001604052806005815260200164426c61636b60d81b815250815260200168056bc75e2d6310000081526020016113888152602001622191c081526020016305f5e1008152602001620f42408152602001610d058152602001620186a08152602001624c4b40815260200160008152602001601e81525090806001815401808255809150506001900390600052602060002090600b020160009091909190915060008201518160000190805190602001906200043b929190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050600d6040518061016001604052806040518060400160405280600b81526020016a446f75626c65426c61636b60a81b8152508152602001683635c9adc5dea0000081526020016103e88152602001622191c081526020016305f5e1008152602001620f4240815260200161104781526020016201e8488152602001624c4b40815260200160008152602001600a81525090806001815401808255809150506001900390600052602060002090600b020160009091909190915060008201518160000190805190602001906200057c929190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050565b828054620005f6906200068e565b90600052602060002090601f0160209004810192826200061a576000855562000665565b82601f106200063557805160ff191683800117855562000665565b8280016001018555821562000665579182015b828111156200066557825182559160200191906001019062000648565b506200067392915062000677565b5090565b5b8082111562000673576000815560010162000678565b600181811c90821680620006a357607f821691505b60208210811415620006c557634e487b7160e01b600052602260045260246000fd5b50919050565b613c1f80620006db6000396000f3fe60806040526004361061022f5760003560e01c8063745a844a1161012e578063becf7741116100ab578063e985e9c51161006f578063e985e9c5146106b0578063ee98a528146106f9578063f077237714610719578063f242432a14610750578063f2fde38b1461077057600080fd5b8063becf77411461061d578063cc4da26d14610630578063cd84460214610650578063d0ebdbe714610670578063e7694bc61461069057600080fd5b80638da5cb5b116100f25780638da5cb5b1461056b5780638de45c1a146105895780639600ac5b146105a9578063a22cb465146105dd578063a8b08982146105fd57600080fd5b8063745a844a146104be57806377097fc8146104de57806380c0f19b146104fe57806380f6d7821461052b57806385adc8b01461054b57600080fd5b80633ccfd60b116101bc5780634e1273f4116101805780634e1273f41461043a5780634e71d92d1461046757806360d938dc1461046f578063627dd5ca14610489578063715018a6146104a957600080fd5b80633ccfd60b146103735780633f8121a21461038857806346be42fa146103a8578063481c6a75146103dd5780634d593bc51461041a57600080fd5b8063158894461161020357806315889446146102dc578063185aa308146102fe57806329df86c1146103135780632eb2c2d61461033357806332295c841461035357600080fd5b8062fdd58e1461023457806301ffc9a71461026757806306551ca5146102975780630e89341c146102af575b600080fd5b34801561024057600080fd5b5061025461024f36600461328d565b610790565b6040519081526020015b60405180910390f35b34801561027357600080fd5b506102876102823660046133c2565b610827565b604051901515815260200161025e565b3480156102a357600080fd5b5060055460ff16610287565b3480156102bb57600080fd5b506102cf6102ca36600461344c565b610879565b60405161025e9190613712565b3480156102e857600080fd5b506102fc6102f7366004613104565b61090d565b005b34801561030a57600080fd5b506102546109bd565b34801561031f57600080fd5b506102fc61032e3660046134ca565b610a7f565b34801561033f57600080fd5b506102fc61034e366004613147565b610e2c565b34801561035f57600080fd5b5061025461036e3660046130b6565b610ec3565b34801561037f57600080fd5b506102fc610f71565b34801561039457600080fd5b506102fc6103a3366004613388565b6110a7565b3480156103b457600080fd5b506103c86103c336600461344c565b6110e4565b6040805192835260208301919091520161025e565b3480156103e957600080fd5b506005546104029061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b34801561042657600080fd5b506102fc61043536600461344c565b6112c1565b34801561044657600080fd5b5061045a6104553660046132b7565b611397565b60405161025e91906136ab565b6102fc6114c1565b34801561047b57600080fd5b506005546102879060ff1681565b34801561049557600080fd5b506102546104a436600461328d565b6116f6565b3480156104b557600080fd5b506102fc611727565b3480156104ca57600080fd5b506102fc6104d936600461344c565b61175d565b3480156104ea57600080fd5b506102fc6104f936600461347e565b6117c7565b34801561050a57600080fd5b5061051e61051936600461344c565b611d12565b60405161025e9190613959565b34801561053757600080fd5b50600854610402906001600160a01b031681565b34801561055757600080fd5b50600754610402906001600160a01b031681565b34801561057757600080fd5b506003546001600160a01b0316610402565b34801561059557600080fd5b506102546105a436600461344c565b611e6c565b3480156105b557600080fd5b506105c96105c436600461344c565b611eb0565b60405161025e989796959493929190613656565b3480156105e957600080fd5b506102fc6105f8366004613256565b611f89565b34801561060957600080fd5b50600654610402906001600160a01b031681565b6102fc61062b36600461344c565b611f98565b34801561063c57600080fd5b5061025461064b3660046130b6565b61218a565b34801561065c57600080fd5b5061025461066b36600461344c565b612294565b34801561067c57600080fd5b506102fc61068b3660046130b6565b6122c4565b34801561069c57600080fd5b506102546106ab3660046130b6565b612316565b3480156106bc57600080fd5b506102876106cb3660046130d1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b34801561070557600080fd5b5061025461071436600461328d565b612322565b34801561072557600080fd5b5061073961073436600461344c565b6123bc565b60405161025e9b9a99989796959493929190613725565b34801561075c57600080fd5b506102fc61076b3660046131f1565b6124ae565b34801561077c57600080fd5b506102fc61078b3660046130b6565b612535565b60006001600160a01b0383166108015760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061085857506001600160e01b031982166303a24d0760e21b145b8061087357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606002805461088890613a5a565b80601f01602080910402602001604051908101604052809291908181526020018280546108b490613a5a565b80156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b50505050509050919050565b6003546001600160a01b031633146109375760405162461bcd60e51b81526004016107f8906138a9565b6001600160a01b0383161561096257600680546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0382161561098d57600780546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038116156109b857600880546001600160a01b0319166001600160a01b0383161790555b505050565b6000806000600660009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4891906133fc565b506001600160701b0391821693501690506000610a7783610a7184670de0b6b3a7640000613a24565b906125d0565b949350505050565b6000858152600e60205260409020546001600160a01b03163314610ae55760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c79206e6f6465206f776e65722063616e2075736520697400000000000060448201526064016107f8565b6000610af086611e6c565b9050600084600d8781548110610b0857610b08613af3565b90600052602060002090600b020160010154610b249190613a24565b905080821015610b805760405162461bcd60e51b815260206004820152602160248201527f636c61696d61626c6520636f726b206973206c657373207468616e20707269636044820152606560f81b60648201526084016107f8565b600d8681548110610b9357610b93613af3565b90600052602060002090600b020160020154600d8781548110610bb857610bb8613af3565b90600052602060002090600b0201600901541115610be85760405162461bcd60e51b81526004016107f8906138de565b600d8681548110610bfb57610bfb613af3565b90600052602060002090600b0201600a0154610c173388612322565b10610c645760405162461bcd60e51b815260206004820181905260248201527f6d696e746564206e6f6465732065786365656420616d6f756e74206c696d697460448201526064016107f8565b6000610c6f886110e4565b60008a8152600e6020526040902042600390910155915050808211610cb85780821015610cb357610ca08282613a43565b6000898152600e60205260409020600601555b610cd5565b610cc28183613a43565b6000898152600e60205260409020600401555b6000888152600e602052604081206005018054839290610cf69084906139ea565b90915550600090505b86811015610e21576000610d116125e3565b9050610d1b6125f9565b6000818152600e6020526040902080546001600160a01b03191633178155600181018a905542600282018190556003820155610d5b906007018888612eb6565b50600d8981548110610d6f57610d6f613af3565b6000918252602082206009600b9092020101805491610d8d83613ac2565b90915550508515610dd357807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8888604051610dca9291906136e3565b60405180910390a25b610def338a600160405180602001604052806000815250612610565b336000908152600f60209081526040822080546001810182559083529120015580610e1981613ac2565b915050610cff565b505050505050505050565b6001600160a01b038516331480610e485750610e4885336106cb565b610eaf5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b60648201526084016107f8565b610ebc858585858561271a565b5050505050565b60008060005b600d54811015610f6a576000610edf8583610790565b1115610f5857610f37600d8281548110610efb57610efb613af3565b90600052602060002090600b020160080154600d8381548110610f2057610f20613af3565b90600052602060002090600b0201600101546128ef565b610f418583610790565b610f4b9190613a24565b610f5590836139ea565b91505b80610f6281613ac2565b915050610ec9565b5092915050565b60026004541415610f945760405162461bcd60e51b81526004016107f890613922565b600260045560055461010090046001600160a01b03163314610ff85760405162461bcd60e51b815260206004820152601e60248201527f6f6e6c79206d616e616765722063616e2063616c6c207769746864726177000060448201526064016107f8565b60055460405147916000916101009091046001600160a01b031690839060006040518083038185875af1925050503d8060008114611052576040519150601f19603f3d011682016040523d82523d6000602084013e611057565b606091505b505090508061109e5760405162461bcd60e51b815260206004820152601360248201527208cc2d2d8cac840e8de40e6cadcc84082ac82b606b1b60448201526064016107f8565b50506001600455565b6003546001600160a01b031633146110d15760405162461bcd60e51b81526004016107f8906138a9565b6005805460ff1916911515919091179055565b6000818152600e602052604081205481906001600160a01b031661113a5760405162461bcd60e51b815260206004820152600d60248201526c139bc81b9bd91948195e1a5cdd609a1b60448201526064016107f8565b6000838152600e6020526040812060010154600d80549192918390811061116357611163613af3565b90600052602060002090600b020160010154905060006111a1600b54600e60008981526020019081526020016000206002015442610a719190613a43565b600b546000888152600e6020526040812060030154929350916111c99190610a719042613a43565b90506000611245600d86815481106111e3576111e3613af3565b90600052602060002090600b020160030154600d878154811061120857611208613af3565b90600052602060002090600b020160050154600d888154811061122d5761122d613af3565b90600052602060002090600b02016004015486612903565b9050600061129c600d878154811061125f5761125f613af3565b90600052602060002090600b020160060154600d888154811061128457611284613af3565b90600052602060002090600b02016007015485612947565b90506112a882866128ef565b6112b282876128ef565b97509750505050505050915091565b600260045414156112e45760405162461bcd60e51b81526004016107f890613922565b60026004556003546001600160a01b031633146113135760405162461bcd60e51b81526004016107f8906138a9565b60075460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e91906133a5565b606081518351146113fc5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107f8565b6000835167ffffffffffffffff81111561141857611418613b09565b604051908082528060200260200182016040528015611441578160200160208202803683370190505b50905060005b84518110156114b95761148c85828151811061146557611465613af3565b602002602001015185838151811061147f5761147f613af3565b6020026020010151610790565b82828151811061149e5761149e613af3565b60209081029190910101526114b281613ac2565b9050611447565b509392505050565b600260045414156114e45760405162461bcd60e51b81526004016107f890613922565b6002600455336000908152600f60205260409020546115365760405162461bcd60e51b815260206004820152600e60248201526d4e6f20686176652061206e6f646560901b60448201526064016107f8565b3461154033612316565b111561157e5760405162461bcd60e51b815260206004820152600d60248201526c139bc8199959481a5cc81cd95d609a1b60448201526064016107f8565b6007546001600160a01b03166000805b336000908152600f602052604090205481101561166b57336000908152600f602052604081208054839081106115c6576115c6613af3565b906000526020600020015490506000806115df836110e4565b6000858152600e602052604081204260038201556005018054939550919350839261160b9084906139ea565b90915550506000838152600e602052604090206004015461162c83836139ea565b6116369190613a43565b61164090866139ea565b6000938452600e6020526040909320600401919091555091508061166381613ac2565b91505061158e565b5060405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b1580156116b457600080fd5b505af11580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec91906133a5565b5050600160045550565b600f602052816000526040600020818154811061171257600080fd5b90600052602060002001600091509150505481565b6003546001600160a01b031633146117515760405162461bcd60e51b81526004016107f8906138a9565b61175b60006129e6565b565b600854604051633bca3f6760e21b8152336004820152602481018390526001600160a01b0390911690819063ef28fd9c90604401600060405180830381600087803b1580156117ab57600080fd5b505af11580156117bf573d6000803e3d6000fd5b505050505050565b600d83815481106117da576117da613af3565b90600052602060002090600b020160020154600d84815481106117ff576117ff613af3565b90600052602060002090600b020160090154111561182f5760405162461bcd60e51b81526004016107f8906138de565b600d838154811061184257611842613af3565b90600052602060002090600b0201600a015461185e3385612322565b106118ab5760405162461bcd60e51b815260206004820181905260248201527f6d696e746564206e6f6465732065786365656420616d6f756e74206c696d697460448201526064016107f8565b6007546005546001600160a01b039091169060ff161561199e5760055460ff16801561197d57506002600d85815481106118e7576118e7613af3565b90600052602060002090600b0201600101546119039190613a02565b6040516370a0823160e01b81523360048201526001600160a01b038316906370a082319060240160206040518083038186803b15801561194257600080fd5b505afa158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a9190613465565b10155b6119995760405162461bcd60e51b81526004016107f89061385f565b611a69565b60055460ff16158015611a4d5750600d84815481106119bf576119bf613af3565b600091825260209091206001600b9092020101546040516370a0823160e01b81523360048201526001600160a01b038316906370a082319060240160206040518083038186803b158015611a1257600080fd5b505afa158015611a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4a9190613465565b10155b611a695760405162461bcd60e51b81526004016107f89061385f565b6000611a736125e3565b9050611a7d6125f9565b6000818152600e6020526040902080546001600160a01b031916331781556001810186905542600282018190556003820155611abd906007018585612eb6565b50600d8581548110611ad157611ad1613af3565b6000918252602082206009600b9092020101805491611aef83613ac2565b909155505060055460ff1615611bce57816001600160a01b03166323b872dd33306002600d8a81548110611b2557611b25613af3565b90600052602060002090600b020160010154611b419190613a02565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015611b9057600080fd5b505af1158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc891906133a5565b50611c8f565b816001600160a01b03166323b872dd3330600d8981548110611bf257611bf2613af3565b600091825260209091206001600b9092020101546040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015611c5557600080fd5b505af1158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d91906133a5565b505b8215611cd057807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8585604051611cc79291906136e3565b60405180910390a25b611cec3386600160405180602001604052806000815250612610565b336000908152600f60209081526040822080546001810182559083529120015550505050565b611d6360405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b6000828152600e602090815260409182902082516101008101845281546001600160a01b031681526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201805491929160e084019190611de390613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e0f90613a5a565b8015611e5c5780601f10611e3157610100808354040283529160200191611e5c565b820191906000526020600020905b815481529060010190602001808311611e3f57829003601f168201915b5050505050815250509050919050565b6000806000611e7a846110e4565b6000868152600e602052604081206004015492945090925090611e9d84846139ea565b611ea79190613a43565b95945050505050565b600e60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880180546001600160a01b039098169896979596949593949293919291611f0690613a5a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3290613a5a565b8015611f7f5780601f10611f5457610100808354040283529160200191611f7f565b820191906000526020600020905b815481529060010190602001808311611f6257829003601f168201915b5050505050905088565b611f94338383612a38565b5050565b60026004541415611fbb5760405162461bcd60e51b81526004016107f890613922565b60026004556000818152600e60205260409020546001600160a01b031633146120265760405162461bcd60e51b815260206004820152601760248201527f6f6e6c792070756368617365722063616e20636c61696d00000000000000000060448201526064016107f8565b3461203082612294565b11156120725760405162461bcd60e51b81526020600482015260116024820152704e6f2073657420656e6f7567682066656560781b60448201526064016107f8565b6007546001600160a01b031660008061208a846110e4565b6000868152600e60205260408120426003820155600501805493955091935083926120b69084906139ea565b90915550506000848152600e60205260408120600401546120d784846139ea565b6120e19190613a43565b6000868152600e6020526040908190206004908101869055905163a9059cbb60e01b81523391810191909152602481018290529091506001600160a01b0385169063a9059cbb90604401602060405180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d91906133a5565b5050600160045550505050565b6001600160a01b0381166000908152600f60205260408120546121e05760405162461bcd60e51b815260206004820152600e60248201526d4e6f20686176652061206e6f646560901b60448201526064016107f8565b6000805b6001600160a01b0384166000908152600f6020526040902054811015610f6a576001600160a01b0384166000908152600f6020526040812080548390811061222e5761222e613af3565b90600052602060002001549050600080612247836110e4565b6000858152600e6020526040902060040154919350915061226883836139ea565b6122729190613a43565b61227c90866139ea565b9450505050808061228c90613ac2565b9150506121e4565b6000806122a083611e6c565b905060006122ac6109bd565b9050610a77670de0b6b3a7640000610a718385613a24565b6003546001600160a01b031633146122ee5760405162461bcd60e51b81526004016107f8906138a9565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000806122a08361218a565b60008060005b6001600160a01b0385166000908152600f60205260409020548110156114b9576001600160a01b0385166000908152600f6020526040812080548692600e9290918590811061237957612379613af3565b906000526020600020015481526020019081526020016000206001015414156123aa57816123a681613ac2565b9250505b806123b481613ac2565b915050612328565b600d81815481106123cc57600080fd5b90600052602060002090600b02016000915090508060000180546123ef90613a5a565b80601f016020809104026020016040519081016040528092919081815260200182805461241b90613a5a565b80156124685780601f1061243d57610100808354040283529160200191612468565b820191906000526020600020905b81548152906001019060200180831161244b57829003601f168201915b50505050509080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a015490508b565b6001600160a01b0385163314806124ca57506124ca85336106cb565b6125285760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016107f8565b610ebc8585858585612b19565b6003546001600160a01b0316331461255f5760405162461bcd60e51b81526004016107f8906138a9565b6001600160a01b0381166125c45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f8565b6125cd816129e6565b50565b60006125dc8284613a02565b9392505050565b6000600a5460016125f491906139ea565b905090565b600a805490600061260983613ac2565b9190505550565b6001600160a01b0384166126705760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107f8565b3361268a8160008761268188612c36565b610ebc88612c36565b6000848152602081815260408083206001600160a01b0389168452909152812080548592906126ba9084906139ea565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610ebc81600087878787612c81565b815183511461277c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107f8565b6001600160a01b0384166127a25760405162461bcd60e51b81526004016107f8906137d0565b3360005b84518110156128895760008582815181106127c3576127c3613af3565b6020026020010151905060008583815181106127e1576127e1613af3565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156128315760405162461bcd60e51b81526004016107f890613815565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061286e9084906139ea565b925050819055505050508061288290613ac2565b90506127a6565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516128d99291906136be565b60405180910390a46117bf818787878787612dec565b60006125dc6009548385610a719190613a24565b6000600c5482111561293d576000600c548361291f9190613a43565b905061292b8582613a24565b61293590856139ea565b915050610a77565b611ea78583613a24565b6000600c5482101561298f576000805b83811161297c5761296881836139ea565b91508061297481613ac2565b915050612957565b506129878582613a24565b9150506125dc565b6000805b600c5481116129ba576129a681836139ea565b9150806129b281613ac2565b915050612993565b50600c546129c89084613a43565b6129d29085613a24565b6129dc8683613a24565b61298791906139ea565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415612aac5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107f8565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416612b3f5760405162461bcd60e51b81526004016107f8906137d0565b33612b4f81878761268188612c36565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015612b905760405162461bcd60e51b81526004016107f890613815565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290612bcd9084906139ea565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612c2d828888888888612c81565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612c7057612c70613af3565b602090810291909101015292915050565b6001600160a01b0384163b156117bf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612cc59089908990889088908890600401613611565b602060405180830381600087803b158015612cdf57600080fd5b505af1925050508015612d0f575060408051601f3d908101601f19168201909252612d0c918101906133df565b60015b612dbc57612d1b613b1f565b806308c379a01415612d555750612d30613b3b565b80612d3b5750612d57565b8060405162461bcd60e51b81526004016107f89190613712565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107f8565b6001600160e01b0319811663f23a6e6160e01b14612c2d5760405162461bcd60e51b81526004016107f890613788565b6001600160a01b0384163b156117bf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612e3090899089908890889088906004016135b3565b602060405180830381600087803b158015612e4a57600080fd5b505af1925050508015612e7a575060408051601f3d908101601f19168201909252612e77918101906133df565b60015b612e8657612d1b613b1f565b6001600160e01b0319811663bc197c8160e01b14612c2d5760405162461bcd60e51b81526004016107f890613788565b828054612ec290613a5a565b90600052602060002090601f016020900481019282612ee45760008555612f2a565b82601f10612efd5782800160ff19823516178555612f2a565b82800160010185558215612f2a579182015b82811115612f2a578235825591602001919060010190612f0f565b50612f36929150612f3a565b5090565b5b80821115612f365760008155600101612f3b565b80356001600160a01b0381168114612f6657600080fd5b919050565b600082601f830112612f7c57600080fd5b81356020612f89826139c6565b604051612f968282613a95565b8381528281019150858301600585901b87018401881015612fb657600080fd5b60005b85811015612fd557813584529284019290840190600101612fb9565b5090979650505050505050565b600082601f830112612ff357600080fd5b813567ffffffffffffffff81111561300d5761300d613b09565b604051613024601f8301601f191660200182613a95565b81815284602083860101111561303957600080fd5b816020850160208301376000918101602001919091529392505050565b60008083601f84011261306857600080fd5b50813567ffffffffffffffff81111561308057600080fd5b60208301915083602082850101111561309857600080fd5b9250929050565b80516001600160701b0381168114612f6657600080fd5b6000602082840312156130c857600080fd5b6125dc82612f4f565b600080604083850312156130e457600080fd5b6130ed83612f4f565b91506130fb60208401612f4f565b90509250929050565b60008060006060848603121561311957600080fd5b61312284612f4f565b925061313060208501612f4f565b915061313e60408501612f4f565b90509250925092565b600080600080600060a0868803121561315f57600080fd5b61316886612f4f565b945061317660208701612f4f565b9350604086013567ffffffffffffffff8082111561319357600080fd5b61319f89838a01612f6b565b945060608801359150808211156131b557600080fd5b6131c189838a01612f6b565b935060808801359150808211156131d757600080fd5b506131e488828901612fe2565b9150509295509295909350565b600080600080600060a0868803121561320957600080fd5b61321286612f4f565b945061322060208701612f4f565b93506040860135925060608601359150608086013567ffffffffffffffff81111561324a57600080fd5b6131e488828901612fe2565b6000806040838503121561326957600080fd5b61327283612f4f565b9150602083013561328281613bc5565b809150509250929050565b600080604083850312156132a057600080fd5b6132a983612f4f565b946020939093013593505050565b600080604083850312156132ca57600080fd5b823567ffffffffffffffff808211156132e257600080fd5b818501915085601f8301126132f657600080fd5b81356020613303826139c6565b6040516133108282613a95565b8381528281019150858301600585901b870184018b101561333057600080fd5b600096505b8487101561335a5761334681612f4f565b835260019690960195918301918301613335565b509650508601359250508082111561337157600080fd5b5061337e85828601612f6b565b9150509250929050565b60006020828403121561339a57600080fd5b81356125dc81613bc5565b6000602082840312156133b757600080fd5b81516125dc81613bc5565b6000602082840312156133d457600080fd5b81356125dc81613bd3565b6000602082840312156133f157600080fd5b81516125dc81613bd3565b60008060006060848603121561341157600080fd5b61341a8461309f565b92506134286020850161309f565b9150604084015163ffffffff8116811461344157600080fd5b809150509250925092565b60006020828403121561345e57600080fd5b5035919050565b60006020828403121561347757600080fd5b5051919050565b60008060006040848603121561349357600080fd5b83359250602084013567ffffffffffffffff8111156134b157600080fd5b6134bd86828701613056565b9497909650939450505050565b6000806000806000608086880312156134e257600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff81111561350e57600080fd5b61351a88828901613056565b969995985093965092949392505050565b600081518084526020808501945080840160005b8381101561355b5781518752958201959082019060010161353f565b509495945050505050565b6000815180845260005b8181101561358c57602081850181015186830182015201613570565b8181111561359e576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0386811682528516602082015260a0604082018190526000906135df9083018661352b565b82810360608401526135f1818661352b565b905082810360808401526136058185613566565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061364b90830184613566565b979650505050505050565b600061010060018060a01b038b1683528960208401528860408401528760608401528660808401528560a08401528460c08401528060e084015261369c81840185613566565b9b9a5050505050505050505050565b6020815260006125dc602083018461352b565b6040815260006136d1604083018561352b565b8281036020840152611ea7818561352b565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6020815260006125dc6020830184613566565b60006101608083526137398184018f613566565b602084019d909d52505060408101999099526060890197909752608088019590955260a087019390935260c086019190915260e085015261010084015261012083015261014090910152919050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6020808252602a908201527f726563656976657227732062616c616e6365206973206c657373207468616e206040820152696e6f646520707269636560b01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f616c6c206f66207468697320636f6c6c656374696f6e20617265207075726368604082015263185cd95960e21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020815260018060a01b038251166020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e0830151610100808185015250610a77610120840182613566565b600067ffffffffffffffff8211156139e0576139e0613b09565b5060051b60200190565b600082198211156139fd576139fd613add565b500190565b600082613a1f57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613a3e57613a3e613add565b500290565b600082821015613a5557613a55613add565b500390565b600181811c90821680613a6e57607f821691505b60208210811415613a8f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff81118282101715613abb57613abb613b09565b6040525050565b6000600019821415613ad657613ad6613add565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d1115613b385760046000803e5060005160e01c5b90565b600060443d1015613b495790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715613b7957505050505090565b8285019150815181811115613b915750505050505090565b843d8701016020828501011115613bab5750505050505090565b613bba60208286010187613a95565b509095945050505050565b80151581146125cd57600080fd5b6001600160e01b0319811681146125cd57600080fdfea26469706673582212204c0f6c6699d3b56ece5e7767a21229b66875d2565a53f7ac0287a7642435bbc064736f6c63430008070033