0 txs
0 calls
@openzeppelin/contracts/access/AccessControl.sol
constructor
constructor(address _erc20Address, uint256 fee, uint256 cancellationFee, address feeRecipient)
functions
auctionCancellationFee
viewfunction auctionCancellationFee() view returns (uint256)
auctionFee
viewfunction auctionFee() view returns (uint256)
auctionFeeRecipient
viewfunction auctionFeeRecipient() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
erc20Address
viewfunction erc20Address() view returns (address)
getAuction
viewfunction getAuction(string id) view returns (tuple)
getAuctions
viewfunction getAuctions(string[] ids) view returns (tuple[])
getOpenAuctions
viewfunction getOpenAuctions() view returns (string[])
getOpenAuctionsPg
viewfunction getOpenAuctionsPg(uint256 _page, uint256 _size) view returns (string[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
idNonce
viewfunction idNonce() view returns (uint256)
listingOpen
viewfunction listingOpen() view returns (bool)
maxAuctionDuration
viewfunction maxAuctionDuration() view returns (uint256)
minAuctionDuration
viewfunction minAuctionDuration() view returns (uint256)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
STORE_ADMIN_ROLE
viewfunction STORE_ADMIN_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TREASURY_ROLE
viewfunction TREASURY_ROLE() view returns (bytes32)
addNFT
nonpayablefunction addNFT(address _nft)
bid
nonpayablefunction bid(string id, uint256 bidValue)
cancelAllAuctions
nonpayablefunction cancelAllAuctions()
cancelAuction
nonpayablefunction cancelAuction(string id)
createAuction
nonpayablefunction createAuction(bool isErc721, address nftAddress, uint256 tokenId, uint256 amount, uint256 endedAt, uint256 basePrice)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
massSettleAuctions
nonpayablefunction massSettleAuctions(string[] _ids)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
pause
nonpayablefunction pause()
pauseListings
nonpayablefunction pauseListings()
removeNFT
nonpayablefunction removeNFT(address _nft)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resumeListings
nonpayablefunction resumeListings()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAuctionFee
nonpayablefunction setAuctionFee(uint256 fee)
setAuctionFeeRecipient
nonpayablefunction setAuctionFeeRecipient(address recipient)
setCancellationFee
nonpayablefunction setCancellationFee(uint256 fee)
setListingDuration
nonpayablefunction setListingDuration(uint256 min, uint256 max)
settleAuction
nonpayablefunction settleAuction(string id)
unpause
nonpayablefunction unpause()
events
AuctionBid
event AuctionBid(address indexed buyer, uint256 indexed amount, string id)
AuctionCancelled
event AuctionCancelled(string id)
AuctionCreated
event AuctionCreated(bool indexed isErc721, address indexed nftAddress, uint256 indexed tokenId, string id, uint256 amount, uint256 endedAt, uint256 basePrice)
AuctionFeeChanged
event AuctionFeeChanged(uint256 fee)
AuctionSettled
event AuctionSettled(string id)
CancellationFeeChanged
event CancellationFeeChanged(uint256 fee)
ListingDurationChanged
event ListingDurationChanged(uint256 min, uint256 max)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TreasuryChanged
event TreasuryChanged(address treasurer)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60a06040526007805460ff191660011790556000600a5561012c600b5562069780600c553480156200003057600080fd5b5060405162003fef38038062003fef8339810160408190526200005391620002ef565b6001805460ff191681556002556001600160a01b038116620000bc5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420526563697069656e7420416464726573730000000000000060448201526064015b60405180910390fd5b6001600160a01b038416620001145760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420546f6b656e206164647265737300000000000000000000006044820152606401620000b3565b6127108310620001675760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642041756374696f6e20466565000000000000000000000000006044820152606401620000b3565b6008839055600d80546001600160a01b0319166001600160a01b038381169190911790915560098390558416608052620001a360003362000231565b620001cf7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000231565b620001fb7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d33362000231565b620002277fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca93362000231565b505050506200033a565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002ce576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200028d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b0381168114620002ea57600080fd5b919050565b600080600080608085870312156200030657600080fd5b6200031185620002d2565b935060208501519250604085015191506200032f60608601620002d2565b905092959194509250565b608051613c76620003796000396000818161037401528181610f2901528181611c81015281816123f601528181612430015261246b0152613c766000f3fe608060405234801561001057600080fd5b50600436106102d35760003560e01c80638287bfc111610186578063b60e7a3b116100e3578063d547741f11610097578063f23a6e6111610071578063f23a6e6114610666578063f3d6864b1461069e578063f59e754c146106a657600080fd5b8063d547741f1461060c578063e63ab1e91461061f578063edd818491461064657600080fd5b8063c657e299116100c8578063c657e299146105b6578063cb7b9c23146105be578063d11a57ec146105e557600080fd5b8063b60e7a3b1461053a578063bc197c811461054d57600080fd5b806396c0c8101161013a578063a217fddf1161011f578063a217fddf14610517578063aff654151461051f578063b05940f21461053257600080fd5b806396c0c810146104f7578063a13d4e6b1461050457600080fd5b806384d6ea5d1161016b57806384d6ea5d146104a4578063876abfdf146104ad57806391d14854146104c057600080fd5b80638287bfc1146104895780638456cb591461049c57600080fd5b80633bc621b21161023457806354134876116101e85780635f483313116101cd5780635f4833131461045b5780636a3c12e31461046e5780638261ccb51461047657600080fd5b806354134876146104475780635c975abb1461045057600080fd5b80633f4ba83a116102195780633f4ba83a1461042357806348c9581e1461042b5780634c83cc141461043457600080fd5b80633bc621b2146104075780633eac3f851461041057600080fd5b8063276184ae1161028b5780632dd10ad3116102705780632dd10ad3146103ce5780632f2ff15d146103e157806336568abe146103f457600080fd5b8063276184ae1461036f57806327d63be4146103ae57600080fd5b80630ed642d0116102bc5780630ed642d01461032057806314525b6b14610335578063248a9ca31461034c57600080fd5b806301ffc9a7146102d857806302845f8614610300575b600080fd5b6102eb6102e6366004613074565b6106b9565b60405190151581526020015b60405180910390f35b61031361030e3660046131aa565b610752565b6040516102f791906132d6565b61033361032e366004613341565b610864565b005b61033e60085481565b6040519081526020016102f7565b61033e61035a36600461335c565b60009081526020819052604090206001015490565b6103967f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102f7565b6103c16103bc366004613375565b6108b0565b6040516102f791906133e7565b6103336103dc36600461335c565b610ab6565b6103336103ef366004613467565b610b1d565b610333610402366004613467565b610b47565b61033e60095481565b61033361041e366004613341565b610bd3565b610333610cb9565b61033e600c5481565b600d54610396906001600160a01b031681565b61033e600b5481565b60015460ff166102eb565b610333610469366004613493565b610cee565b6103336110e1565b610333610484366004613375565b61111b565b610333610497366004613341565b6111dc565b61033361122b565b61033e600a5481565b6103336104bb3660046134e6565b61125d565b6102eb6104ce366004613467565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6007546102eb9060ff1681565b61033361051236600461353d565b6116b4565b61033e600081565b61033361052d3660046131aa565b6118c9565b6103c1611909565b61033361054836600461353d565b6119e2565b61058561055b3660046135d8565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102f7565b610333611d40565b61033e7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d381565b61033e7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca981565b61033361061a366004613467565b611e8e565b61033e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61065961065436600461353d565b611eb3565b6040516102f79190613682565b610585610674366004613691565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b610333611fcf565b6103336106b436600461335c565b612006565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061074c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60608060005b835181101561085d5760006003858381518110610777576107776136f6565b602002602001015160405161078c9190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff161515928201929092526002820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015490921660e0830152600701546101008201528351909150819084908490811061083f5761083f6136f6565b602090810291909101015250610856816001613770565b9050610758565b5092915050565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d361088e816120b6565b506001600160a01b03166000908152600460205260409020805460ff19169055565b6060600083116109075760405162461bcd60e51b815260206004820152601b60248201527f50616765206e6565647320746f2062652031206f722061626f7665000000000060448201526064015b60405180910390fd5b6000826109148582613783565b61091e919061379a565b600654909150158061093d575060065461093a9060019061379a565b81115b1561094c57506060905061074c565b60008367ffffffffffffffff811115610967576109676130b6565b60405190808252806020026020018201604052801561099a57816020015b60608152602001906001900390816109855790505b50905060005b6109aa8686613783565b831015610aad576006546109c09060019061379a565b831015610a8f57600683815481106109da576109da6136f6565b9060005260206000200180546109ef906137ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1b906137ad565b8015610a685780601f10610a3d57610100808354040283529160200191610a68565b820191906000526020600020905b815481529060010190602001808311610a4b57829003601f168201915b5050505050828281518110610a7f57610a7f6136f6565b6020026020010181905250610a94565b610aad565b80610a9e81613800565b60019094019391506109a09050565b50949350505050565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3610ae0816120b6565b60098290556040518281527fd4c022413c9b90dba141b25a18a495d982fc551d9019f9fbed44032fca693e1b906020015b60405180910390a15050565b600082815260208190526040902060010154610b38816120b6565b610b4283836120c0565b505050565b6001600160a01b0381163314610bc55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108fe565b610bcf828261215e565b5050565b7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca9610bfd816120b6565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420526563697069656e7420416464726573730000000000000060448201526064016108fe565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040519081527fc714d22a2f08b695f81e7c707058db484aa5b4d6b4c9fd64beb10fe85832f60890602001610b11565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610ce3816120b6565b610ceb6121dd565b50565b610cf661222f565b610cfe612284565b6000600383604051610d109190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff1615159282019290925260028201546060820152600382015460808201819052600483015460a0830152600583015460c0830152600683015490931660e082015260079091015461010082015291504210610e245760405162461bcd60e51b815260206004820152603b60248201527f41756374696f6e2068617320616c726561647920656e6465642e20556e61626c60448201527f6520746f2070726f63657373206269642e2041626f7274696e672e000000000060648201526084016108fe565b60008211610e745760405162461bcd60e51b815260206004820152601960248201527f5a65726f206269647320617265206e6f7420616c6c6f7765640000000000000060448201526064016108fe565b6000610e946101f4836101000151610e8c9190613783565b6127106122db565b905080826101000151610ea79190613770565b831015610f1c5760405162461bcd60e51b815260206004820152603560248201527f42696420697320736d616c6c6572207468616e2074686520726571756972656460448201527f20696e6372656d656e742e2041626f7274696e672e000000000000000000000060648201526084016108fe565b610f516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612313565b60e08201516001600160a01b031615801590610f71575061010082015115155b15610f8b57610f8b8261010001518360e0015160006123c4565b61010082018390523360e08301526040518290600390610fac908790613725565b9081526040805160209281900383018120845181547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0392831617835594860151600183018054958801519183167fffffffffffffffffffffff00000000000000000000000000000000000000000090961695909517740100000000000000000000000000000000000000009115159190910217909355606085015160028201556080850151600382015560a0850151600482015560c0850151600582015560e085015160068201805490951693169290921790925561010090920151600790920191909155839033907f404d5f135c85f24fa52ef59254b87aaee6e59b6512323e308e5e3c7d997f4bfd906110cd90889061381a565b60405180910390a35050610bcf6001600255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61110b816120b6565b506007805460ff19166001179055565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3611145816120b6565b8183106111945760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206475726174696f6e207265737472696374696f6e7300000060448201526064016108fe565b600b839055600c82905560408051848152602081018490527f61364495025201801dba8278a9189f5a623ca2cf81ce8939d40bb3d446a8f814910160405180910390a1505050565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3611206816120b6565b506001600160a01b03166000908152600460205260409020805460ff19166001179055565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611255816120b6565b610ceb612492565b61126561222f565b60075460ff16806112a457503360009081527f918634b9d02c6d89079c6cfc37ad480a03e9d52baa7558e174af459066c400dc602052604090205460ff165b6112f05760405162461bcd60e51b815260206004820152601760248201527f4e6577206c697374696e6773206172652070617573656400000000000000000060448201526064016108fe565b6112f8612284565b6000611303856124cd565b61130c846124cd565b611317600a546124cd565b6040516020016113299392919061382d565b604051602081830303815290604052905060038160405161134a9190613725565b9081526020016040518091039020600401546000146113d15760405162461bcd60e51b815260206004820152602e60248201527f41756374696f6e20616c7265616479206578697374656420666f72206375727260448201527f656e742061756374696f6e20496400000000000000000000000000000000000060648201526084016108fe565b6001600160a01b03861660009081526004602052604090205460ff166114395760405162461bcd60e51b815260206004820152601960248201527f4e465420756e617574686f72697a656420666f722073616c650000000000000060448201526064016108fe565b600b546114469042613770565b8311801561145f5750600c5461145c9042613770565b83105b6114ab5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642041756374696f6e204475726174696f6e000000000000000060448201526064016108fe565b6114b8878733888861256d565b600580546001908101909155600a8054909101905560408051610120810182523381526001600160a01b03881660208201528815158183015260608101879052608081018590524260a082015260c08101869052600060e082015261010081018490529051819060039061152d908590613725565b90815260408051918290036020908101909220835181546001600160a01b039182167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178355938501516001808401805495880151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090961692841692909217949094179055606085015160028301556080850151600383015560a0850151600483015560c0850151600583015560e085015160068084018054929093169190951617905561010090930151600790930192909255805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0161165483826138e9565b5085876001600160a01b03168915157f849a7ec157ad4cb8d184fb112dd04d1ad942cd83b2f1e92e60613462f553018e8589898960405161169894939291906139a9565b60405180910390a450506116ac6001600255565b505050505050565b6116bc612284565b60006003826040516116ce9190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff1615159282019290925260028201546060820152600382015460808201819052600483015460a0830152600583015460c0830152600683015490931660e082015260079091015461010082015291504211801561177f5750608081015115155b6117f15760405162461bcd60e51b815260206004820152603360248201527f41756374696f6e2063616e277420626520736574746c6564206265666f72652060448201527f697420726561636865732074686520656e642e0000000000000000000000000060648201526084016108fe565b6040810151602082015160c0830151606084015161010085015160e08601516001600160a01b0381166118345761182f8686896000015186886126e8565b611841565b61184186868386886126e8565b6001600160a01b0381161580159061185857508115155b1561186d5761186d82886000015160016123c4565b611876886127aa565b600580546000190190556040517fafdc429d8d197c8769e7a13a5bcd959b9f8dade051086aac5fbcba8e8d7f3a5e906118b0908a9061381a565b60405180910390a150505050505050610ceb6001600255565b60005b8151811015610bcf576118f78282815181106118ea576118ea6136f6565b60200260200101516116b4565b611902816001613770565b90506118cc565b60606006805480602002602001604051908101604052809291908181526020016000905b828210156119d957838290600052602060002001805461194c906137ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611978906137ad565b80156119c55780601f1061199a576101008083540402835291602001916119c5565b820191906000526020600020905b8154815290600101906020018083116119a857829003601f168201915b50505050508152602001906001019061192d565b50505050905090565b6119ea612284565b60006003826040516119fc9190613725565b9081526040805191829003602090810183206101208401835280546001600160a01b03908116855260018201548082168487015260ff7401000000000000000000000000000000000000000090910481161515868601526002830154606087015260038301546080870152600483015460a0870152600583015460c08701526006830154821660e08701526007909201546101008601523360009081527f918634b9d02c6d89079c6cfc37ad480a03e9d52baa7558e174af459066c400dc90935292909120548351939450169116611b3c5760405162461bcd60e51b815260206004820152602560248201527f41756374696f6e20697320616c726561647920736574746c65642e2041626f7260448201527f74696e672e00000000000000000000000000000000000000000000000000000060648201526084016108fe565b81516001600160a01b0316331480611b515750805b611bc35760405162461bcd60e51b815260206004820152603e60248201527f41756374696f6e2063616e27742062652063616e63656c6c65642c206f6e6c7960448201527f2062792073656c6c6572206f722061646d696e2e2041626f7274696e672e000060648201526084016108fe565b60e08201516001600160a01b03161580611bda5750805b611c4c5760405162461bcd60e51b815260206004820152603560248201527f41756374696f6e2063616e27742062652063616e63656c6c656420776974682060448201527f616374697665206269642e2041626f7274696e672e000000000000000000000060648201526084016108fe565b6040820151602083015160c0840151606085015161010086015160e087015186611cab57600954611cab906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169033903090612313565b611cbc86868a6000015186886126e8565b6001600160a01b03811615801590611cd357508115155b15611ce457611ce4828260006123c4565b60058054600019019055611cf7896127aa565b7f8491f144dda005dc8140735549d904900585c1cbe24e47da9dcbf67a8b7233d589604051611d26919061381a565b60405180910390a15050505050505050610ceb6001600255565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3611d6a816120b6565b60065480611dba5760405162461bcd60e51b815260206004820152601060248201527f4e6f206f70656e2061756374696f6e730000000000000000000000000000000060448201526064016108fe565b6060815b8015611e88576006611dd160018361379a565b81548110611de157611de16136f6565b906000526020600020018054611df6906137ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611e22906137ad565b8015611e6f5780601f10611e4457610100808354040283529160200191611e6f565b820191906000526020600020905b815481529060010190602001808311611e5257829003601f168201915b50505050509150611e7f826119e2565b60001901611dbe565b50505050565b600082815260208190526040902060010154611ea9816120b6565b610b42838361215e565b611f1f60405180610120016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000151581526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081525090565b600382604051611f2f9190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff161515928201929092526002820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015490921660e08301526007015461010082015292915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611ff9816120b6565b506007805460ff19169055565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3612030816120b6565b61271082106120815760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642041756374696f6e204665650000000000000000000000000060448201526064016108fe565b60088290556040518281527fec7394e8821e6f8bc7f15d16250718803f808e06e4627ebba8b48fa6413aec4790602001610b11565b610ceb813361296c565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610bcf576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561211a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610bcf576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6121e56129df565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60015460ff16156122825760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016108fe565b565b60028054036122d55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108fe565b60028055565b6000821561230957816122ef60018561379a565b6122f991906139d8565b612304906001613770565b61230c565b60005b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611e889085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612a31565b6000612710600854856123d79190613783565b6123e191906139d8565b9050811561245e5761241f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684838703612b19565b600d54612459906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683612b19565b611e88565b611e886001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486612b19565b61249a61222f565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612212565b606060006124da83612b62565b600101905060008167ffffffffffffffff8111156124fa576124fa6130b6565b6040519080825280601f01601f191660200182016040528015612524576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461252e57509392505050565b8461265e57600081116125c25760405162461bcd60e51b815260206004820152601460248201527f496e76616c696420546f6b656e20416d6f756e7400000000000000000000000060448201526064016108fe565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152306024830152604482018490526064820183905260a06084830152600060a483015285169063f242432a9060c4015b600060405180830381600087803b15801561264157600080fd5b505af1158015612655573d6000803e3d6000fd5b505050506126e1565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152306024830152604482018490528516906323b872dd906064015b600060405180830381600087803b1580156126c857600080fd5b505af11580156126dc573d6000803e3d6000fd5b505050505b5050505050565b84612756576040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018490526064820183905260a06084830152600060a483015285169063f242432a9060c401612627565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018490528516906323b872dd906064016126ae565b60065460005b818110156128c657826040516020016127c99190613725565b60405160208183030381529060405280519060200120600682815481106127f2576127f26136f6565b9060005260206000200160405160200161280c9190613a13565b60405160208183030381529060405280519060200120036128be5761283260018361379a565b811461288a57600661284560018461379a565b81548110612855576128556136f6565b9060005260206000200160068281548110612872576128726136f6565b9060005260206000200190816128889190613a89565b505b600680548061289b5761289b613b5c565b6001900381819060005260206000200160006128b79190613026565b90556128c6565b6001016127b0565b506003826040516128d79190613725565b90815260405190819003602001902080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180547fffffffffffffffffffffff0000000000000000000000000000000000000000001690556000600283018190556003830181905560048301819055600583018190556006830180549092169091556007909101555050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610bcf5761299d81612c44565b6129a8836020612c56565b6040516020016129b9929190613b8b565b60408051601f198184030181529082905262461bcd60e51b82526108fe9160040161381a565b60015460ff166122825760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108fe565b6000612a86826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e7f9092919063ffffffff16565b9050805160001480612aa7575080806020019051810190612aa79190613c0c565b610b425760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016108fe565b6040516001600160a01b038316602482015260448101829052610b429084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401612360565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612bab577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612bd7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612bf557662386f26fc10000830492506010015b6305f5e1008310612c0d576305f5e100830492506008015b6127108310612c2157612710830492506004015b60648310612c33576064830492506002015b600a831061074c5760010192915050565b606061074c6001600160a01b03831660145b60606000612c65836002613783565b612c70906002613770565b67ffffffffffffffff811115612c8857612c886130b6565b6040519080825280601f01601f191660200182016040528015612cb2576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612ce957612ce96136f6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d4c57612d4c6136f6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d88846002613783565b612d93906001613770565b90505b6001811115612e30577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dd457612dd46136f6565b1a60f81b828281518110612dea57612dea6136f6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e2981613c29565b9050612d96565b50831561230c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108fe565b6060612e8e8484600085612e96565b949350505050565b606082471015612f0e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016108fe565b600080866001600160a01b03168587604051612f2a9190613725565b60006040518083038185875af1925050503d8060008114612f67576040519150601f19603f3d011682016040523d82523d6000602084013e612f6c565b606091505b5091509150612f7d87838387612f88565b979650505050505050565b60608315612ff7578251600003612ff0576001600160a01b0385163b612ff05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108fe565b5081612e8e565b612e8e838381511561300c5781518083602001fd5b8060405162461bcd60e51b81526004016108fe919061381a565b508054613032906137ad565b6000825580601f10613042575050565b601f016020900490600052602060002090810190610ceb91905b80821115613070576000815560010161305c565b5090565b60006020828403121561308657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461230c57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561310e5761310e6130b6565b604052919050565b600067ffffffffffffffff821115613130576131306130b6565b5060051b60200190565b600082601f83011261314b57600080fd5b813567ffffffffffffffff811115613165576131656130b6565b6131786020601f19601f840116016130e5565b81815284602083860101111561318d57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208083850312156131bd57600080fd5b823567ffffffffffffffff808211156131d557600080fd5b818501915085601f8301126131e957600080fd5b81356131fc6131f782613116565b6130e5565b81815260059190911b8301840190848101908883111561321b57600080fd5b8585015b83811015613253578035858111156132375760008081fd5b6132458b89838a010161313a565b84525091860191860161321f565b5098975050505050505050565b6001600160a01b0380825116835280602083015116602084015250604081015115156040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e08101516132c960e08401826001600160a01b03169052565b5061010090810151910152565b6020808252825182820181905260009190848201906040850190845b8181101561331957613305838551613260565b9284019261012092909201916001016132f2565b50909695505050505050565b80356001600160a01b038116811461333c57600080fd5b919050565b60006020828403121561335357600080fd5b61230c82613325565b60006020828403121561336e57600080fd5b5035919050565b6000806040838503121561338857600080fd5b50508035926020909101359150565b60005b838110156133b257818101518382015260200161339a565b50506000910152565b600081518084526133d3816020860160208601613397565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561345a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526134488583516133bb565b9450928501929085019060010161340e565b5092979650505050505050565b6000806040838503121561347a57600080fd5b8235915061348a60208401613325565b90509250929050565b600080604083850312156134a657600080fd5b823567ffffffffffffffff8111156134bd57600080fd5b6134c98582860161313a565b95602094909401359450505050565b8015158114610ceb57600080fd5b60008060008060008060c087890312156134ff57600080fd5b863561350a816134d8565b955061351860208801613325565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60006020828403121561354f57600080fd5b813567ffffffffffffffff81111561356657600080fd5b612e8e8482850161313a565b600082601f83011261358357600080fd5b813560206135936131f783613116565b82815260059290921b840181019181810190868411156135b257600080fd5b8286015b848110156135cd57803583529183019183016135b6565b509695505050505050565b600080600080600060a086880312156135f057600080fd5b6135f986613325565b945061360760208701613325565b9350604086013567ffffffffffffffff8082111561362457600080fd5b61363089838a01613572565b9450606088013591508082111561364657600080fd5b61365289838a01613572565b9350608088013591508082111561366857600080fd5b506136758882890161313a565b9150509295509295909350565b610120810161074c8284613260565b600080600080600060a086880312156136a957600080fd5b6136b286613325565b94506136c060208701613325565b93506040860135925060608601359150608086013567ffffffffffffffff8111156136ea57600080fd5b6136758882890161313a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008251613737818460208701613397565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561074c5761074c613741565b808202811582820484141761074c5761074c613741565b8181038181111561074c5761074c613741565b600181811c908216806137c157607f821691505b6020821081036137fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000600019820361381357613813613741565b5060010190565b60208152600061230c60208301846133bb565b6000845161383f818460208901613397565b80830190507f2300000000000000000000000000000000000000000000000000000000000000808252855161387b816001850160208a01613397565b60019201918201528351613896816002840160208801613397565b0160020195945050505050565b601f821115610b4257600081815260208120601f850160051c810160208610156138ca5750805b601f850160051c820191505b818110156116ac578281556001016138d6565b815167ffffffffffffffff811115613903576139036130b6565b6139178161391184546137ad565b846138a3565b602080601f83116001811461394c57600084156139345750858301515b600019600386901b1c1916600185901b1785556116ac565b600085815260208120601f198616915b8281101561397b5788860151825594840194600190910190840161395c565b50858210156139995787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080815260006139bc60808301876133bb565b6020830195909552506040810192909252606090910152919050565b600082613a0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808354613a21816137ad565b60018281168015613a395760018114613a4e57613a7d565b60ff1984168752821515830287019450613a7d565b8760005260208060002060005b85811015613a745781548a820152908401908201613a5b565b50505082870194505b50929695505050505050565b818103613a94575050565b613a9e82546137ad565b67ffffffffffffffff811115613ab657613ab66130b6565b613ac48161391184546137ad565b6000601f821160018114613af85760008315613ae05750848201545b600019600385901b1c1916600184901b1784556126e1565b600085815260209020601f19841690600086815260209020845b83811015613b325782860154825560019586019590910190602001613b12565b50858310156139995793015460001960f8600387901b161c19169092555050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613bc3816017850160208801613397565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613c00816028840160208801613397565b01602801949350505050565b600060208284031215613c1e57600080fd5b815161230c816134d8565b600081613c3857613c38613741565b50600019019056fea264697066735822122076de165c52a203c108fcdee8d53e26968abca9775ebca956706e08b3c27d5c6a64736f6c634300081300330000000000000000000000008cc998e13feec2c60701a3d4899d6f97e784aa9a00000000000000000000000000000000000000000000000000000000000005dc00000000000000000000000000000000000000000000001043561a8829300000000000000000000000000000df11c9bbd8a0956ad881f50d0901987fa157c5c6