9 txs
10 calls
constructor
constructor(string _name, string _symbol, address _tldOwner, uint256 _domainPrice, bool _buyingEnabled, uint256 _royalty, address _factoryAddress, address _metadataAddress)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
buyingDisabledForever
viewfunction buyingDisabledForever() view returns (bool)
buyingEnabled
viewfunction buyingEnabled() view returns (bool)
defaultNames
viewfunction defaultNames(address) view returns (string)
domainIdsNames
viewfunction domainIdsNames(uint256) view returns (string)
domains
viewfunction domains(string) view returns (string name, uint256 tokenId, address holder, string data)
FACTORY_ADDRESS
viewfunction FACTORY_ADDRESS() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getDomainData
viewfunction getDomainData(string _domainName) view returns (string)
getDomainHolder
viewfunction getDomainHolder(string _domainName) view returns (address)
idCounter
viewfunction idCounter() view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
metadataAddress
viewfunction metadataAddress() view returns (address)
metadataFrozen
viewfunction metadataFrozen() view returns (bool)
minter
viewfunction minter() view returns (address)
name
viewfunction name() view returns (string)
nameMaxLength
viewfunction nameMaxLength() view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
price
viewfunction price() view returns (uint256)
referral
viewfunction referral() view returns (uint256)
royalty
viewfunction royalty() view returns (uint256)
royaltyFeeReceiver
viewfunction royaltyFeeReceiver() view returns (address)
royaltyFeeUpdater
viewfunction royaltyFeeUpdater() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tldOwner
viewfunction tldOwner() view returns (address)
tokenURI
viewfunction tokenURI(uint256 _tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burn
nonpayablefunction burn(string _domainName)
changeMetadataAddress
nonpayablefunction changeMetadataAddress(address _metadataAddress)
changeMinter
nonpayablefunction changeMinter(address _minter)
changeNameMaxLength
nonpayablefunction changeNameMaxLength(uint256 _maxLength)
changePrice
nonpayablefunction changePrice(uint256 _price)
changeReferralFee
nonpayablefunction changeReferralFee(uint256 _referral)
changeRoyalty
nonpayablefunction changeRoyalty(uint256 _royalty)
changeRoyaltyFeeReceiver
nonpayablefunction changeRoyaltyFeeReceiver(address _newReceiver)
changeRoyaltyFeeUpdater
nonpayablefunction changeRoyaltyFeeUpdater(address _newUpdater)
disableBuyingForever
nonpayablefunction disableBuyingForever()
editData
nonpayablefunction editData(string _domainName, string _data)
editDefaultDomain
nonpayablefunction editDefaultDomain(string _domainName)
freezeMetadata
nonpayablefunction freezeMetadata()
mint
payablefunction mint(string _domainName, address _domainHolder, address _referrer) payable returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
toggleBuyingDomains
nonpayablefunction toggleBuyingDomains()
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
DataChanged
event DataChanged(address indexed user, string indexed domain)
DefaultDomainChanged
event DefaultDomainChanged(address indexed user, string defaultDomain)
DomainBurned
event DomainBurned(address indexed user, string fullDomainName)
DomainBuyingToggle
event DomainBuyingToggle(address indexed user, bool domainBuyingToggle)
DomainCreated
event DomainCreated(address indexed user, address indexed owner, string fullDomainName)
MintingDisabledForever
event MintingDisabledForever(address user)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReferralFeeChanged
event ReferralFeeChanged(address indexed user, uint256 referralFee)
TldPriceChanged
event TldPriceChanged(address indexed user, uint256 tldPrice)
TldRoyaltyChanged
event TldRoyaltyChanged(address indexed user, uint256 tldRoyalty)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
BuyingDisabled
error BuyingDisabled()
DisabledForever
error DisabledForever()
Empty
error Empty()
Exists
error Exists()
MetadataFrozen
error MetadataFrozen()
NoDots
error NoDots()
NoSpaces
error NoSpaces()
NotOwner
error NotOwner()
NotRoyaltyFeeReceiver
error NotRoyaltyFeeReceiver()
NotRoyaltyFeeUpdater
error NotRoyaltyFeeUpdater()
OnlyHolderCanEdit
error OnlyHolderCanEdit()
SendPaymentFailed
error SendPaymentFailed()
SendReferralFailed
error SendReferralFailed()
SendRoyaltyFailed
error SendRoyaltyFailed()
TooHigh
error TooHigh()
TooLong
error TooLong()
ValueBelowPrice
error ValueBelowPrice()
creation bytecode
0x60a0604052600b805462ffffff60a01b191690556001600d556103e8601055608c6011553480156200003057600080fd5b50604051620042f6380380620042f6833981016040819052620000539162000415565b8787600062000063838262000575565b50600162000072828262000575565b5050506200008f620000896200020560201b60201c565b62000209565b6001600755600e859055600b805460ff60a01b1916600160a01b86151502179055600f839055600880546001600160a01b0319166001600160a01b03838116919091179091558216608081905260408051638da5cb5b60e01b81529051849291638da5cb5b9160048083019260209291908290030181865afa1580156200011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000140919062000641565b600a60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cb919062000641565b600b80546001600160a01b0319166001600160a01b0392909216919091179055620001f6876200025b565b50505050505050505062000666565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546001600160a01b03163314620002bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620003225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620002b2565b6200032d8162000209565b50565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200035857600080fd5b81516001600160401b038082111562000375576200037562000330565b604051601f8301601f19908116603f01168101908282118183101715620003a057620003a062000330565b8160405283815260209250866020858801011115620003be57600080fd5b600091505b83821015620003e25785820183015181830184015290820190620003c3565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200041057600080fd5b919050565b600080600080600080600080610100898b0312156200043357600080fd5b88516001600160401b03808211156200044b57600080fd5b620004598c838d0162000346565b995060208b01519150808211156200047057600080fd5b506200047f8b828c0162000346565b9750506200049060408a01620003f8565b95506060890151945060808901518015158114620004ad57600080fd5b60a08a01519094509250620004c560c08a01620003f8565b9150620004d560e08a01620003f8565b90509295985092959890939650565b600181811c90821680620004f957607f821691505b6020821081036200051a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000570576000816000526020600020601f850160051c810160208610156200054b5750805b601f850160051c820191505b818110156200056c5782815560010162000557565b5050505b505050565b81516001600160401b0381111562000591576200059162000330565b620005a981620005a28454620004e4565b8462000520565b602080601f831160018114620005e15760008415620005c85750858301515b600019600386901b1c1916600185901b1785556200056c565b600085815260208120601f198616915b828110156200061257888601518255948401946001909101908401620005f1565b5085821015620006315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200065457600080fd5b6200065f82620003f8565b9392505050565b608051613c746200068260003960006106490152613c746000f3fe6080604052600436106102e45760003560e01c806385dae74211610190578063bfcdd7c3116100dc578063dafa1d2d11610095578063e985e9c51161006f578063e985e9c5146108ab578063eb08ab28146108f4578063f2fde38b1461090a578063fb3cc6c21461092a57600080fd5b8063dafa1d2d14610856578063db6bf92014610876578063dbd843b51461089657600080fd5b8063bfcdd7c3146107a0578063c1e25151146107c0578063c87b56dd146107e0578063d111515d14610800578063d2b525d314610815578063d85451ff1461083557600080fd5b80639fbb8e8611610149578063a2b40d1911610123578063a2b40d191461072b578063b88d4fde1461074b578063ba833c4b1461076b578063bf70e90d1461078b57600080fd5b80639fbb8e86146106d5578063a035b1fe146106f5578063a22cb4651461070b57600080fd5b806385dae742146106225780638823151b146106375780638da5cb5b1461066b5780638ed2fe911461068957806395d89b41146106aa5780639f034691146106bf57600080fd5b80633a516d171161024f5780636eb3500d1161020857806374305d09116101e257806374305d09146105af57806378a6743b146105cf5780637afdfb4f146105ef5780637e6d945e1461060f57600080fd5b80636eb3500d1461055a57806370a082311461057a578063715018a61461059a57600080fd5b80633a516d171461049a57806342842e0e146104ba5780634c6dcb7f146104da5780635dedf3b5146104fa57806362ac7a841461051a5780636352211e1461053a57600080fd5b806318160ddd116102a157806318160ddd146103de5780631fd21214146103f457806323b872dd14610414578063264492351461043457806329ee566c146104645780632c4d4d181461047a57600080fd5b806301ffc9a7146102e957806306fdde031461031e5780630754617214610340578063081812fc14610378578063095ea7b3146103985780631441a5a9146103ba575b600080fd5b3480156102f557600080fd5b50610309610304366004612f8b565b61094b565b60405190151581526020015b60405180910390f35b34801561032a57600080fd5b5061033361099d565b6040516103159190612fff565b34801561034c57600080fd5b50600954610360906001600160a01b031681565b6040516001600160a01b039091168152602001610315565b34801561038457600080fd5b50610360610393366004613012565b610a2f565b3480156103a457600080fd5b506103b86103b3366004613047565b610ac9565b005b3480156103c657600080fd5b506103d060105481565b604051908152602001610315565b3480156103ea57600080fd5b506103d0600c5481565b34801561040057600080fd5b50600a54610360906001600160a01b031681565b34801561042057600080fd5b506103b861042f366004613071565b610bde565b34801561044057600080fd5b5061045461044f36600461317a565b610c0f565b60405161031594939291906131af565b34801561047057600080fd5b506103d0600f5481565b34801561048657600080fd5b506103b86104953660046131ea565b610d60565b3480156104a657600080fd5b506103b86104b53660046131ea565b610dac565b3480156104c657600080fd5b506103b86104d5366004613071565b610e23565b3480156104e657600080fd5b506103b86104f53660046131ea565b610e3e565b34801561050657600080fd5b506103b8610515366004613012565b610e94565b34801561052657600080fd5b506103336105353660046131ea565b610ec3565b34801561054657600080fd5b50610360610555366004613012565b610f5d565b34801561056657600080fd5b50600854610360906001600160a01b031681565b34801561058657600080fd5b506103d06105953660046131ea565b610fd4565b3480156105a657600080fd5b506103b861105b565b3480156105bb57600080fd5b506103b86105ca3660046131ea565b611091565b3480156105db57600080fd5b506103b86105ea366004613012565b6110e7565b3480156105fb57600080fd5b5061033361060a36600461324e565b611171565b6103d061061d366004613290565b611263565b34801561062e57600080fd5b5061036061139e565b34801561064357600080fd5b506103607f000000000000000000000000000000000000000000000000000000000000000081565b34801561067757600080fd5b506006546001600160a01b0316610360565b34801561069557600080fd5b50600b5461030990600160a01b900460ff1681565b3480156106b657600080fd5b506103336113b7565b3480156106cb57600080fd5b506103d060115481565b3480156106e157600080fd5b50600b54610360906001600160a01b031681565b34801561070157600080fd5b506103d0600e5481565b34801561071757600080fd5b506103b86107263660046132ee565b6113c6565b34801561073757600080fd5b506103b8610746366004613012565b6113d5565b34801561075757600080fd5b506103b861076636600461332a565b611436565b34801561077757600080fd5b506103b86107863660046133a6565b61146e565b34801561079757600080fd5b506103b8611591565b3480156107ac57600080fd5b506103606107bb36600461324e565b61161e565b3480156107cc57600080fd5b506103b86107db366004613012565b611692565b3480156107ec57600080fd5b506103336107fb366004613012565b611720565b34801561080c57600080fd5b506103b86117d3565b34801561082157600080fd5b50610333610830366004613012565b611812565b34801561084157600080fd5b50600b5461030990600160a81b900460ff1681565b34801561086257600080fd5b506103b861087136600461324e565b61182b565b34801561088257600080fd5b506103b861089136600461324e565b611a1e565b3480156108a257600080fd5b506103b8611b15565b3480156108b757600080fd5b506103096108c6366004613412565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561090057600080fd5b506103d0600d5481565b34801561091657600080fd5b506103b86109253660046131ea565b611b97565b34801561093657600080fd5b50600b5461030990600160b01b900460ff1681565b60006001600160e01b031982166380ac58cd60e01b148061097c57506001600160e01b03198216635b5e139f60e01b145b8061099757506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546109ac90613445565b80601f01602080910402602001604051908101604052809291908181526020018280546109d890613445565b8015610a255780601f106109fa57610100808354040283529160200191610a25565b820191906000526020600020905b815481529060010190602001808311610a0857829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610aad5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610ad482610f5d565b9050806001600160a01b0316836001600160a01b031603610b415760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610aa4565b336001600160a01b0382161480610b5d5750610b5d81336108c6565b610bcf5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610aa4565b610bd98383611c32565b505050565b610be83382611ca0565b610c045760405162461bcd60e51b8152600401610aa49061347f565b610bd9838383611d97565b8051602081830181018051601282529282019190930120915280548190610c3590613445565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6190613445565b8015610cae5780601f10610c8357610100808354040283529160200191610cae565b820191906000526020600020905b815481529060010190602001808311610c9157829003601f168201915b5050505060018301546002840154600385018054949592946001600160a01b03909216935090610cdd90613445565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0990613445565b8015610d565780601f10610d2b57610100808354040283529160200191610d56565b820191906000526020600020905b815481529060010190602001808311610d3957829003601f168201915b5050505050905084565b6006546001600160a01b03163314610d8a5760405162461bcd60e51b8152600401610aa4906134d0565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610dd65760405162461bcd60e51b8152600401610aa4906134d0565b600b54600160b01b900460ff1615610e015760405163777821ff60e11b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610bd983838360405180602001604052806000815250611436565b600a546001600160a01b0316336001600160a01b031614610e7257604051636a7c157960e11b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610ebe5760405162461bcd60e51b8152600401610aa4906134d0565b601155565b60146020526000908152604090208054610edc90613445565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0890613445565b8015610f555780601f10610f2a57610100808354040283529160200191610f55565b820191906000526020600020905b815481529060010190602001808311610f3857829003601f168201915b505050505081565b6000818152600260205260408120546001600160a01b0316806109975760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610aa4565b60006001600160a01b03821661103f5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610aa4565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b031633146110855760405162461bcd60e51b8152600401610aa4906134d0565b61108f6000611f42565b565b600b546001600160a01b0316336001600160a01b0316146110c5576040516362742dd360e01b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146111115760405162461bcd60e51b8152600401610aa4906134d0565b611388811061113357604051637901a5a760e11b815260040160405180910390fd5b601081905560405181815233907f38d0cf7a8174d3978a2d52052d658cfb52bae5c6ffdad178bf1052ba56ea122e906020015b60405180910390a250565b606060126111b484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f9492505050565b6040516111c19190613505565b908152602001604051809103902060030180546111dd90613445565b80601f016020809104026020016040519081016040528092919081815260200182805461120990613445565b80156112565780601f1061122b57610100808354040283529160200191611256565b820191906000526020600020905b81548152906001019060200180831161123957829003601f168201915b5050505050905092915050565b60006002600754036112b75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610aa4565b6002600755600b54600160a81b900460ff16156112e757604051635fa77ecf60e01b815260040160405180910390fd5b600b54600160a01b900460ff1615801561130c57506006546001600160a01b03163314155b801561132c57506009546001600160a01b0316336001600160a01b031614155b1561134a5760405163113059e760e21b815260040160405180910390fd5b600e5434101561136d57604051638cd870f160e01b815260040160405180910390fd5b6113773483612004565b6113918484604051806020016040528060008152506121ed565b6001600755949350505050565b60006113b26006546001600160a01b031690565b905090565b6060600180546109ac90613445565b6113d1338383612537565b5050565b6006546001600160a01b031633146113ff5760405162461bcd60e51b8152600401610aa4906134d0565b600e81905560405181815233907fee635c8a0d26ec216072a8c63e35b6ae1a6c900a63c37c014e4ebaac5186104190602001611166565b6114403383611ca0565b61145c5760405162461bcd60e51b8152600401610aa49061347f565b61146884848484612605565b50505050565b60006114af85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f9492505050565b9050336001600160a01b03166012826040516114cb9190613505565b908152604051908190036020019020600201546001600160a01b031614611505576040516319dfdf3d60e01b815260040160405180910390fd5b82826012836040516115179190613505565b90815260200160405180910390206003019182611535929190613586565b508484604051611546929190613641565b60405180910390206115553390565b6001600160a01b03167fb3706db6f4ec3b24e5d5597b58ae2a43c743a5701b2c0cc17a57a099d29a7c9560405160405180910390a35050505050565b6006546001600160a01b031633146115bb5760405162461bcd60e51b8152600401610aa4906134d0565b600b805460ff600160a01b808304821615810260ff60a01b199093169290921792839055604051919092049091161515815233907f8e6cbfe6ffa62410f48c7f382a4560f2b634197f39f7ba9b666914af6674cfdb9060200160405180910390a2565b6000601261166184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f9492505050565b60405161166e9190613505565b908152604051908190036020019020600201546001600160a01b0316905092915050565b6113888111156116b557604051637901a5a760e11b815260040160405180910390fd5b600a546001600160a01b0316336001600160a01b0316146116e957604051636a7c157960e11b815260040160405180910390fd5b600f81905560405181815233907ff76f683b30b41f9eb23902413792df5ff4569a8a274170d9e1b9a16e53558dec90602001611166565b6008546000828152601360205260409081902090516060926001600160a01b0316916389cff98491309160129161175791906136c4565b90815260405190819003602001902061176e61099d565b866040518563ffffffff1660e01b815260040161178e94939291906136d0565b600060405180830381865afa1580156117ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610997919081019061378b565b6006546001600160a01b031633146117fd5760405162461bcd60e51b8152600401610aa4906134d0565b600b805460ff60b01b1916600160b01b179055565b60136020526000908152604090208054610edc90613445565b600061186c83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f9492505050565b9050336001600160a01b03166012826040516118889190613505565b908152604051908190036020019020600201546001600160a01b0316146118c2576040516330cd747160e01b815260040160405180910390fd5b60006012826040516118d49190613505565b90815260200160405180910390206001015490506013600082815260200190815260200160002060006119079190612f2b565b6012826040516119179190613505565b90815260405190819003602001902060006119328282612f2b565b6000600183018190556002830180546001600160a01b031916905561195b906003840190612f2b565b50508151602083012060146000336001600160a01b03166001600160a01b0316815260200190815260200160002060405161199691906136c4565b6040518091039020036119bb573360009081526014602052604081206119bb91612f2b565b6119c481612638565b600c600081546119d390613818565b90915550336001600160a01b03167fa37475cf96c0b9779814af0b62cf67583091c685221d6a2c12369240539cb9ef83604051611a109190612fff565b60405180910390a250505050565b6000611a5f83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f9492505050565b9050336001600160a01b0316601282604051611a7b9190613505565b908152604051908190036020019020600201546001600160a01b031614611ab5576040516330cd747160e01b815260040160405180910390fd5b336000908152601460205260409020611ace828261382f565b50336001600160a01b03167f068caa4b2fe151c4db5ef003b9da9f85e1f84c0fa8eaf77f66a095b19998b98882604051611b089190612fff565b60405180910390a2505050565b6006546001600160a01b03163314611b3f5760405162461bcd60e51b8152600401610aa4906134d0565b600b805460ff60a81b1916600160a81b1790557f6d74cc13fa7ed2a0177961820c3be5913f7b4cf15397d50b80357e80ec4ea78a611b7a3390565b6040516001600160a01b03909116815260200160405180910390a1565b6006546001600160a01b03163314611bc15760405162461bcd60e51b8152600401610aa4906134d0565b6001600160a01b038116611c265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aa4565b611c2f81611f42565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611c6782610f5d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316611d195760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610aa4565b6000611d2483610f5d565b9050806001600160a01b0316846001600160a01b03161480611d5f5750836001600160a01b0316611d5484610a2f565b6001600160a01b0316145b80611d8f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611daa82610f5d565b6001600160a01b031614611e125760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610aa4565b6001600160a01b038216611e745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610aa4565b611e7f8383836126df565b611e8a600082611c32565b6001600160a01b0383166000908152600360205260408120805460019290611eb39084906138e9565b90915550506001600160a01b0382166000908152600360205260408120805460019290611ee19084906138fc565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608160005b8151811015611ffd57611fcc828281518110611fb857611fb861390f565b01602001516001600160f81b0319166128de565b828281518110611fde57611fde61390f565b60200101906001600160f81b031916908160001a905350600101611f9a565b5092915050565b6000600f541180156120195750611388600f54105b156120ae57600b54600f546000916001600160a01b0316906127109061203f9086613925565b612049919061393c565b604051600081818185875af1925050503d8060008114612085576040519150601f19603f3d011682016040523d82523d6000602084013e61208a565b606091505b50509050806120ac576040516320a5334360e01b815260040160405180910390fd5b505b6001600160a01b038116158015906120c857506000601054115b80156120d75750611388601054105b15612168576000816001600160a01b0316612710601054856120f99190613925565b612103919061393c565b604051600081818185875af1925050503d806000811461213f576040519150601f19603f3d011682016040523d82523d6000602084013e612144565b606091505b5050905080612166576040516320a5334360e01b815260040160405180910390fd5b505b600061217c6006546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d80600081146121c6576040519150601f19603f3d011682016040523d82523d6000602084013e6121cb565b606091505b5050905080610bd9576040516310dfc0f360e11b815260040160405180910390fd5b6000806121f985611f94565b905061220c6122078261292d565b61295a565b60000361222c57604051631ed9509560e11b815260040160405180910390fd5b60115481511061224f576040516327722dab60e11b815260040160405180910390fd5b600061228461225d8361292d565b61227f604051806040016040528060018152602001601760f91b81525061292d565b612a33565b11156122a357604051636946babd60e11b815260040160405180910390fd5b60006122d36122b18361292d565b61227f604051806040016040528060018152602001600160fd1b81525061292d565b11156122f2576040516305c9a31960e31b815260040160405180910390fd5b60006001600160a01b031660128260405161230d9190613505565b908152604051908190036020019020600201546001600160a01b03161461234757604051634237602b60e11b815260040160405180910390fd5b61235384600d54612acd565b6123876040518060800160405280606081526020016000815260200160006001600160a01b03168152602001606081525090565b818152600d5460208201526001600160a01b038516604080830191909152606082018590525181906012906123bd908590613505565b908152604051908190036020019020815181906123da908261382f565b506020820151600182015560408201516002820180546001600160a01b0319166001600160a01b039092169190911790556060820151600382019061241f908261382f565b5050600d546000908152601360205260409020905061243e838261382f565b506001600160a01b0385166000908152601460205260409020805461246290613445565b905060000361248f576001600160a01b038516600090815260146020526040902061248d838261382f565b505b6001600160a01b038516337f6a48f46f419774a1b2d37bbb2e1214ca73c6d3367d4e9ae39c08a9cf99bdd19b846124c461099d565b6040516020016124d592919061395e565b60408051601f19818403018152908290526124ef91612fff565b60405180910390a3600d600081546125069061398d565b90915550600c805460009061251a9061398d565b90915550600d5461252d906001906138e9565b9695505050505050565b816001600160a01b0316836001600160a01b0316036125985760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610aa4565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612610848484611d97565b61261c84848484612c1b565b6114685760405162461bcd60e51b8152600401610aa4906139a6565b600061264382610f5d565b9050612651816000846126df565b61265c600083611c32565b6001600160a01b03811660009081526003602052604081208054600192906126859084906138e9565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03831615610bd9578160126013600084815260200190815260200160002060405161271191906136c4565b908152604080516020928190038301902060020180546001600160a01b0319166001600160a01b039485161790559184166000908152601490915220805461275890613445565b159050801561276f57506001600160a01b03821615155b156127c657600081815260136020526040908190209051601291612792916136c4565b90815260408051602092819003830190206001600160a01b038516600090815260149093529120906127c490826139f8565b505b6128b861288b6012601360008581526020019081526020016000206040516127ee91906136c4565b908152604051908190036020019020805461280890613445565b80601f016020809104026020016040519081016040528092919081815260200182805461283490613445565b80156128815780601f1061285657610100808354040283529160200191612881565b820191906000526020600020905b81548152906001019060200180831161286457829003601f168201915b505050505061292d565b6001600160a01b038516600090815260146020526040902080546128b3919061280890613445565b612d1c565b15610bd9576001600160a01b0383166000908152601460205260408120610bd991612f2b565b6000604160f81b6001600160f81b031983161080159061290c5750602d60f91b6001600160f81b0319831611155b156129295761292060f883901c6020613ac5565b60f81b92915050565b5090565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b600080601f836020015161296e91906138e9565b835190915060009061298090836138fc565b9050600092505b80821015612a2c57815160ff1660808110156129af576129a86001846138fc565b9250612a19565b60e08160ff1610156129c6576129a86002846138fc565b60f08160ff1610156129dd576129a86003846138fc565b60f88160ff1610156129f4576129a86004846138fc565b60fc8160ff161015612a0b576129a86005846138fc565b612a166006846138fc565b92505b5082612a248161398d565b935050612987565b5050919050565b6000808260000151612a578560000151866020015186600001518760200151612d30565b612a6191906138fc565b90505b83516020850151612a7591906138fc565b8111611ffd5781612a858161398d565b9250508260000151612abc856020015183612aa091906138e9565b8651612aac91906138e9565b8386600001518760200151612d30565b612ac691906138fc565b9050612a64565b6001600160a01b038216612b235760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610aa4565b6000818152600260205260409020546001600160a01b031615612b885760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610aa4565b612b94600083836126df565b6001600160a01b0382166000908152600360205260408120805460019290612bbd9084906138fc565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b15612d1157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612c5f903390899088908890600401613ade565b6020604051808303816000875af1925050508015612c9a575060408051601f3d908101601f19168201909252612c9791810190613b11565b60015b612cf7573d808015612cc8576040519150601f19603f3d011682016040523d82523d6000602084013e612ccd565b606091505b508051600003612cef5760405162461bcd60e51b8152600401610aa4906139a6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611d8f565b506001949350505050565b6000612d288383612e50565b159392505050565b60008381868511612e3b5760208511612dea5760008515612d7c576001612d588760206138e9565b612d63906008613925565b612d6e906002613c12565b612d7891906138e9565b1990505b84518116600087612d8d8b8b6138fc565b612d9791906138e9565b855190915083165b828114612ddc57818610612dc457612db78b8b6138fc565b9650505050505050611d8f565b85612dce8161398d565b965050838651169050612d9f565b859650505050505050611d8f565b508383206000905b612dfc86896138e9565b8211612e3957858320808203612e185783945050505050611d8f565b612e236001856138fc565b9350508180612e319061398d565b925050612df2565b505b612e4587876138fc565b979650505050505050565b8151815160009190811115612e63575081515b6020808501519084015160005b83811015612f1c5782518251808214612eec576000196020871015612ecb57600184612e9d8960206138e9565b612ea791906138fc565b612eb2906008613925565b612ebd906002613c12565b612ec791906138e9565b1990505b8181168382168181039114612ee95797506109979650505050505050565b50505b612ef76020866138fc565b9450612f046020856138fc565b93505050602081612f1591906138fc565b9050612e70565b508451865161252d9190613c1e565b508054612f3790613445565b6000825580601f10612f47575050565b601f016020900490600052602060002090810190611c2f91905b808211156129295760008155600101612f61565b6001600160e01b031981168114611c2f57600080fd5b600060208284031215612f9d57600080fd5b8135612fa881612f75565b9392505050565b60005b83811015612fca578181015183820152602001612fb2565b50506000910152565b60008151808452612feb816020860160208601612faf565b601f01601f19169290920160200192915050565b602081526000612fa86020830184612fd3565b60006020828403121561302457600080fd5b5035919050565b80356001600160a01b038116811461304257600080fd5b919050565b6000806040838503121561305a57600080fd5b6130638361302b565b946020939093013593505050565b60008060006060848603121561308657600080fd5b61308f8461302b565b925061309d6020850161302b565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156130ec576130ec6130ad565b604052919050565b600067ffffffffffffffff82111561310e5761310e6130ad565b50601f01601f191660200190565b600061312f61312a846130f4565b6130c3565b905082815283838301111561314357600080fd5b828260208301376000602084830101529392505050565b600082601f83011261316b57600080fd5b612fa88383356020850161311c565b60006020828403121561318c57600080fd5b813567ffffffffffffffff8111156131a357600080fd5b611d8f8482850161315a565b6080815260006131c26080830187612fd3565b602083018690526001600160a01b03851660408401528281036060840152612e458185612fd3565b6000602082840312156131fc57600080fd5b612fa88261302b565b60008083601f84011261321757600080fd5b50813567ffffffffffffffff81111561322f57600080fd5b60208301915083602082850101111561324757600080fd5b9250929050565b6000806020838503121561326157600080fd5b823567ffffffffffffffff81111561327857600080fd5b61328485828601613205565b90969095509350505050565b6000806000606084860312156132a557600080fd5b833567ffffffffffffffff8111156132bc57600080fd5b6132c88682870161315a565b9350506132d76020850161302b565b91506132e56040850161302b565b90509250925092565b6000806040838503121561330157600080fd5b61330a8361302b565b91506020830135801515811461331f57600080fd5b809150509250929050565b6000806000806080858703121561334057600080fd5b6133498561302b565b93506133576020860161302b565b925060408501359150606085013567ffffffffffffffff81111561337a57600080fd5b8501601f8101871361338b57600080fd5b61339a8782356020840161311c565b91505092959194509250565b600080600080604085870312156133bc57600080fd5b843567ffffffffffffffff808211156133d457600080fd5b6133e088838901613205565b909650945060208701359150808211156133f957600080fd5b5061340687828801613205565b95989497509550505050565b6000806040838503121561342557600080fd5b61342e8361302b565b915061343c6020840161302b565b90509250929050565b600181811c9082168061345957607f821691505b60208210810361347957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008251613517818460208701612faf565b9190910192915050565b601f821115610bd9576000816000526020600020601f850160051c8101602086101561354a5750805b601f850160051c820191505b8181101561356957828155600101613556565b505050505050565b600019600383901b1c191660019190911b1790565b67ffffffffffffffff83111561359e5761359e6130ad565b6135b2836135ac8354613445565b83613521565b6000601f8411600181146135e057600085156135ce5750838201355b6135d88682613571565b84555061363a565b600083815260209020601f19861690835b8281101561361157868501358255602094850194600190920191016135f1565b508682101561362e5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8183823760009101908152919050565b6000815461365e81613445565b60018281168015613676576001811461368b576136ba565b60ff19841687528215158302870194506136ba565b8560005260208060002060005b858110156136b15781548a820152908401908201613698565b50505082870194505b5050505092915050565b6000612fa88284613651565b60018060a01b03851681526000602060806020840152600086546136f381613445565b80608087015260a0600180841660008114613715576001811461373157613761565b60ff19851660a08a015260a084151560051b8a01019550613761565b8b600052602060002060005b858110156137585781548b820186015290830190880161373d565b8a0160a0019650505b505050505083810360408501526137788187612fd3565b9250505082606083015295945050505050565b60006020828403121561379d57600080fd5b815167ffffffffffffffff8111156137b457600080fd5b8201601f810184136137c557600080fd5b80516137d361312a826130f4565b8181528560208385010111156137e857600080fd5b6137f9826020830160208601612faf565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b60008161382757613827613802565b506000190190565b815167ffffffffffffffff811115613849576138496130ad565b61385d816138578454613445565b84613521565b602080601f83116001811461388c576000841561387a5750858301515b6138848582613571565b865550613569565b600085815260208120601f198616915b828110156138bb5788860151825594840194600190910190840161389c565b50858210156138d95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561099757610997613802565b8082018082111561099757610997613802565b634e487b7160e01b600052603260045260246000fd5b808202811582820484141761099757610997613802565b60008261395957634e487b7160e01b600052601260045260246000fd5b500490565b60008351613970818460208801612faf565b835190830190613984818360208801612faf565b01949350505050565b60006001820161399f5761399f613802565b5060010190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b818103613a03575050565b613a0d8254613445565b67ffffffffffffffff811115613a2557613a256130ad565b613a33816138578454613445565b6000601f821160018114613a615760008315613a4f5750848201545b613a598482613571565b85555061363a565b600085815260209020601f19841690600086815260209020845b83811015613a9b5782860154825560019586019590910190602001613a7b565b50858310156138d95793015460001960f8600387901b161c19169092555050600190811b01905550565b60ff818116838216019081111561099757610997613802565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061252d90830184612fd3565b600060208284031215613b2357600080fd5b8151612fa881612f75565b600181815b80851115613b69578160001904821115613b4f57613b4f613802565b80851615613b5c57918102915b93841c9390800290613b33565b509250929050565b600082613b8057506001610997565b81613b8d57506000610997565b8160018114613ba35760028114613bad57613bc9565b6001915050610997565b60ff841115613bbe57613bbe613802565b50506001821b610997565b5060208310610133831016604e8410600b8410161715613bec575081810a610997565b613bf68383613b2e565b8060001904821115613c0a57613c0a613802565b029392505050565b6000612fa88383613b71565b8181036000831280158383131683831282161715611ffd57611ffd61380256fea2646970667358221220479e483edf6c7a864dd23b81ecfc0e39c77e9151e83f508c7fb42560f2a4b78964736f6c6343000818003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000cb598dd4770b06e744ebf5b31bb3d6a538fbe4fe000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000138800000000000000000000000067c814835e1920324634fd6da416a0e79c949970000000000000000000000000780a9a92ba66a29d942bdb289db455f8e3ed0dfa00000000000000000000000000000000000000000000000000000000000000082e736963696c696100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082e534943494c4941000000000000000000000000000000000000000000000000