62 txs
220 calls
constructor
constructor(address nftAddress, address usdt, address initialOwner)
functions
commission
viewfunction commission() view returns (uint256)
findOfferIndex
viewfunction findOfferIndex(uint256 tokenId, address _owner) view returns (uint256)
getNFTInfo
viewfunction getNFTInfo(uint256 tokenId, uint256 index) view returns (tuple)
getNFTs
viewfunction getNFTs(uint256 _id, address _ownerOfNFT) view returns (uint256, tuple[])
getOffers
viewfunction getOffers() view returns (tuple[])
getOwnerNFTs
viewfunction getOwnerNFTs(address _owner) view returns (tuple[])
NFT
viewfunction NFT() view returns (address)
nftDATA
viewfunction nftDATA(uint256, uint256) view returns (uint256 tokenId, address ownerOfNFT, bool isForSale, uint256 PriceForAnNFT, uint256 amountToSell)
owner
viewfunction owner() view returns (address)
Price
viewfunction Price() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenIDsForSelling
viewfunction tokenIDsForSelling(uint256) view returns (uint256)
tokenIsForSale
viewfunction tokenIsForSale(uint256) view returns (bool)
USDT
viewfunction USDT() view returns (address)
buyNFT
nonpayablefunction buyNFT(address from, uint256 tokenId, uint256 amountToBuy, address _ownerOfNFT) returns (string informationAboutNFT, uint256 remainingNFTamount)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
removeFromSale
nonpayablefunction removeFromSale(address from, uint256 tokenId)
renounceOwnership
nonpayablefunction renounceOwnership()
setOffer
nonpayablefunction setOffer(address from, uint256 tokenId, uint256 _price, uint256 _amountToSell, bytes data)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateOffer
nonpayablefunction updateOffer(address from, uint256 tokenId, uint256 additionalAmount, bytes data)
withdrawUSDT
nonpayablefunction withdrawUSDT()
events
NFTBought
event NFTBought(uint256 tokenId, address indexed buyer, address indexed seller, uint256 amount)
OfferRemoved
event OfferRemoved(uint256 tokenId, address indexed seller)
OfferSet
event OfferSet(uint256 tokenId, address indexed seller, uint256 price, uint256 amount)
OfferUpdated
event OfferUpdated(uint256 tokenId, address indexed seller, uint256 newPrice, uint256 newAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
USDTWithdrawn
event USDTWithdrawn(address indexed owner, uint256 amount)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60806040523480156200001157600080fd5b50604051620045d9380380620045d9833981810160405281019062000037919062000280565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a49190620002ed565b60405180910390fd5b620000be816200015260201b60201c565b5082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004819055505050506200030a565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000248826200021b565b9050919050565b6200025a816200023b565b81146200026657600080fd5b50565b6000815190506200027a816200024f565b92915050565b6000806000606084860312156200029c576200029b62000216565b5b6000620002ac8682870162000269565b9350506020620002bf8682870162000269565b9250506040620002d28682870162000269565b9150509250925092565b620002e7816200023b565b82525050565b6000602082019050620003046000830184620002dc565b92915050565b6142bf806200031a6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80637edb992c116100c3578063c54e44eb1161007c578063c54e44eb146103cc578063d5dff21b146103ea578063e148919114610406578063f23a6e6114610424578063f2fde38b14610454578063ffe3286d146104705761014d565b80637edb992c146102d057806381d67ff3146103005780638c017572146103305780638da5cb5b146103605780639dfde2011461037e578063bc197c811461039c5761014d565b8063362e496b11610115578063362e496b1461021c5780633ee992ee146102265780635fb9f2921461024457806369f8893714610278578063715018a6146102a85780637c0b8de2146102b25761014d565b806301f4ac7b1461015257806301ffc9a71461016e5780630a525e991461019e57806329404979146101cf5780632d3ec206146101eb575b600080fd5b61016c60048036038101906101679190612d26565b6104a0565b005b61018860048036038101906101839190612e15565b6107ec565b6040516101959190612e5d565b60405180910390f35b6101b860048036038101906101b39190612e78565b610866565b6040516101c692919061300b565b60405180910390f35b6101e960048036038101906101e4919061303b565b610bb1565b005b610205600480360381019061020091906130be565b610ef2565b6040516102139291906131a4565b60405180910390f35b61022461184e565b005b61022e611a2b565b60405161023b91906131d4565b60405180910390f35b61025e600480360381019061025991906131f6565b611c6c565b60405161026f959493929190613245565b60405180910390f35b610292600480360381019061028d9190613298565b611cec565b60405161029f91906132c5565b60405180910390f35b6102b0611d10565b005b6102ba611d24565b6040516102c7919061333f565b60405180910390f35b6102ea60048036038101906102e591906131f6565b611d4a565b6040516102f791906133c2565b60405180910390f35b61031a60048036038101906103159190612e78565b611e7f565b60405161032791906132c5565b60405180910390f35b61034a600480360381019061034591906133dd565b611f75565b60405161035791906134e8565b60405180910390f35b610368612225565b604051610375919061350a565b60405180910390f35b61038661224e565b60405161039391906132c5565b60405180910390f35b6103b660048036038101906103b191906135ed565b612254565b6040516103c391906136cb565b60405180910390f35b6103d4612269565b6040516103e19190613707565b60405180910390f35b61040460048036038101906103ff9190613722565b61228f565b005b61040e61278e565b60405161041b91906132c5565b60405180910390f35b61043e60048036038101906104399190613762565b612794565b60405161044b91906136cb565b60405180910390f35b61046e600480360381019061046991906133dd565b6127a9565b005b61048a60048036038101906104859190613298565b61282f565b6040516104979190612e5d565b60405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690613845565b60405180910390fd5b600061051b8587611e7f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461057f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610576906138d7565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a87308887876040518663ffffffff1660e01b81526004016105e295949392919061394c565b600060405180830381600087803b1580156105fc57600080fd5b505af1158015610610573d6000803e3d6000fd5b50505050600760008681526020019081526020016000206040518060a001604052808781526020018873ffffffffffffffffffffffffffffffffffffffff1681526020016001151581526020018681526020018581525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015550506006600086815260200190815260200160002060009054906101000a900460ff166107925760016006600087815260200190815260200160002060006101000a81548160ff02191690831515021790555060058590806001815401808255809150506001900390600052602060002001600090919091909150555b8573ffffffffffffffffffffffffffffffffffffffff167fe2303cc0a8152a5d835c12ed5770e8924694b052ca6e1daa8386be29ccb2134d8686866040516107dc939291906139a6565b60405180910390a2505050505050565b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061085f575061085e8261284f565b5b9050919050565b6000606060008060058054905067ffffffffffffffff81111561088c5761088b612bfb565b5b6040519080825280602002602001820160405280156108c557816020015b6108b2612ad7565b8152602001906001900390816108aa5790505b50905060005b6007600088815260200190815260200160002080549050811015610aff5760006007600089815260200190815260200160002082815481106109105761090f6139dd565b5b90600052602060002090600402016040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff16151515158152602001600282015481526020016003820154815250509050806020015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610aeb57600760008981526020019081526020016000208281548110610a1657610a156139dd565b5b90600052602060002090600402016040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481525050838581518110610ad157610ad06139dd565b5b60200260200101819052508380610ae790613a3b565b9450505b508080610af790613a3b565b9150506108cb565b506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e87896040518363ffffffff1660e01b8152600401610b5e929190613a83565b602060405180830381865afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190613ac1565b90508082945094505050509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790613845565b60405180910390fd5b6000610c2c8486611e7f565b90506007600085815260200190815260200160002080549050811115610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e90613b60565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16600760008681526020019081526020016000208281548110610cc357610cc26139dd565b5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290613bf2565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a86308787876040518663ffffffff1660e01b8152600401610dae95949392919061394c565b600060405180830381600087803b158015610dc857600080fd5b505af1158015610ddc573d6000803e3d6000fd5b5050505082600760008681526020019081526020016000208281548110610e0657610e056139dd565b5b90600052602060002090600402016003016000828254610e269190613c12565b925050819055508473ffffffffffffffffffffffffffffffffffffffff167f56cb95d5e0f3ba4459f610fef3ba603635cef803d945e97c316cdeb39290399185600760008881526020019081526020016000208481548110610e8b57610e8a6139dd565b5b906000526020600020906004020160020154600760008981526020019081526020016000208581548110610ec257610ec16139dd565b5b906000526020600020906004020160030154604051610ee3939291906139a6565b60405180910390a25050505050565b606060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90613845565b60405180910390fd5b6000610f708685611e7f565b905060076000878152602001908152602001600020805490508110610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190613c92565b60405180910390fd5b600760008781526020019081526020016000208181548110610fef57610fee6139dd565b5b906000526020600020906004020160010160149054906101000a900460ff1661104d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104490613cfe565b60405180910390fd5b84600760008881526020019081526020016000208281548110611073576110726139dd565b5b90600052602060002090600402016003015410156110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90613d90565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166110e5612225565b73ffffffffffffffffffffffffffffffffffffffff16036111f157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd883088600760008c81526020019081526020016000208681548110611166576111656139dd565b5b9060005260206000209060040201600201546111829190613db0565b6040518463ffffffff1660e01b81526004016111a093929190613df2565b6020604051808303816000875af11580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190613e55565b6111ec57600080fd5b611415565b600085600760008981526020019081526020016000208381548110611219576112186139dd565b5b9060005260206000209060040201600201546112359190613db0565b905060006064600454836112499190613db0565b6112539190613eb1565b9050600081836112639190613ee2565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8b600760008d815260200190815260200160002087815481106112c9576112c86139dd565b5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161131a93929190613df2565b6020604051808303816000875af1158015611339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135d9190613e55565b61136657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8b30856040518463ffffffff1660e01b81526004016113c593929190613df2565b6020604051808303816000875af11580156113e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114089190613e55565b61141157600080fd5b5050505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a308989896040518563ffffffff1660e01b81526004016114769493929190613f62565b600060405180830381600087803b15801561149057600080fd5b505af11580156114a4573d6000803e3d6000fd5b50505050846007600088815260200190815260200160002082815481106114ce576114cd6139dd565b5b9060005260206000209060040201600301540361173457600160076000888152602001908152602001600020805490506115089190613ee2565b811461164c5760076000878152602001908152602001600020600160076000898152602001908152602001600020805490506115449190613ee2565b81548110611555576115546139dd565b5b9060005260206000209060040201600760008881526020019081526020016000208281548110611588576115876139dd565b5b9060005260206000209060040201600082015481600001556001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160149054906101000a900460ff168160010160146101000a81548160ff02191690831515021790555060028201548160020155600382015481600301559050505b6007600087815260200190815260200160002080548061166f5761166e613fba565b5b60019003818190600052602060002090600402016000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff02191690556002820160009055600382016000905550509055600060076000888152602001908152602001600020805490500361172f5760006006600088815260200190815260200160002060006101000a81548160ff02191690831515021790555061172e866128b9565b5b6117dc565b8460076000888152602001908152602001600020828154811061175a576117596139dd565b5b9060005260206000209060040201600301600082825461177a9190613ee2565b925050819055506007600087815260200190815260200160002081815481106117a6576117a56139dd565b5b90600052602060002090600402016003015460405180606001604052806023815260200161426760239139909250925050611845565b8373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fc55254892a1711b67c27fcc61c33145acd745d88047198774c9f479bd2fab72e888860405161183b929190613fe9565b60405180910390a3505b94509492505050565b611856612984565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118b3919061350a565b602060405180830381865afa1580156118d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f49190613ac1565b905060008111611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119309061405e565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611996929190613a83565b6020604051808303816000875af11580156119b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d99190613e55565b503373ffffffffffffffffffffffffffffffffffffffff167fb0bd88cdae83f74f918eb6bf26d99dcb3c1530530f339233b029e3b6a00ac50b82604051611a2091906132c5565b60405180910390a250565b60606000805b600580549050811015611a93576007600060058381548110611a5657611a556139dd565b5b906000526020600020015481526020019081526020016000208054905082611a7e9190613c12565b91508080611a8b90613a3b565b915050611a31565b5060008167ffffffffffffffff811115611ab057611aaf612bfb565b5b604051908082528060200260200182016040528015611ae957816020015b611ad6612ad7565b815260200190600190039081611ace5790505b5090506000805b600580549050811015611c6257600060058281548110611b1357611b126139dd565b5b9060005260206000200154905060005b6007600083815260200190815260200160002080549050811015611c4d57600760008381526020019081526020016000208181548110611b6657611b656139dd565b5b90600052602060002090600402016040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481525050858581518110611c2157611c206139dd565b5b60200260200101819052508380611c3790613a3b565b9450508080611c4590613a3b565b915050611b23565b50508080611c5a90613a3b565b915050611af0565b5081935050505090565b60076020528160005260406000208181548110611c8857600080fd5b9060005260206000209060040201600091509150508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020154908060030154905085565b60058181548110611cfc57600080fd5b906000526020600020016000915090505481565b611d18612984565b611d226000612a0b565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d52612ad7565b60076000848152602001908152602001600020805490508210611daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da1906140ca565b60405180910390fd5b600760008481526020019081526020016000208281548110611dcf57611dce6139dd565b5b90600052602060002090600402016040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1615151515815260200160028201548152602001600382015481525050905092915050565b600080600090505b6007600085815260200190815260200160002080549050811015611f4a578273ffffffffffffffffffffffffffffffffffffffff16600760008681526020019081526020016000208281548110611ee157611ee06139dd565b5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611f375780915050611f6f565b8080611f4290613a3b565b915050611e87565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b92915050565b60606000805b600580549050811015612073576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8660058581548110611fdc57611fdb6139dd565b5b90600052602060002001546040518363ffffffff1660e01b8152600401612004929190613a83565b602060405180830381865afa158015612021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120459190613ac1565b9050600081111561205f57828061205b90613a3b565b9350505b50808061206b90613a3b565b915050611f7b565b5060008167ffffffffffffffff8111156120905761208f612bfb565b5b6040519080825280602002602001820160405280156120c957816020015b6120b6612b1e565b8152602001906001900390816120ae5790505b5090506000805b600580549050811015612219576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8860058581548110612131576121306139dd565b5b90600052602060002001546040518363ffffffff1660e01b8152600401612159929190613a83565b602060405180830381865afa158015612176573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219a9190613ac1565b90506000811115612205576040518060400160405280600584815481106121c4576121c36139dd565b5b90600052602060002001548152602001828152508484815181106121eb576121ea6139dd565b5b6020026020010181905250828061220190613a3b565b9350505b50808061221190613a3b565b9150506120d0565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600063bc197c8160e01b905095945050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f590613845565b60405180910390fd5b600061230a8284611e7f565b905060076000838152602001908152602001600020805490508110612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b90614136565b60405180910390fd5b600760008381526020019081526020016000208181548110612389576123886139dd565b5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241f906141a2565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30858560076000888152602001908152602001600020868154811061248e5761248d6139dd565b5b9060005260206000209060040201600301546040518563ffffffff1660e01b81526004016124bf949392919061420e565b600060405180830381600087803b1580156124d957600080fd5b505af11580156124ed573d6000803e3d6000fd5b50505050600160076000848152602001908152602001600020805490506125149190613ee2565b81146126585760076000838152602001908152602001600020600160076000858152602001908152602001600020805490506125509190613ee2565b81548110612561576125606139dd565b5b9060005260206000209060040201600760008481526020019081526020016000208281548110612594576125936139dd565b5b9060005260206000209060040201600082015481600001556001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160149054906101000a900460ff168160010160146101000a81548160ff02191690831515021790555060028201548160020155600382015481600301559050505b6007600083815260200190815260200160002080548061267b5761267a613fba565b5b60019003818190600052602060002090600402016000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff02191690556002820160009055600382016000905550509055600060076000848152602001908152602001600020805490500361273b5760006006600084815260200190815260200160002060006101000a81548160ff02191690831515021790555061273a826128b9565b5b8273ffffffffffffffffffffffffffffffffffffffff167f2e8af6a053bc85443cdcc0eb4bc27edb2a41dd5d1605e76bbd7f687f3f4adc6a8360405161278191906132c5565b60405180910390a2505050565b60045481565b600063f23a6e6160e01b905095945050505050565b6127b1612984565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128235760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161281a919061350a565b60405180910390fd5b61282c81612a0b565b50565b60066020528060005260406000206000915054906101000a900460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60005b6005805490508110156129805781600582815481106128de576128dd6139dd565b5b90600052602060002001540361296d57600560016005805490506129029190613ee2565b81548110612913576129126139dd565b5b906000526020600020015460058281548110612932576129316139dd565b5b9060005260206000200181905550600580548061295257612951613fba565b5b60019003818190600052602060002001600090559055612980565b808061297890613a3b565b9150506128bc565b5050565b61298c612acf565b73ffffffffffffffffffffffffffffffffffffffff166129aa612225565b73ffffffffffffffffffffffffffffffffffffffff1614612a09576129cd612acf565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401612a00919061350a565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b7782612b4c565b9050919050565b612b8781612b6c565b8114612b9257600080fd5b50565b600081359050612ba481612b7e565b92915050565b6000819050919050565b612bbd81612baa565b8114612bc857600080fd5b50565b600081359050612bda81612bb4565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c3382612bea565b810181811067ffffffffffffffff82111715612c5257612c51612bfb565b5b80604052505050565b6000612c65612b38565b9050612c718282612c2a565b919050565b600067ffffffffffffffff821115612c9157612c90612bfb565b5b612c9a82612bea565b9050602081019050919050565b82818337600083830152505050565b6000612cc9612cc484612c76565b612c5b565b905082815260208101848484011115612ce557612ce4612be5565b5b612cf0848285612ca7565b509392505050565b600082601f830112612d0d57612d0c612be0565b5b8135612d1d848260208601612cb6565b91505092915050565b600080600080600060a08688031215612d4257612d41612b42565b5b6000612d5088828901612b95565b9550506020612d6188828901612bcb565b9450506040612d7288828901612bcb565b9350506060612d8388828901612bcb565b925050608086013567ffffffffffffffff811115612da457612da3612b47565b5b612db088828901612cf8565b9150509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612df281612dbd565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b600060208284031215612e2b57612e2a612b42565b5b6000612e3984828501612e00565b91505092915050565b60008115159050919050565b612e5781612e42565b82525050565b6000602082019050612e726000830184612e4e565b92915050565b60008060408385031215612e8f57612e8e612b42565b5b6000612e9d85828601612bcb565b9250506020612eae85828601612b95565b9150509250929050565b612ec181612baa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612efc81612baa565b82525050565b612f0b81612b6c565b82525050565b612f1a81612e42565b82525050565b60a082016000820151612f366000850182612ef3565b506020820151612f496020850182612f02565b506040820151612f5c6040850182612f11565b506060820151612f6f6060850182612ef3565b506080820151612f826080850182612ef3565b50505050565b6000612f948383612f20565b60a08301905092915050565b6000602082019050919050565b6000612fb882612ec7565b612fc28185612ed2565b9350612fcd83612ee3565b8060005b83811015612ffe578151612fe58882612f88565b9750612ff083612fa0565b925050600181019050612fd1565b5085935050505092915050565b60006040820190506130206000830185612eb8565b81810360208301526130328184612fad565b90509392505050565b6000806000806080858703121561305557613054612b42565b5b600061306387828801612b95565b945050602061307487828801612bcb565b935050604061308587828801612bcb565b925050606085013567ffffffffffffffff8111156130a6576130a5612b47565b5b6130b287828801612cf8565b91505092959194509250565b600080600080608085870312156130d8576130d7612b42565b5b60006130e687828801612b95565b94505060206130f787828801612bcb565b935050604061310887828801612bcb565b925050606061311987828801612b95565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b8381101561315f578082015181840152602081019050613144565b60008484015250505050565b600061317682613125565b6131808185613130565b9350613190818560208601613141565b61319981612bea565b840191505092915050565b600060408201905081810360008301526131be818561316b565b90506131cd6020830184612eb8565b9392505050565b600060208201905081810360008301526131ee8184612fad565b905092915050565b6000806040838503121561320d5761320c612b42565b5b600061321b85828601612bcb565b925050602061322c85828601612bcb565b9150509250929050565b61323f81612b6c565b82525050565b600060a08201905061325a6000830188612eb8565b6132676020830187613236565b6132746040830186612e4e565b6132816060830185612eb8565b61328e6080830184612eb8565b9695505050505050565b6000602082840312156132ae576132ad612b42565b5b60006132bc84828501612bcb565b91505092915050565b60006020820190506132da6000830184612eb8565b92915050565b6000819050919050565b60006133056133006132fb84612b4c565b6132e0565b612b4c565b9050919050565b6000613317826132ea565b9050919050565b60006133298261330c565b9050919050565b6133398161331e565b82525050565b60006020820190506133546000830184613330565b92915050565b60a0820160008201516133706000850182612ef3565b5060208201516133836020850182612f02565b5060408201516133966040850182612f11565b5060608201516133a96060850182612ef3565b5060808201516133bc6080850182612ef3565b50505050565b600060a0820190506133d7600083018461335a565b92915050565b6000602082840312156133f3576133f2612b42565b5b600061340184828501612b95565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60408201600082015161344c6000850182612ef3565b50602082015161345f6020850182612ef3565b50505050565b60006134718383613436565b60408301905092915050565b6000602082019050919050565b60006134958261340a565b61349f8185613415565b93506134aa83613426565b8060005b838110156134db5781516134c28882613465565b97506134cd8361347d565b9250506001810190506134ae565b5085935050505092915050565b60006020820190508181036000830152613502818461348a565b905092915050565b600060208201905061351f6000830184613236565b92915050565b600067ffffffffffffffff8211156135405761353f612bfb565b5b602082029050602081019050919050565b600080fd5b600061356961356484613525565b612c5b565b9050808382526020820190506020840283018581111561358c5761358b613551565b5b835b818110156135b557806135a18882612bcb565b84526020840193505060208101905061358e565b5050509392505050565b600082601f8301126135d4576135d3612be0565b5b81356135e4848260208601613556565b91505092915050565b600080600080600060a0868803121561360957613608612b42565b5b600061361788828901612b95565b955050602061362888828901612b95565b945050604086013567ffffffffffffffff81111561364957613648612b47565b5b613655888289016135bf565b935050606086013567ffffffffffffffff81111561367657613675612b47565b5b613682888289016135bf565b925050608086013567ffffffffffffffff8111156136a3576136a2612b47565b5b6136af88828901612cf8565b9150509295509295909350565b6136c581612dbd565b82525050565b60006020820190506136e060008301846136bc565b92915050565b60006136f18261330c565b9050919050565b613701816136e6565b82525050565b600060208201905061371c60008301846136f8565b92915050565b6000806040838503121561373957613738612b42565b5b600061374785828601612b95565b925050602061375885828601612bcb565b9150509250929050565b600080600080600060a0868803121561377e5761377d612b42565b5b600061378c88828901612b95565b955050602061379d88828901612b95565b94505060406137ae88828901612bcb565b93505060606137bf88828901612bcb565b925050608086013567ffffffffffffffff8111156137e0576137df612b47565b5b6137ec88828901612cf8565b9150509295509295909350565b7f57726f6e672066726f6d20616464726573730000000000000000000000000000600082015250565b600061382f601283613130565b915061383a826137f9565b602082019050919050565b6000602082019050818103600083015261385e81613822565b9050919050565b7f596f7520616c7265616479206861766520616e20616374697665206f6666657260008201527f20666f72207468697320746f6b656e0000000000000000000000000000000000602082015250565b60006138c1602f83613130565b91506138cc82613865565b604082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061391e826138f7565b6139288185613902565b9350613938818560208601613141565b61394181612bea565b840191505092915050565b600060a0820190506139616000830188613236565b61396e6020830187613236565b61397b6040830186612eb8565b6139886060830185612eb8565b818103608083015261399a8184613913565b90509695505050505050565b60006060820190506139bb6000830186612eb8565b6139c86020830185612eb8565b6139d56040830184612eb8565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a4682612baa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a7857613a77613a0c565b5b600182019050919050565b6000604082019050613a986000830185613236565b613aa56020830184612eb8565b9392505050565b600081519050613abb81612bb4565b92915050565b600060208284031215613ad757613ad6612b42565b5b6000613ae584828501613aac565b91505092915050565b7f4e6f20616374697665206f6666657220666f756e6420666f722074686973207460008201527f6f6b656e496420616e642073656e646572000000000000000000000000000000602082015250565b6000613b4a603183613130565b9150613b5582613aee565b604082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f6620746869732060008201527f6f66666572000000000000000000000000000000000000000000000000000000602082015250565b6000613bdc602583613130565b9150613be782613b80565b604082019050919050565b60006020820190508181036000830152613c0b81613bcf565b9050919050565b6000613c1d82612baa565b9150613c2883612baa565b9250828201905080821115613c4057613c3f613a0c565b5b92915050565b7f4f66666572206e6f7420666f756e640000000000000000000000000000000000600082015250565b6000613c7c600f83613130565b9150613c8782613c46565b602082019050919050565b60006020820190508181036000830152613cab81613c6f565b9050919050565b7f5468697320746f6b656e206973206e6f7420666f722073616c65000000000000600082015250565b6000613ce8601a83613130565b9150613cf382613cb2565b602082019050919050565b60006020820190508181036000830152613d1781613cdb565b9050919050565b7f596f752061726520747279696e6720746f20627579206d6f7265204e4654732060008201527f7468616e206d61726b6574206f66666572732100000000000000000000000000602082015250565b6000613d7a603383613130565b9150613d8582613d1e565b604082019050919050565b60006020820190508181036000830152613da981613d6d565b9050919050565b6000613dbb82612baa565b9150613dc683612baa565b9250828202613dd481612baa565b91508282048414831517613deb57613dea613a0c565b5b5092915050565b6000606082019050613e076000830186613236565b613e146020830185613236565b613e216040830184612eb8565b949350505050565b613e3281612e42565b8114613e3d57600080fd5b50565b600081519050613e4f81613e29565b92915050565b600060208284031215613e6b57613e6a612b42565b5b6000613e7984828501613e40565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ebc82612baa565b9150613ec783612baa565b925082613ed757613ed6613e82565b5b828204905092915050565b6000613eed82612baa565b9150613ef883612baa565b9250828203905081811115613f1057613f0f613a0c565b5b92915050565b7f3078303000000000000000000000000000000000000000000000000000000000600082015250565b6000613f4c600483613902565b9150613f5782613f16565b602082019050919050565b600060a082019050613f776000830187613236565b613f846020830186613236565b613f916040830185612eb8565b613f9e6060830184612eb8565b8181036080830152613faf81613f3f565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000604082019050613ffe6000830185612eb8565b61400b6020830184612eb8565b9392505050565b7f54686520636f6e74726163742062616c616e6365206973207a65726f00000000600082015250565b6000614048601c83613130565b915061405382614012565b602082019050919050565b600060208201905081810360008301526140778161403b565b9050919050565b7f496e646578206f7574206f6620626f756e647300000000000000000000000000600082015250565b60006140b4601383613130565b91506140bf8261407e565b602082019050919050565b600060208201905081810360008301526140e3816140a7565b9050919050565b7f7468657265206973206e6f206f776e6572000000000000000000000000000000600082015250565b6000614120601183613130565b915061412b826140ea565b602082019050919050565b6000602082019050818103600083015261414f81614113565b9050919050565b7f4e6f7420746865206f776e6572206f6620746865206e66740000000000000000600082015250565b600061418c601883613130565b915061419782614156565b602082019050919050565b600060208201905081810360008301526141bb8161417f565b9050919050565b7f3078300000000000000000000000000000000000000000000000000000000000600082015250565b60006141f8600383613902565b9150614203826141c2565b602082019050919050565b600060a0820190506142236000830187613236565b6142306020830186613236565b61423d6040830185612eb8565b61424a6060830184612eb8565b818103608083015261425b816141eb565b90509594505050505056fe4e465420736f6c642c2072656d61696e696e6720616d6f756e74206f66204e46543a20a2646970667358221220e80c2a7e8f23c5e5a649e4128d73275f88430bbc7670fb34d5ab6bf5a7417d2a64736f6c63430008140033000000000000000000000000a2950e06ee4e6fed91cd7988cb59c82661d2b9610000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359000000000000000000000000be801442f18c7fd1c775ab211d202654ba76382b