0 txs
183 calls
constructor
constructor(address _weth, address _landRegistry, address _lockLeash, address _lockShiboshi)
functions
allBidInfoOf
viewfunction allBidInfoOf(address user) view returns (int16[], int16[])
availableCapacityOf
viewfunction availableCapacityOf(address user) view returns (uint256)
bidInfoOf
viewfunction bidInfoOf(address user) view returns (int16[], int16[])
currentStage
viewfunction currentStage() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getCategory
viewfunction getCategory(int16 x, int16 y) view returns (int8)
getCurrentBid
viewfunction getCurrentBid(int16, int16) view returns (uint256 amount, address bidder)
getOutbidPrice
purefunction getOutbidPrice(uint256 bidPrice) pure returns (uint256)
getPriceOf
viewfunction getPriceOf(int16 x, int16 y) view returns (uint256)
getReservePrice
viewfunction getReservePrice(int16 x, int16 y) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
GRID_SETTER_ROLE
viewfunction GRID_SETTER_ROLE() view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isShiboshiZone
purefunction isShiboshiZone(int16 x, int16 y) pure returns (bool)
landRegistry
viewfunction landRegistry() view returns (address)
lockLeash
viewfunction lockLeash() view returns (address)
lockShiboshi
viewfunction lockShiboshi() view returns (address)
M
viewfunction M() view returns (uint16)
multiBidEnabled
viewfunction multiBidEnabled() view returns (bool)
N
viewfunction N() view returns (uint16)
priceOfCategory
viewfunction priceOfCategory(int8) view returns (uint256)
signerAddress
viewfunction signerAddress() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
weightToCapacity
purefunction weightToCapacity(uint256 weightLeash, uint256 weightShiboshi) pure returns (uint256)
weth
viewfunction weth() view returns (address)
winningsBidsOf
viewfunction winningsBidsOf(address) view returns (uint256)
xHigh
viewfunction xHigh() view returns (int16)
xLow
viewfunction xLow() view returns (int16)
yHigh
viewfunction yHigh() view returns (int16)
yLow
viewfunction yLow() view returns (int16)
bidMulti
payablefunction bidMulti(int16[] xs, int16[] ys, uint256[] prices) payable
bidOne
payablefunction bidOne(int16 x, int16 y) payable
bidShiboshiZoneMulti
payablefunction bidShiboshiZoneMulti(int16[] xs, int16[] ys, uint256[] prices, bytes signature) payable
bidShiboshiZoneOne
payablefunction bidShiboshiZoneOne(int16 x, int16 y, bytes signature) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
mintPrivate
payablefunction mintPrivate(int16 x, int16 y) payable
mintPrivateShiboshiZone
payablefunction mintPrivateShiboshiZone(int16 x, int16 y, bytes signature) payable
mintPublic
payablefunction mintPublic(int16 x, int16 y) payable
mintWinningBid
nonpayablefunction mintWinningBid(int16[] xs, int16[] ys)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setGridVal
nonpayablefunction setGridVal(int16 x1, int16 y1, int16 x2, int16 y2, int8 val)
setLandRegistry
nonpayablefunction setLandRegistry(address _landRegistry)
setLockLeash
nonpayablefunction setLockLeash(address _lockLeash)
setLockShiboshi
nonpayablefunction setLockShiboshi(address _lockShiboshi)
setMultiBid
nonpayablefunction setMultiBid(bool desiredValue)
setPriceOfCategory
nonpayablefunction setPriceOfCategory(int8 category, uint256 price)
setSignerAddress
nonpayablefunction setSignerAddress(address signer)
setStage
nonpayablefunction setStage(uint256 stage)
withdraw
nonpayablefunction withdraw(address to, uint256 amount)
events
BidCreated
event BidCreated(address indexed user, uint32 indexed encXY, int16 x, int16 y, uint256 price, uint256 time)
CategoryPriceSet
event CategoryPriceSet(int8 category, uint256 price)
LandBought
event LandBought(address indexed user, uint32 indexed encXY, int16 x, int16 y, uint256 price, uint8 saleStage)
multiBidToggled
event multiBidToggled(bool newValue)
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)
SignerSet
event SignerSet(address signer)
StageSet
event StageSet(uint256 stage)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620040c7380380620040c783398101604081905262000034916200017f565b6001805562000045600033620000c5565b620000707e2250fe51283021e04a7ab438c6e1fb5184bc6bc6b97d70d0deb8942f11485a33620000c5565b6001600160a01b03938416608052600280549385166001600160a01b031994851617905560038054928516928416929092179091556004805491909316908216179091556005805490911633179055620001e7565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000162576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001213390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6001600160a01b03811681146200017c57600080fd5b50565b600080600080608085870312156200019657600080fd5b8451620001a38162000166565b6020860151909450620001b68162000166565b6040860151909350620001c98162000166565b6060860151909250620001dc8162000166565b939692955090935050565b608051613eb6620002116000396000818161048301528181612f390152612fce0152613eb66000f3fe6080604052600436106102c85760003560e01c806391d1485411610175578063d598c9e9116100dc578063e45d1cf811610095578063f4bdf6ac1161006f578063f4bdf6ac1461090d578063f4c9cbf314610920578063f5ada9ad14610940578063f7eeae621461096057600080fd5b8063e45d1cf8146108ba578063ed9969a4146108da578063f3fef3a3146108ed57600080fd5b8063d598c9e91461080e578063d5ed9cba14610823578063d630891014610843578063d9d99d2314610863578063dce5fdbf14610876578063dfc1a731146108a457600080fd5b8063bd4dc0241161012e578063bd4dc02414610766578063c67d054514610786578063c9e525df146107a6578063cacee621146107bb578063d25b730a146107ce578063d547741f146107ee57600080fd5b806391d1485414610662578063935302cc14610682578063983316db146106a2578063a217fddf146106d5578063aaf5ddcd146106ea578063afc01ac31461075057600080fd5b80634441a88d11610234578063674cb7c6116101ed57806370cbc961116101c757806370cbc961146105e257806374ed6242146106025780637be8a6771461062257806386d35a7b1461064257600080fd5b8063674cb7c61461057a578063693f917e1461059a5780636e6bdc2b146105c257600080fd5b80634441a88d146104bd57806347c3593f146104d05780635b7633d0146104f85780635bf5d54c146105185780635f4b10251461054657806363b157691461056757600080fd5b80631b3e9916116102865780631b3e9916146103b3578063248a9ca3146103e15780632f2ff15d1461041157806336568abe146104315780633eb1d777146104515780633fc8cef31461047157600080fd5b80626a25dd146102cd57806301ffc9a71461030057806302ed71ae14610330578063046dc166146103525780630c6838bc1461037257806317996362146103a0575b600080fd5b3480156102d957600080fd5b506102ed6102e8366004613440565b610993565b6040519081526020015b60405180910390f35b34801561030c57600080fd5b5061032061031b36600461345b565b610ab4565b60405190151581526020016102f7565b34801561033c57600080fd5b5061035061034b366004613440565b610aeb565b005b34801561035e57600080fd5b5061035061036d366004613440565b610b1a565b34801561037e57600080fd5b506102ed61038d366004613440565b6105c66020526000908152604090205481565b6103506103ae3660046134d9565b610bd7565b3480156103bf57600080fd5b506103d36103ce366004613440565b610cdf565b6040516102f7929190613578565b3480156103ed57600080fd5b506102ed6103fc3660046135a6565b60009081526020819052604090206001015490565b34801561041d57600080fd5b5061035061042c3660046135bf565b610e48565b34801561043d57600080fd5b5061035061044c3660046135bf565b610e73565b34801561045d57600080fd5b5061035061046c3660046135a6565b610ef1565b34801561047d57600080fd5b506104a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102f7565b6103506104cb366004613630565b610f66565b3480156104dc57600080fd5b506104e5606381565b60405160019190910b81526020016102f7565b34801561050457600080fd5b506005546104a5906001600160a01b031681565b34801561052457600080fd5b5060055461053990600160a01b900460ff1681565b6040516102f7919061372c565b34801561055257600080fd5b5060045461032090600160a01b900460ff1681565b6103506105753660046134d9565b6111e7565b34801561058657600080fd5b506004546104a5906001600160a01b031681565b3480156105a657600080fd5b506105af60c881565b60405161ffff90911681526020016102f7565b3480156105ce57600080fd5b506103206105dd36600461373a565b611344565b3480156105ee57600080fd5b506003546104a5906001600160a01b031681565b34801561060e57600080fd5b5061035061061d366004613776565b611452565b34801561062e57600080fd5b506102ed61063d36600461373a565b6114cf565b34801561064e57600080fd5b5061035061065d3660046137a0565b611517565b34801561066e57600080fd5b5061032061067d3660046135bf565b6115cf565b34801561068e57600080fd5b506102ed61069d36600461373a565b6115f8565b3480156106ae57600080fd5b506102ed7e2250fe51283021e04a7ab438c6e1fb5184bc6bc6b97d70d0deb8942f11485a81565b3480156106e157600080fd5b506102ed600081565b3480156106f657600080fd5b5061073361070536600461373a565b6105c4602090815260009283526040808420909152908252902080546001909101546001600160a01b031682565b604080519283526001600160a01b039091166020830152016102f7565b34801561075c57600080fd5b506104e560621981565b34801561077257600080fd5b506002546104a5906001600160a01b031681565b34801561079257600080fd5b506102ed6107a1366004613805565b61166e565b3480156107b257600080fd5b506105af60c281565b6103506107c936600461373a565b611848565b3480156107da57600080fd5b506103506107e9366004613835565b611919565b3480156107fa57600080fd5b506103506108093660046135bf565b6119d4565b34801561081a57600080fd5b506104e5606081565b34801561082f57600080fd5b5061035061083e366004613440565b6119fa565b34801561084f57600080fd5b506102ed61085e3660046135a6565b611a29565b610350610871366004613852565b611a42565b34801561088257600080fd5b506102ed6108913660046138ec565b6105c56020526000908152604090205481565b3480156108b057600080fd5b506104e5605f1981565b3480156108c657600080fd5b506103506108d5366004613907565b611ce7565b6103506108e836600461373a565b611f63565b3480156108f957600080fd5b50610350610908366004613967565b61209a565b61035061091b36600461373a565b6120e2565b34801561092c57600080fd5b5061035061093b366004613440565b6121d5565b34801561094c57600080fd5b506103d361095b366004613440565b612204565b34801561096c57600080fd5b5061098061097b36600461373a565b6123ca565b60405160009190910b81526020016102f7565b60035460405163dd4bc10160e01b81526001600160a01b038381166004830152600092839291169063dd4bc10190602401602060405180830381865afa1580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a059190613983565b6004805460405163dd4bc10160e01b81526001600160a01b038781169382019390935292935060009291169063dd4bc10190602401602060405180830381865afa158015610a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7b9190613983565b6001600160a01b03851660009081526105c66020526040902054909150610aa2838361166e565b610aac91906139b2565b949350505050565b60006001600160e01b03198216637965db0b60e01b1480610ae557506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610af7813361246b565b50600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b26813361246b565b6001600160a01b038216610b815760405162461bcd60e51b815260206004820152601a60248201527f4552525f43414e4e4f545f42455f5a45524f5f4144445245535300000000000060448201526064015b60405180910390fd5b600580546001600160a01b0319166001600160a01b0384169081179091556040519081527f9eaa897564d022fb8c5efaf0acdb5d9d27b440b2aad44400b6e1c702e65b9ed3906020015b60405180910390a15050565b600180600554600160a01b900460ff166003811115610bf857610bf86136f4565b14610c155760405162461bcd60e51b8152600401610b78906139c9565b600260015403610c375760405162461bcd60e51b8152600401610b7890613a00565b600260015533610c85610c49826124cf565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061250f92505050565b610ca15760405162461bcd60e51b8152600401610b7890613a37565b610cab8686611344565b610cc75760405162461bcd60e51b8152600401610b7890613a66565b610cd38187873461253c565b50506001805550505050565b6001600160a01b03811660009081526105c7602052604081208054606092839291908167ffffffffffffffff811115610d1a57610d1a613a9d565b604051908082528060200260200182016040528015610d43578160200160208202803683370190505b50905060008267ffffffffffffffff811115610d6157610d61613a9d565b604051908082528060200260200182016040528015610d8a578160200160208202803683370190505b50905060005b83811015610e3b57600080610ddb878481548110610db057610db0613ab3565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16612886565b9150915081858481518110610df257610df2613ab3565b602002602001019060010b908160010b8152505080848481518110610e1957610e19613ab3565b600192830b602091820292909201015283019150610e349050565b9050610d90565b5090969095509350505050565b600082815260208190526040902060010154610e64813361246b565b610e6e83836128b0565b505050565b6001600160a01b0381163314610ee35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610b78565b610eed8282612934565b5050565b6000610efd813361246b565b816003811115610f0f57610f0f6136f4565b6005805460ff60a01b1916600160a01b836003811115610f3157610f316136f4565b02179055506040518281527f02f604feff374725ab69a4a6b22fbfb7f79b787bc42299abdea1de38ec4ef4b690602001610bcb565b600180600554600160a01b900460ff166003811115610f8757610f876136f4565b14610fa45760405162461bcd60e51b8152600401610b78906139c9565b600260015403610fc65760405162461bcd60e51b8152600401610b7890613a00565b6002600155600454600160a01b900460ff1661101d5760405162461bcd60e51b815260206004820152601660248201527511549497d35553151257d0925117d11254d05093115160521b6044820152606401610b78565b3361102a610c49826124cf565b6110465760405162461bcd60e51b8152600401610b7890613a37565b8860008190036110875760405162461bcd60e51b815260206004820152600c60248201526b11549497d393d7d25394155560a21b6044820152606401610b78565b8088146110a65760405162461bcd60e51b8152600401610b7890613ac9565b8086146110c55760405162461bcd60e51b8152600401610b7890613ac9565b6000805b828110156110ff578888828181106110e3576110e3613ab3565b90506020020135826110f59190613b00565b91506001016110c9565b5080341461111f5760405162461bcd60e51b8152600401610b7890613b18565b60005b828110156111d45760008d8d8381811061113e5761113e613ab3565b90506020020160208101906111539190613b4f565b905060008c8c8481811061116957611169613ab3565b905060200201602081019061117e9190613b4f565b905061118a8282611344565b6111a65760405162461bcd60e51b8152600401610b7890613a66565b6111ca8683838e8e888181106111be576111be613ab3565b9050602002013561253c565b5050600101611122565b5050600180555050505050505050505050565b600280600554600160a01b900460ff166003811115611208576112086136f4565b146112255760405162461bcd60e51b8152600401610b78906139c9565b6002600154036112475760405162461bcd60e51b8152600401610b7890613a00565b6002600155611294611258336124cf565b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061250f92505050565b6112b05760405162461bcd60e51b8152600401610b7890613a37565b6112ba8585611344565b6112d65760405162461bcd60e51b8152600401610b7890613a66565b6112e1338686612999565b6112eb8585612bcf565b63ffffffff16336001600160a01b03167f43b6df8ffaf0a6a2607904d905d7f580b6beba1e6be91cbadb435af747ad2d7d87873460026040516113319493929190613b6a565b60405180910390a3505060018055505050565b6000600c8360010b1215801561135e575060308360010b13155b801561136e575060638260010b13155b801561137e575060418260010b12155b1561138b57506001610ae5565b60318360010b121580156113a35750604d8360010b13155b80156113b3575060638260010b13155b80156113c35750604e8260010b12155b156113d057506001610ae5565b604c8360010b121580156113e85750604d8360010b13155b80156113f85750604d8260010b13155b8015611408575060328260010b12155b1561141557506001610ae5565b60418360010b1215801561142d5750604b8360010b13155b801561143c57508160010b6032145b1561144957506001610ae5565b50600092915050565b7e2250fe51283021e04a7ab438c6e1fb5184bc6bc6b97d70d0deb8942f11485a61147c813361246b565b600083810b8082526105c56020908152604092839020859055825191825281018490527fea1da7e36fe3951edfbb12f84178022f310397711a3ae0c018285e5aaaef0e2e910160405180910390a1505050565b600182810b60009081526105c4602090815260408083209385900b83529290529081208054820361150c5761150484846115f8565b915050610ae5565b805461150490611a29565b7e2250fe51283021e04a7ab438c6e1fb5184bc6bc6b97d70d0deb8942f11485a611541813361246b565b60008061154e8888612bfb565b9150915060008061155f8888612bfb565b9092509050611583611572836001613b91565b61157d836001613b91565b88612c91565b61158e848488612c91565b6115ab8461159d836001613b91565b6115a689613bb7565b612c91565b6115c36115b9836001613b91565b846115a689613bb7565b50505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000806105c5600061160a86866123ca565b60000b60000b8152602001908152602001600020549050806000036116675760405162461bcd60e51b81526020600482015260136024820152724552525f4e4f545f55505f464f525f53414c4560681b6044820152606401610b78565b9392505050565b60008060405180610140016040528060098152602001601e8152602001603c8152602001606481526020016082815260200160b4815260200160dc815260200161012c815260200161017281526020016101a381525090506000604051806101400160405280602d8152602001605981526020016096815260200160fa815260200161015e81526020016101e0815260200161025881526020016102bc81526020016103208152602001610352815250905060006040518061014001604052806001815260200160058152602001600a815260200160148152602001603281526020016050815260200160648152602001608c815260200160b4815260200160c881525090506000808711156117e45760095b8481600a811061179357611793613ab3565b60200201516117aa90670de0b6b3a7640000613bd5565b8811156117d9578281600a81106117c3576117c3613ab3565b60200201516117d29083613b00565b91506117e2565b60001901611781565b505b851561183e5760095b8381600a81106117ff576117ff613ab3565b6020020151871115611833578281600a811061181d5761181d613ab3565b602002015161182c9083613b00565b915061183c565b600019016117ed565b505b9695505050505050565b600380600554600160a01b900460ff166003811115611869576118696136f4565b146118865760405162461bcd60e51b8152600401610b78906139c9565b6002600154036118a85760405162461bcd60e51b8152600401610b7890613a00565b60026001556118b8338484612999565b6118c28383612bcf565b63ffffffff16336001600160a01b03167f43b6df8ffaf0a6a2607904d905d7f580b6beba1e6be91cbadb435af747ad2d7d85853460036040516119089493929190613b6a565b60405180910390a350506001805550565b6000611925813361246b565b811515600460149054906101000a900460ff161515036119875760405162461bcd60e51b815260206004820152601960248201527f4552525f414c52454144595f444553495245445f56414c5545000000000000006044820152606401610b78565b60048054831515600160a01b0260ff60a01b199091161790556040517f76a6a5331d7729d07d3b7aa48167f88011af5b788170ae801a227eac3bc21a3790610bcb90841515815260200190565b6000828152602081905260409020600101546119f0813361246b565b610e6e8383612934565b6000611a06813361246b565b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006014611a38836015613bd5565b610ae59190613bf4565b600180600554600160a01b900460ff166003811115611a6357611a636136f4565b14611a805760405162461bcd60e51b8152600401610b78906139c9565b600260015403611aa25760405162461bcd60e51b8152600401610b7890613a00565b6002600155600454600160a01b900460ff16611af95760405162461bcd60e51b815260206004820152601660248201527511549497d35553151257d0925117d11254d05093115160521b6044820152606401610b78565b33866000819003611b3b5760405162461bcd60e51b815260206004820152600c60248201526b11549497d393d7d25394155560a21b6044820152606401610b78565b808614611b5a5760405162461bcd60e51b8152600401610b7890613ac9565b808414611b795760405162461bcd60e51b8152600401610b7890613ac9565b600081611b8584610993565b1015611bd35760405162461bcd60e51b815260206004820152601f60248201527f4552525f494e53554646494349454e545f424944535f52454d41494e494e47006044820152606401610b78565b60005b82811015611c0c57868682818110611bf057611bf0613ab3565b9050602002013582611c029190613b00565b9150600101611bd6565b50803414611c2c5760405162461bcd60e51b8152600401610b7890613b18565b60005b82811015611cd65760008b8b83818110611c4b57611c4b613ab3565b9050602002016020810190611c609190613b4f565b905060008a8a84818110611c7657611c76613ab3565b9050602002016020810190611c8b9190613b4f565b9050611c978282611344565b15611cb45760405162461bcd60e51b8152600401610b7890613c16565b611ccc8683838c8c888181106111be576111be613ab3565b5050600101611c2f565b505060018055505050505050505050565b6003600554600160a01b900460ff166003811115611d0757611d076136f4565b1480611d3057506002600554600160a01b900460ff166003811115611d2e57611d2e6136f4565b145b611d7c5760405162461bcd60e51b815260206004820181905260248201527f4552525f4d5553545f574149545f464f525f42494444494e475f544f5f454e446044820152606401610b78565b82818114611d9c5760405162461bcd60e51b8152600401610b7890613ac9565b60005b81811015611f5b576000868683818110611dbb57611dbb613ab3565b9050602002016020810190611dd09190613b4f565b90506000858584818110611de657611de6613ab3565b9050602002016020810190611dfb9190613b4f565b9050600182900b605f1913801590611e1857506060600183900b13155b611e345760405162461bcd60e51b8152600401610b7890613c4d565b600181900b60621913801590611e4f57506063600182900b13155b611e6b5760405162461bcd60e51b8152600401610b7890613c79565b600182810b60009081526105c46020908152604080832085850b8452909152902001546001600160a01b031680611ed75760405162461bcd60e51b815260206004820152601060248201526f11549497d393d7d0925117d193d5539160821b6044820152606401610b78565b60025460405162edcc2360e71b81526001600160a01b038381166004830152600186810b602484015285900b6044830152909116906376e6118090606401600060405180830381600087803b158015611f2f57600080fd5b505af1158015611f43573d6000803e3d6000fd5b50505050505050611f548160010190565b9050611d9f565b505050505050565b600280600554600160a01b900460ff166003811115611f8457611f846136f4565b14611fa15760405162461bcd60e51b8152600401610b78906139c9565b600260015403611fc35760405162461bcd60e51b8152600401610b7890613a00565b6002600155611fd133610993565b6000036120185760405162461bcd60e51b81526020600482015260156024820152744552525f4e4f5f424944535f52454d41494e494e4760581b6044820152606401610b78565b6120228383611344565b1561203f5760405162461bcd60e51b8152600401610b7890613c16565b61204a338484612999565b6120548383612bcf565b63ffffffff16336001600160a01b03167f43b6df8ffaf0a6a2607904d905d7f580b6beba1e6be91cbadb435af747ad2d7d85853460026040516119089493929190613b6a565b60006120a6813361246b565b6040516001600160a01b0384169083156108fc029084906000818181858888f193505050501580156120dc573d6000803e3d6000fd5b50505050565b600180600554600160a01b900460ff166003811115612103576121036136f4565b146121205760405162461bcd60e51b8152600401610b78906139c9565b6002600154036121425760405162461bcd60e51b8152600401610b7890613a00565b60026001553361215181610993565b6000036121985760405162461bcd60e51b81526020600482015260156024820152744552525f4e4f5f424944535f52454d41494e494e4760581b6044820152606401610b78565b6121a28484611344565b156121bf5760405162461bcd60e51b8152600401610b7890613c16565b6121cb8185853461253c565b5050600180555050565b60006121e1813361246b565b50600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526105c660205260408120546060918291908167ffffffffffffffff81111561223d5761223d613a9d565b604051908082528060200260200182016040528015612266578160200160208202803683370190505b50905060008267ffffffffffffffff81111561228457612284613a9d565b6040519080825280602002602001820160405280156122ad578160200160208202803683370190505b506001600160a01b03871660009081526105c76020526040812080549293509091825b818110156123ba576001600160a01b038a1660009081526105c860205260408120845490919085908490811061230857612308613ab3565b6000918252602080832060088304015460079092166004026101000a90910463ffffffff16835282019290925260400190205460ff166001036123b25760008061235d858481548110610db057610db0613ab3565b915091508188878151811061237457612374613ab3565b602002602001019060010b908160010b815250508087878151811061239b5761239b613ab3565b600192830b60209182029290920101528601955050505b6001016122d0565b5093989297509195505050505050565b60008060006123d98585612bfb565b90925090506000825b61ffff81161561246157825b61ffff8116156124525760068261ffff1660d2811061240f5761240f613ab3565b600702018161ffff1660cc811061242857612428613ab3565b602081049190910154601f9091166101000a9004600090810b9390930192819003811690036123ee565b506000819003811690036123e2565b5095945050505050565b61247582826115cf565b610eed5761248d816001600160a01b03166014612d2e565b612498836020612d2e565b6040516020016124a9929190613cd1565b60408051601f198184030181529082905262461bcd60e51b8252610b7891600401613d46565b6040516bffffffffffffffffffffffff19606083901b1660208201526000906034015b604051602081830303815290604052805190602001209050919050565b60006125248261251e85612eca565b90612f05565b6005546001600160a01b039182169116149392505050565b8282600182900b605f191380159061255957506060600183900b13155b6125755760405162461bcd60e51b8152600401610b7890613c4d565b600181900b6062191380159061259057506063600182900b13155b6125ac5760405162461bcd60e51b8152600401610b7890613c79565b60006125b88686612bcf565b600187810b60009081526105c460209081526040808320938a900b83529290529081208054929350919003612615576125f187876115f8565b8510156126105760405162461bcd60e51b8152600401610b7890613b18565b612726565b60018101546001600160a01b03908116908916036126755760405162461bcd60e51b815260206004820152601a60248201527f4552525f43414e4e4f545f4f55544249445f594f555253454c460000000000006044820152606401610b78565b805461268090611a29565b85101561269f5760405162461bcd60e51b8152600401610b7890613b18565b600181015481546126b9916001600160a01b031690612f29565b6001818101546001600160a01b031660009081526105c66020526040812080549091906126e79084906139b2565b909155505060018101546001600160a01b031660009081526105c86020908152604080832063ffffffff861684529091529020805460ff191660021790555b600181810180546001600160a01b0319166001600160a01b038b1690811790915586835560009081526105c6602052604081208054909190612769908490613b00565b90915550506001600160a01b03881660009081526105c86020908152604080832063ffffffff8616845290915281205460ff1690036127f4576001600160a01b03881660009081526105c7602090815260408220805460018101825590835291206008820401805460079092166004026101000a63ffffffff81810219909316928516029190911790555b6001600160a01b03881660008181526105c86020908152604080832063ffffffff871680855290835292819020805460ff1916600190811790915581518c820b8152908b900b9281019290925281018890524260608201529091907f634d7a21f3602fc1b9ebe6a41b4de9dedabd8186a8e4d4f8c04bcac3e11e133c9060800160405180910390a35050505050505050565b60008061289a61ffff601085901c1661303f565b91506128a961ffff841661303f565b9050915091565b6128ba82826115cf565b610eed576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556128f03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61293e82826115cf565b15610eed576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8181600182900b605f19138015906129b657506060600183900b13155b6129d25760405162461bcd60e51b8152600401610b7890613c4d565b600181900b606219138015906129ed57506063600182900b13155b612a095760405162461bcd60e51b8152600401610b7890613c79565b600184810b60009081526105c4602090815260408083209387900b835292905220805415612a6f5760405162461bcd60e51b81526020600482015260136024820152724552525f4e4f545f55505f464f525f53414c4560681b6044820152606401610b78565b612a7985856115f8565b3414612a975760405162461bcd60e51b8152600401610b7890613b18565b600181810180546001600160a01b0319166001600160a01b03891690811790915534835560009081526105c6602052604081208054909190612ada908490613b00565b9091555060009050612aec8686612bcf565b6001600160a01b0388811660008181526105c7602090815260408083208054600180820183559185528385206008820401805463ffffffff8a81166004600790951685026101000a818102920219909216179091558686526105c8855283862090865290935292819020805460ff191684179055600254905162edcc2360e71b8152918201939093528a820b60248201529089900b604482015292935016906376e6118090606401600060405180830381600087803b158015612bae57600080fd5b505af1158015612bc2573d6000803e3d6000fd5b5050505050505050505050565b600061ffff8261ffff161663ffff0000620100008561ffff16612bf29190613d79565b16179392505050565b6000808383600182900b605f1913801590612c1b57506060600183900b13155b612c375760405162461bcd60e51b8152600401610b7890613c4d565b600181900b60621913801590612c5257506063600182900b13155b612c6e5760405162461bcd60e51b8152600401610b7890613c79565b612c79866061613da5565b612c84866064613dea565b9350935050509250929050565b825b60c261ffff8216116120dc57825b60c861ffff821611612d20578260068361ffff1660d28110612cc557612cc5613ab3565b600702018261ffff1660cc8110612cde57612cde613ab3565b60208104909101805460ff601f9093166101000a80820460000b909401831684029290930219909216179055612d1981600081900381160190565b9050612ca1565b506000819003811601612c93565b60606000612d3d836002613bd5565b612d48906002613b00565b67ffffffffffffffff811115612d6057612d60613a9d565b6040519080825280601f01601f191660200182016040528015612d8a576020820181803683370190505b509050600360fc1b81600081518110612da557612da5613ab3565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612dd457612dd4613ab3565b60200101906001600160f81b031916908160001a9053506000612df8846002613bd5565b612e03906001613b00565b90505b6001811115612e7b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612e3757612e37613ab3565b1a60f81b828281518110612e4d57612e4d613ab3565b60200101906001600160f81b031916908160001a90535060049490941c93612e7481613e30565b9050612e06565b5083156116675760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610b78565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016124f2565b6000806000612f148585613059565b91509150612f21816130c7565b509392505050565b612f338282613280565b610eed577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925060440190506020604051808303816000875af115801561301b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6e9190613e47565b6000618000821615613055575063ffff00001790565b5090565b600080825160410361308f5760208301516040840151606085015160001a613083878285856132fe565b945094505050506130c0565b82516040036130b857602083015160408401516130ad8683836133eb565b9350935050506130c0565b506000905060025b9250929050565b60008160048111156130db576130db6136f4565b036130e35750565b60018160048111156130f7576130f76136f4565b036131445760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b78565b6002816004811115613158576131586136f4565b036131a55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b78565b60038160048111156131b9576131b96136f4565b036132115760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b78565b6004816004811115613225576132256136f4565b0361327d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b78565b50565b6040805160008082526020820190925281906001600160a01b038516906175309085906040516132b09190613e64565b600060405180830381858888f193505050503d80600081146132ee576040519150601f19603f3d011682016040523d82523d6000602084013e6132f3565b606091505b509095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561333557506000905060036133e2565b8460ff16601b1415801561334d57508460ff16601c14155b1561335e57506000905060046133e2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133b2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133db576000600192509250506133e2565b9150600090505b94509492505050565b6000806001600160ff1b0383168161340860ff86901c601b613b00565b9050613416878288856132fe565b935093505050935093915050565b80356001600160a01b038116811461343b57600080fd5b919050565b60006020828403121561345257600080fd5b61166782613424565b60006020828403121561346d57600080fd5b81356001600160e01b03198116811461166757600080fd5b8035600181900b811461343b57600080fd5b60008083601f8401126134a957600080fd5b50813567ffffffffffffffff8111156134c157600080fd5b6020830191508360208285010111156130c057600080fd5b600080600080606085870312156134ef57600080fd5b6134f885613485565b935061350660208601613485565b9250604085013567ffffffffffffffff81111561352257600080fd5b61352e87828801613497565b95989497509550505050565b600081518084526020808501945080840160005b8381101561356d578151600190810b885296830196918301910161354e565b509495945050505050565b60408152600061358b604083018561353a565b828103602084015261359d818561353a565b95945050505050565b6000602082840312156135b857600080fd5b5035919050565b600080604083850312156135d257600080fd5b823591506135e260208401613424565b90509250929050565b60008083601f8401126135fd57600080fd5b50813567ffffffffffffffff81111561361557600080fd5b6020830191508360208260051b85010111156130c057600080fd5b6000806000806000806000806080898b03121561364c57600080fd5b883567ffffffffffffffff8082111561366457600080fd5b6136708c838d016135eb565b909a50985060208b013591508082111561368957600080fd5b6136958c838d016135eb565b909850965060408b01359150808211156136ae57600080fd5b6136ba8c838d016135eb565b909650945060608b01359150808211156136d357600080fd5b506136e08b828c01613497565b999c989b5096995094979396929594505050565b634e487b7160e01b600052602160045260246000fd5b6004811061372857634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ae5828461370a565b6000806040838503121561374d57600080fd5b61375683613485565b91506135e260208401613485565b8035600081900b811461343b57600080fd5b6000806040838503121561378957600080fd5b61379283613764565b946020939093013593505050565b600080600080600060a086880312156137b857600080fd5b6137c186613485565b94506137cf60208701613485565b93506137dd60408701613485565b92506137eb60608701613485565b91506137f960808701613764565b90509295509295909350565b6000806040838503121561381857600080fd5b50508035926020909101359150565b801515811461327d57600080fd5b60006020828403121561384757600080fd5b813561166781613827565b6000806000806000806060878903121561386b57600080fd5b863567ffffffffffffffff8082111561388357600080fd5b61388f8a838b016135eb565b909850965060208901359150808211156138a857600080fd5b6138b48a838b016135eb565b909650945060408901359150808211156138cd57600080fd5b506138da89828a016135eb565b979a9699509497509295939492505050565b6000602082840312156138fe57600080fd5b61166782613764565b6000806000806040858703121561391d57600080fd5b843567ffffffffffffffff8082111561393557600080fd5b613941888389016135eb565b9096509450602087013591508082111561395a57600080fd5b5061352e878288016135eb565b6000806040838503121561397a57600080fd5b61379283613424565b60006020828403121561399557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156139c4576139c461399c565b500390565b6020808252601b908201527f4552525f544849535f53544147455f4e4f545f4c4956455f5945540000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526015908201527411549497d4d251d3905515549157d2539590531251605a1b604082015260600190565b60208082526018908201527f4552525f4e4f545f494e5f534849424f5348495f5a4f4e450000000000000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f4552525f494e5055545f4c454e4754485f4d49534d4154434800000000000000604082015260600190565b60008219821115613b1357613b1361399c565b500190565b6020808252601c908201527f4552525f494e53554646494349454e545f414d4f554e545f53454e5400000000604082015260600190565b600060208284031215613b6157600080fd5b61166782613485565b600185810b825284900b6020820152604081018390526080810161359d606083018461370a565b600061ffff808316818516808303821115613bae57613bae61399c565b01949350505050565b600081810b60808101613bcc57613bcc61399c565b60000392915050565b6000816000190483118215151615613bef57613bef61399c565b500290565b600082613c1157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252601c908201527f4552525f4e4f5f4d494e545f494e5f534849424f5348495f5a4f4e4500000000604082015260600190565b6020808252601290820152714552525f585f4f55545f4f465f52414e474560701b604082015260600190565b6020808252601290820152714552525f595f4f55545f4f465f52414e474560701b604082015260600190565b60005b83811015613cc0578181015183820152602001613ca8565b838111156120dc5750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d09816017850160208801613ca5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d3a816028840160208801613ca5565b01602801949350505050565b6020815260008251806020840152613d65816040850160208701613ca5565b601f01601f19169190910160400192915050565b600063ffffffff80831681851681830481118215151615613d9c57613d9c61399c565b02949350505050565b60008160010b8360010b6000821282617fff03821381151615613dca57613dca61399c565b82617fff19038212811615613de157613de161399c565b50019392505050565b60008160010b8360010b6000811281617fff1901831281151615613e1057613e1061399c565b81617fff018313811615613e2657613e2661399c565b5090039392505050565b600081613e3f57613e3f61399c565b506000190190565b600060208284031215613e5957600080fd5b815161166781613827565b60008251613e76818460208701613ca5565b919091019291505056fea2646970667358221220afebf16deae3a623e1e5356aff2fdb29d6e7137aae804d82fd7f910a8c025cc964736f6c634300080d0033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000efaed650f1a94801806bb110019d9b0dc79531a8000000000000000000000000cdefd353ba028a77c1cfbbf9571e7a19df582380000000000000000000000000be4e191b22368bff26aa60be498575c477af5cc3