155 txs
156 calls
constructor
constructor(address _mintbayGenerative, address _pixelData)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
fusions
viewfunction fusions(uint256) view returns (uint256 parent1, uint256 parent2, bool isFusion, string svg, uint256 createdAt, uint256 fusionCount)
getActiveFusionCount
viewfunction getActiveFusionCount() view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getFusionCount
viewfunction getFusionCount(uint256 tokenId) view returns (uint256)
getParents
viewfunction getParents(uint256 fusionId) view returns (uint256, uint256, uint256[])
getTotalFusions
viewfunction getTotalFusions() view returns (uint256)
getTotalUnfusions
viewfunction getTotalUnfusions() view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isFusion
viewfunction isFusion(uint256 tokenId) view returns (bool)
lastFusionTimestamp
viewfunction lastFusionTimestamp() view returns (uint256)
mintbayGenerative
viewfunction mintbayGenerative() view returns (address)
name
viewfunction name() view returns (string)
nextFusionId
viewfunction nextFusionId() view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pixelData
viewfunction pixelData() view returns (address)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 amount)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenFusionCount
viewfunction tokenFusionCount(address, uint256) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalFusions
viewfunction totalFusions() view returns (uint256)
totalUnfusions
viewfunction totalUnfusions() view returns (uint256)
userFusionCount
viewfunction userFusionCount(address) view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burn
nonpayablefunction burn(uint256 tokenId)
fuse
nonpayablefunction fuse(uint256 token1, uint256 token2, uint256[] fusedLayers, string svg)
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)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unfuse
nonpayablefunction unfuse(uint256 fusionId)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
Fused
event Fused(uint256 indexed fusionId, uint256 parent1, address parent1Contract, uint256 parent2, address parent2Contract, uint256[] fusedLayers, address indexed owner, uint256 createdAt, uint256 fusionCount)
FusionCountUpdated
event FusionCountUpdated(address indexed contractAddress, uint256 indexed tokenId, uint256 newCount)
FusionFailed
event FusionFailed(address indexed user, uint256 token1, uint256 token2, string reason)
MetadataUpdate
event MetadataUpdate(uint256 indexed _tokenId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unfused
event Unfused(uint256 indexed fusionId, address indexed owner)
UnfusionFailed
event UnfusionFailed(address indexed user, uint256 fusionId, string reason)
errors
ERC2981InvalidDefaultRoyalty
error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator)
ERC2981InvalidDefaultRoyaltyReceiver
error ERC2981InvalidDefaultRoyaltyReceiver(address receiver)
ERC2981InvalidTokenRoyalty
error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator)
ERC2981InvalidTokenRoyaltyReceiver
error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver)
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60c0604052612710600b556000600c556000600d556000600f553480156200002657600080fd5b5060405162004732380380620047328339810160408190526200004991620002fc565b336040518060400160405280600d81526020016c1c283ab735b990233ab9b4b7b760991b815250604051806040016040528060048152602001631c28232760e11b81525081600090816200009e9190620003d9565b506001620000ad8282620003d9565b5050506001600160a01b038116620000e057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000eb81620001e6565b5060016009556001600160a01b038216620001535760405162461bcd60e51b815260206004820152602160248201527f496e76616c6964204d696e7462617947656e65726174697665206164647265736044820152607360f81b6064820152608401620000d7565b6001600160a01b038116620001ab5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420506978656c446174612061646472657373000000000000006044820152606401620000d7565b6001600160a01b03808316608052811660a052620001de620001d56008546001600160a01b031690565b6101f462000238565b5050620004a5565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b0382168110156200027957604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401620000d7565b6001600160a01b038316620002a557604051635b6cc80560e11b815260006004820152602401620000d7565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600655565b80516001600160a01b0381168114620002f757600080fd5b919050565b600080604083850312156200031057600080fd5b6200031b83620002df565b91506200032b60208401620002df565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035f57607f821691505b6020821081036200038057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d457600081815260208120601f850160051c81016020861015620003af5750805b601f850160051c820191505b81811015620003d057828155600101620003bb565b5050505b505050565b81516001600160401b03811115620003f557620003f562000334565b6200040d816200040684546200034a565b8462000386565b602080601f8311600181146200044557600084156200042c5750858301515b600019600386901b1c1916600185901b178555620003d0565b600085815260208120601f198616915b82811015620004765788860151825594840194600190910190840162000455565b5085821015620004955787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05161422162000511600039600081816104ba015261099e01526000818161031401528181610c5101528181610d2501528181610dbb015281816110a5015281816111790152818161120f0152818161250f015281816125990152612d6c01526142216000f3fe608060405234801561001057600080fd5b50600436106102105760003560e01c80636aba8e4611610125578063b88d4fde116100ad578063e985e9c51161007c578063e985e9c5146104e4578063ea77bc6b146104f7578063f2d3a42e14610500578063f2fde38b14610520578063fe7d63c81461053357600080fd5b8063b88d4fde1461048f578063c87b56dd146104a2578063cb6d26c3146104b5578063e91d308f146104dc57600080fd5b80637b283d37116100f45780637b283d37146104375780638da5cb5b1461045a57806395d89b411461046b578063a22cb46514610473578063a87312b31461048657600080fd5b80636aba8e46146103f65780636c66cdf01461040957806370a082311461041c578063715018a61461042f57600080fd5b806334008843116101a8578063464379831161017757806346437983146103815780636352211e1461038957806363c26f751461039c578063644a20a3146103c2578063682d950c146103ed57600080fd5b8063340088431461030f5780633ac79ce61461033657806342842e0e1461035b57806342966c681461036e57600080fd5b8063095ea7b3116101e4578063095ea7b31461029357806323b872dd146102a8578063242a0087146102bb5780632a55205a146102dd57600080fd5b80629557e91461021557806301ffc9a71461023057806306fdde0314610253578063081812fc14610268575b600080fd5b61021d61053c565b6040519081526020015b60405180910390f35b61024361023e3660046131d5565b610560565b6040519015158152602001610227565b61025b610571565b6040516102279190613242565b61027b610276366004613255565b610603565b6040516001600160a01b039091168152602001610227565b6102a66102a1366004613283565b61062c565b005b6102a66102b63660046132af565b61063b565b6102ce6102c9366004613255565b6106bf565b604051610227939291906132f0565b6102f06102eb366004613345565b610813565b604080516001600160a01b039093168352602083019190915201610227565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b610349610344366004613255565b61089a565b60405161022796959493929190613367565b6102a66103693660046132af565b61095d565b6102a661037c366004613255565b61097d565b600c5461021d565b61027b610397366004613255565b610989565b6102436103aa366004613255565b6000908152600a602052604090206003015460ff1690565b61021d6103d0366004613283565b601060209081526000928352604080842090915290825290205481565b61021d600d5481565b6102a66104043660046133e5565b610994565b6102a6610417366004613255565b61175c565b61021d61042a366004613499565b611d46565b6102a6611d8e565b61021d610445366004613255565b6000908152600a602052604090206006015490565b6008546001600160a01b031661027b565b61025b611da2565b6102a66104813660046134c4565b611db1565b61021d600b5481565b6102a661049d366004613540565b611dbc565b61025b6104b0366004613255565b611dda565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b600d5461021d565b6102436104f2366004613608565b611fdb565b61021d600c5481565b61021d61050e366004613499565b600e6020526000908152604090205481565b6102a661052e366004613499565b612009565b61021d600f5481565b6000600c54612710600b54610551919061364c565b61055b919061364c565b905090565b600061056b82612044565b92915050565b6060600080546105809061365f565b80601f01602080910402602001604051908101604052809291908181526020018280546105ac9061365f565b80156105f95780601f106105ce576101008083540402835291602001916105f9565b820191906000526020600020905b8154815290600101906020018083116105dc57829003601f168201915b5050505050905090565b600061060e82612069565b506000828152600460205260409020546001600160a01b031661056b565b6106378282336120a2565b5050565b61064533826120af565b6106965760405162461bcd60e51b815260206004820181905260248201527f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656460448201526064015b60405180910390fd5b6106a183838361210e565b60405181906000805160206141cc83398151915290600090a2505050565b6000818152600a60209081526040808320815160e081018352815481526001820154818501526002820180548451818702810187018652818152879660609688969490860193909183018282801561073657602002820191906000526020600020905b815481526020019060010190808311610722575b5050509183525050600382015460ff16151560208201526004820180546040909201916107629061365f565b80601f016020809104026020016040519081016040528092919081815260200182805461078e9061365f565b80156107db5780601f106107b0576101008083540402835291602001916107db565b820191906000526020600020905b8154815290600101906020018083116107be57829003601f168201915b505050918352505060058201546020808301919091526006909201546040918201528251918301519201519097919650945092505050565b600082815260076020526040812080548291906001600160a01b03811690600160a01b90046001600160601b0316816108675750506006546001600160a01b03811690600160a01b90046001600160601b03165b600061271061087f6001600160601b03841689613699565b61088991906136b0565b9295509193505050505b9250929050565b600a6020526000908152604090208054600182015460038301546004840180549394929360ff90921692916108ce9061365f565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa9061365f565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050505050908060050154908060060154905086565b61097883838360405180602001604052806000815250611dbc565b505050565b610637600082336121be565b600061056b82612069565b61099c6122b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166354214f696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e91906136d2565b610a7d57336001600160a01b03167f84c6a0ec9054c18ae9bfe73b9f117c08a097093a39f72341453ce3f340e59be08787604051610a5d9291906136ef565b60405180910390a260405162461bcd60e51b815260040161068d90613732565b610a8b8686868686866122e3565b6000610a96876124d5565b90506000610aa3876124d5565b90506001600160a01b038216610afb5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420746f6b656e3120636f6e7472616374000000000000000000604482015260640161068d565b6001600160a01b038116610b515760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420746f6b656e3220636f6e7472616374000000000000000000604482015260640161068d565b306001600160a01b03831603610c315733610b6b89610989565b6001600160a01b031614610bb45760405162461bcd60e51b815260206004820152601060248201526f2737ba103a37b5b2b7189037bbb732b960811b604482015260640161068d565b610bbe33896120af565b610c0a5760405162461bcd60e51b815260206004820152601760248201527f4e6f7420617070726f76656420666f7220746f6b656e31000000000000000000604482015260640161068d565b610c13886125be565b60405188906000805160206141cc83398151915290600090a2610fa5565b6040516331a9108f60e11b81526004810189905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbc9190613769565b6001600160a01b031614610d055760405162461bcd60e51b815260206004820152601060248201526f2737ba103a37b5b2b7189037bbb732b960811b604482015260640161068d565b60405163020604bf60e21b81526004810189905230906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d909190613769565b6001600160a01b03161480610e2e575060405163e985e9c560e01b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e985e9c590604401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e91906136d2565b610e7a5760405162461bcd60e51b815260206004820152601d60248201527f5661756c74206e6f7420617070726f76656420666f7220746f6b656e31000000604482015260640161068d565b6040516323b872dd60e01b81526001600160a01b038316906323b872dd90610eaa90339030908d90600401613786565b600060405180830381600087803b158015610ec457600080fd5b505af1925050508015610ed5575060015b610fa557610ee16137aa565b806308c379a003610f995750610ef56137c6565b80610f005750610f9b565b336001600160a01b03167f84c6a0ec9054c18ae9bfe73b9f117c08a097093a39f72341453ce3f340e59be08a8a84604051602001610f3e919061386c565b60408051601f1981840301815290829052610f5a9392916138b1565b60405180910390a280604051602001610f73919061386c565b60408051601f198184030181529082905262461bcd60e51b825261068d91600401613242565b505b3d6000803e3d6000fd5b306001600160a01b038216036110855733610fbf88610989565b6001600160a01b0316146110085760405162461bcd60e51b815260206004820152601060248201526f2737ba103a37b5b2b7191037bbb732b960811b604482015260640161068d565b61101233886120af565b61105e5760405162461bcd60e51b815260206004820152601760248201527f4e6f7420617070726f76656420666f7220746f6b656e32000000000000000000604482015260640161068d565b611067876125be565b60405187906000805160206141cc83398151915290600090a26113c7565b6040516331a9108f60e11b81526004810188905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156110ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111109190613769565b6001600160a01b0316146111595760405162461bcd60e51b815260206004820152601060248201526f2737ba103a37b5b2b7191037bbb732b960811b604482015260640161068d565b60405163020604bf60e21b81526004810188905230906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e49190613769565b6001600160a01b03161480611282575060405163e985e9c560e01b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e985e9c590604401602060405180830381865afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128291906136d2565b6112ce5760405162461bcd60e51b815260206004820152601d60248201527f5661756c74206e6f7420617070726f76656420666f7220746f6b656e32000000604482015260640161068d565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd906112fe90339030908c90600401613786565b600060405180830381600087803b15801561131857600080fd5b505af1925050508015611329575060015b6113c7576113356137aa565b806308c379a003610f9957506113496137c6565b806113545750610f9b565b336001600160a01b03167f84c6a0ec9054c18ae9bfe73b9f117c08a097093a39f72341453ce3f340e59be08a8a8460405160200161139291906138d9565b60408051601f19818403018152908290526113ae9392916138b1565b60405180910390a280604051602001610f7391906138d9565b6001306001600160a01b038416036113f9576000898152600a60205260409020600601546113f6906001613911565b90505b306001600160a01b03831603611453576000888152600a60205260409020600601548190611428906001613911565b116114335780611450565b6000888152600a6020526040902060060154611450906001613911565b90505b6001600160a01b03831660009081526010602090815260408083208c8452909152812080549161148283613924565b90915550506001600160a01b03821660009081526010602090815260408083208b845290915281208054916114b683613924565b90915550506001600160a01b03831660008181526010602090815260408083208d84528252918290205491519182528b92917ffeac55fe60343193b19be55bb969f098527dfdc399361b7c115b11e9a3500469910160405180910390a36001600160a01b03821660008181526010602090815260408083208c84528252918290205491519182528a92917ffeac55fe60343193b19be55bb969f098527dfdc399361b7c115b11e9a3500469910160405180910390a3600b80546000918261157c83613924565b91905055905061158c338261262d565b6040518060e001604052808b81526020018a8152602001898980806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250600160208083019190915260408051601f8a01839004830281018301825289815292019190899089908190840183828082843760009201829052509385525050426020808501919091526040938401879052858352600a8152918390208451815584830151600182015592840151805161165d93600286019350919091019061310b565b50606082015160038201805460ff19169115159190911790556080820151600482019061168a9082613983565b5060a0820151600582015560c090910151600690910155600d80549060006116b183613924565b9091555050336000908152600e602052604081208054916116d183613924565b919050555042600f81905550336001600160a01b0316817f9cc3a0aabb7d208e986b81f047c4f3f859e0eaf2349ab8b7b998dc9adc10b6fe8c878d888e8e428b604051611725989796959493929190613a43565b60405180910390a360405181906000805160206141cc83398151915290600090a2505050506117546001600955565b505050505050565b6117646122b9565b6000818152600260205260409020546001600160a01b03166117c757336001600160a01b031660008051602061416c833981519152826040516117a79190613ab4565b60405180910390a260405162461bcd60e51b815260040161068d90613aee565b336117d182610989565b6001600160a01b03161461182657336001600160a01b031660008051602061416c833981519152826040516118069190613b22565b60405180910390a260405162461bcd60e51b815260040161068d90613b51565b6000818152600a60209081526040808320815160e0810183528154815260018201548185015260028201805484518187028101870186528181529295939486019383018282801561189657602002820191906000526020600020905b815481526020019060010190808311611882575b5050509183525050600382015460ff16151560208201526004820180546040909201916118c29061365f565b80601f01602080910402602001604051908101604052809291908181526020018280546118ee9061365f565b801561193b5780601f106119105761010080835404028352916020019161193b565b820191906000526020600020905b81548152906001019060200180831161191e57829003601f168201915b5050505050815260200160058201548152602001600682015481525050905080606001516119aa57336001600160a01b031660008051602061416c8339815191528360405161198a9190613b7a565b60405180910390a260405162461bcd60e51b815260040161068d90613bac565b60006119b982600001516124d5565b905060006119ca83602001516124d5565b9050306001600160a01b03831603611a065782516119e89033612647565b82516040516000805160206141cc83398151915290600090a2611aec565b82516040516323b872dd60e01b81526001600160a01b038416916323b872dd91611a37913091339190600401613786565b600060405180830381600087803b158015611a5157600080fd5b505af1925050508015611a62575060015b611aec57611a6e6137aa565b806308c379a003610f995750611a826137c6565b80611a8d5750610f9b565b336001600160a01b031660008051602061416c8339815191528683604051602001611ab89190613bd8565b60408051601f1981840301815290829052611ad39291613c1d565b60405180910390a280604051602001610f739190613bd8565b306001600160a01b03821603611b2b57611b0a836020015133612647565b60208301516040516000805160206141cc83398151915290600090a2611c14565b60208301516040516323b872dd60e01b81526001600160a01b038316916323b872dd91611b5f913091339190600401613786565b600060405180830381600087803b158015611b7957600080fd5b505af1925050508015611b8a575060015b611c1457611b966137aa565b806308c379a003610f995750611baa6137c6565b80611bb55750610f9b565b336001600160a01b031660008051602061416c8339815191528683604051602001611be09190613c36565b60408051601f1981840301815290829052611bfb9291613c1d565b60405180910390a280604051602001610f739190613c36565b611c1d846126b4565b6000848152600a602052604081208181556001810182905590611c436002830182613156565b60038201805460ff19169055611c5d600483016000613174565b5060006005820181905560069091018190553080825260106020908152604080842088855282528084208490555192835286927ffeac55fe60343193b19be55bb969f098527dfdc399361b7c115b11e9a3500469910160405180910390a3600c8054906000611ccb83613924565b9091555050336000908152600e60205260408120805491611ceb83613c6e565b909155505060405184906000805160206141cc83398151915290600090a2604051339085907f45cc5ad052b1634ddef3f0976cf2c5e7b0457d3d0253a06a299169bbdf42fb1d90600090a3505050611d436001600955565b50565b60006001600160a01b038216611d72576040516322718ad960e21b81526000600482015260240161068d565b506001600160a01b031660009081526003602052604090205490565b611d966126ef565b611da0600061271c565b565b6060600180546105809061365f565b61063733838361276e565b611dc784848461063b565b611dd4338585858561280d565b50505050565b6000818152600260205260409020546060906001600160a01b0316611e115760405162461bcd60e51b815260040161068d90613aee565b6000828152600a60209081526040808320815160e08101835281548152600182015481850152600282018054845181870281018701865281815292959394860193830182828015611e8157602002820191906000526020600020905b815481526020019060010190808311611e6d575b5050509183525050600382015460ff1615156020820152600482018054604090920191611ead9061365f565b80601f0160208091040260200160405190810160405280929190818152602001828054611ed99061365f565b8015611f265780601f10611efb57610100808354040283529160200191611f26565b820191906000526020600020905b815481529060010190602001808311611f0957829003601f168201915b505050505081526020016005820154815260200160068201548152505090506000611f518285612936565b90506000611f5e85612a3e565b8351611f6990612a3e565b611f768560200151612a3e565b611f838660800151612ad1565b85604051602001611f98959493929190613c85565b6040516020818303038152906040529050611fb281612ad1565b604051602001611fc29190613e87565b6040516020818303038152906040529350505050919050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6120116126ef565b6001600160a01b03811661203b57604051631e4fbdf760e01b81526000600482015260240161068d565b611d438161271c565b60006001600160e01b0319821663152a902d60e11b148061056b575061056b82612af7565b6000818152600260205260408120546001600160a01b03168061056b57604051637e27328960e01b81526004810184905260240161068d565b6109788383836001612b47565b6000806120bb83610989565b9050806001600160a01b0316846001600160a01b031614806120e257506120e28185611fdb565b806121065750836001600160a01b03166120fb84610603565b6001600160a01b0316145b949350505050565b6001600160a01b03821661213857604051633250574960e11b81526000600482015260240161068d565b6000612146838360006121be565b90506001600160a01b03811661217257604051637e27328960e01b81526004810183905260240161068d565b836001600160a01b0316816001600160a01b031614611dd4576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161068d565b6000828152600260205260408120546001600160a01b03908116908316156121eb576121eb818486612c4d565b6001600160a01b0381161561222957612208600085600080612b47565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615612258576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a490505b9392505050565b6002600954036122dc57604051633ee5aeb560e01b815260040160405180910390fd5b6002600955565b84860361232b5760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba10333ab9b29039b0b6b2903a37b5b2b760511b604482015260640161068d565b60008190036123725760405162461bcd60e51b81526020600482015260136024820152725356472063616e6e6f7420626520656d70747960681b604482015260640161068d565b6123cd82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152633c73766760e01b60208201529150612cb19050565b61240e5760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590814d591c8199bdc9b585d60721b604482015260640161068d565b60008390036124545760405162461bcd60e51b8152602060048201526012602482015271139bc81b185e595c9cc81c1c9bdd9a59195960721b604482015260640161068d565b60005b838110156124cc57601485858381811061247357612473613ecc565b90506020020135106124ba5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081b185e595c88125160821b604482015260640161068d565b806124c481613924565b915050612457565b50505050505050565b6000818152600260205260408120546001600160a01b0316156124f9575030919050565b6040516331a9108f60e11b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa92505050801561257a575060408051601f3d908101601f1916820190925261257791810190613769565b60015b6125965760405162461bcd60e51b815260040161068d90613aee565b507f000000000000000000000000000000000000000000000000000000000000000092915050565b60006125c982610989565b90506001600160a01b03811633146126155760405162461bcd60e51b815260206004820152600f60248201526e2737ba103a37b5b2b71037bbb732b960891b604482015260640161068d565b61262260008360006120a2565b61063781308461210e565b610637828260405180602001604052806000815250612d50565b3061265183610989565b6001600160a01b03161461269c5760405162461bcd60e51b8152602060048201526012602482015271151bdad95b881b9bdd081a5b881d985d5b1d60721b604482015260640161068d565b6126a960008360006120a2565b61063730828461210e565b60006126c360008360006121be565b90506001600160a01b03811661063757604051637e27328960e01b81526004810183905260240161068d565b6008546001600160a01b03163314611da05760405163118cdaa760e01b815233600482015260240161068d565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166127a057604051630b61174360e31b81526001600160a01b038316600482015260240161068d565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561292f57604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061284f908890889087908790600401613ee2565b6020604051808303816000875af192505050801561288a575060408051601f3d908101601f1916820190925261288791810190613f1f565b60015b6128f3573d8080156128b8576040519150601f19603f3d011682016040523d82523d6000602084013e6128bd565b606091505b5080516000036128eb57604051633250574960e11b81526001600160a01b038516600482015260240161068d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461175457604051633250574960e11b81526001600160a01b038516600482015260240161068d565b5050505050565b81516060906000906129509061294b816124d5565b612d68565b90506000612969856020015161294b87602001516124d5565b905060003061298d866000908152600260205260409020546001600160a01b031690565b6001600160a01b0316149050600083836129bc60008a60a00151116129b25742612a3e565b8960a00151612a3e565b6129c98a60c00151612a3e565b856129f1576040518060400160405280600581526020016466616c736560d81b815250612a0f565b604051806040016040528060048152602001637472756560e01b8152505b604051602001612a23959493929190613f3c565b60408051808303601f19018152919052979650505050505050565b60606000612a4b83612deb565b600101905060008167ffffffffffffffff811115612a6b57612a6b6134fd565b6040519080825280601f01601f191660200182016040528015612a95576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612a9f57509392505050565b606061056b8260405180606001604052806040815260200161418c604091396001612ec3565b60006001600160e01b031982166380ac58cd60e01b1480612b2857506001600160e01b03198216635b5e139f60e01b145b8061056b57506301ffc9a760e01b6001600160e01b031983161461056b565b8080612b5b57506001600160a01b03821615155b15612c1d576000612b6b84612069565b90506001600160a01b03831615801590612b975750826001600160a01b0316816001600160a01b031614155b8015612baa5750612ba88184611fdb565b155b15612bd35760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161068d565b8115612c1b5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612c58838383613043565b610978576001600160a01b038316612c8657604051637e27328960e01b81526004810182905260240161068d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161068d565b81518151600091849184911015612ccd5760009250505061056b565b60005b8151811015612d4457818181518110612ceb57612ceb613ecc565b602001015160f81c60f81b6001600160f81b031916838281518110612d1257612d12613ecc565b01602001516001600160f81b03191614612d32576000935050505061056b565b80612d3c81613924565b915050612cd0565b50600195945050505050565b612d5a83836130a6565b61097833600085858561280d565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603612dd257612dac83612a3e565b604051602001612dbc9190614104565b604051602081830303815290604052905061056b565b612ddb83612a3e565b604051602001612dbc9190614134565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612e2a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612e56576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612e7457662386f26fc10000830492506010015b6305f5e1008310612e8c576305f5e100830492506008015b6127108310612ea057612710830492506004015b60648310612eb2576064830492506002015b600a831061056b5760010192915050565b60608351600003612ee357506040805160208101909152600081526122b2565b600082612f1457600385516004612efa9190613699565b612f05906002613911565b612f0f91906136b0565b612f39565b600385516002612f249190613911565b612f2e91906136b0565b612f39906004613699565b905060008167ffffffffffffffff811115612f5657612f566134fd565b6040519080825280601f01601f191660200182016040528015612f80576020820181803683370190505b50905060018501602082018788518901602081018051600082525b82841015612ff6576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865350600185019450612f9b565b9052505085156130375760038851066001811461301a576002811461302d57613035565b603d6001830353603d6002830353613035565b603d60018303535b505b50909695505050505050565b60006001600160a01b038316158015906121065750826001600160a01b0316846001600160a01b0316148061307d575061307d8484611fdb565b806121065750506000908152600460205260409020546001600160a01b03908116911614919050565b6001600160a01b0382166130d057604051633250574960e11b81526000600482015260240161068d565b60006130de838360006121be565b90506001600160a01b03811615610978576040516339e3563760e11b81526000600482015260240161068d565b828054828255906000526020600020908101928215613146579160200282015b8281111561314657825182559160200191906001019061312b565b506131529291506131aa565b5090565b5080546000825590600052602060002090810190611d4391906131aa565b5080546131809061365f565b6000825580601f10613190575050565b601f016020900490600052602060002090810190611d4391905b5b8082111561315257600081556001016131ab565b6001600160e01b031981168114611d4357600080fd5b6000602082840312156131e757600080fd5b81356122b2816131bf565b60005b8381101561320d5781810151838201526020016131f5565b50506000910152565b6000815180845261322e8160208601602086016131f2565b601f01601f19169290920160200192915050565b6020815260006122b26020830184613216565b60006020828403121561326757600080fd5b5035919050565b6001600160a01b0381168114611d4357600080fd5b6000806040838503121561329657600080fd5b82356132a18161326e565b946020939093013593505050565b6000806000606084860312156132c457600080fd5b83356132cf8161326e565b925060208401356132df8161326e565b929592945050506040919091013590565b6000606082018583526020858185015260606040850152818551808452608086019150828701935060005b818110156133375784518352938301939183019160010161331b565b509098975050505050505050565b6000806040838503121561335857600080fd5b50508035926020909101359150565b868152856020820152841515604082015260c06060820152600061338e60c0830186613216565b60808301949094525060a00152949350505050565b60008083601f8401126133b557600080fd5b50813567ffffffffffffffff8111156133cd57600080fd5b60208301915083602082850101111561089357600080fd5b600080600080600080608087890312156133fe57600080fd5b8635955060208701359450604087013567ffffffffffffffff8082111561342457600080fd5b818901915089601f83011261343857600080fd5b81358181111561344757600080fd5b8a60208260051b850101111561345c57600080fd5b60208301965080955050606089013591508082111561347a57600080fd5b5061348789828a016133a3565b979a9699509497509295939492505050565b6000602082840312156134ab57600080fd5b81356122b28161326e565b8015158114611d4357600080fd5b600080604083850312156134d757600080fd5b82356134e28161326e565b915060208301356134f2816134b6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715613539576135396134fd565b6040525050565b6000806000806080858703121561355657600080fd5b84356135618161326e565b93506020858101356135728161326e565b935060408601359250606086013567ffffffffffffffff8082111561359657600080fd5b818801915088601f8301126135aa57600080fd5b8135818111156135bc576135bc6134fd565b60405191506135d4601f8201601f1916850183613513565b80825289848285010111156135e857600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806040838503121561361b57600080fd5b82356136268161326e565b915060208301356134f28161326e565b634e487b7160e01b600052601160045260246000fd5b8181038181111561056b5761056b613636565b600181811c9082168061367357607f821691505b60208210810361369357634e487b7160e01b600052602260045260246000fd5b50919050565b808202811582820484141761056b5761056b613636565b6000826136cd57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156136e457600080fd5b81516122b2816134b6565b82815281602082015260606040820152600061210660608301601781527610dbdb1b1958dd1a5bdb881b9bdd081c995d99585b1959604a1b602082015260400190565b60208152600061056b60208301601781527610dbdb1b1958dd1a5bdb881b9bdd081c995d99585b1959604a1b602082015260400190565b60006020828403121561377b57600080fd5b81516122b28161326e565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060033d11156137c35760046000803e5060005160e01c5b90565b600060443d10156137d45790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561380457505050505090565b828501915081518181111561381c5750505050505090565b843d87010160208285010111156138365750505050505090565b61384560208286010187613513565b509095945050505050565b600081516138628185602086016131f2565b9290920192915050565b7f546f6b656e31207472616e73666572206661696c65643a2000000000000000008152600082516138a48160188501602087016131f2565b9190910160180192915050565b8381528260208201526060604082015260006138d06060830184613216565b95945050505050565b7f546f6b656e32207472616e73666572206661696c65643a2000000000000000008152600082516138a48160188501602087016131f2565b8082018082111561056b5761056b613636565b60006001820161393657613936613636565b5060010190565b601f82111561097857600081815260208120601f850160051c810160208610156139645750805b601f850160051c820191505b8181101561175457828155600101613970565b815167ffffffffffffffff81111561399d5761399d6134fd565b6139b1816139ab845461365f565b8461393d565b602080601f8311600181146139e657600084156139ce5750858301515b600019600386901b1c1916600185901b178555611754565b600085815260208120601f198616915b82811015613a15578886015182559484019460019091019084016139f6565b5085821015613a335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8881526001600160a01b038881166020830152604082018890528616606082015260e060808201819052810184905260006101006001600160fb1b03861115613a8b57600080fd5b8560051b80888386013760a084019590955260c083019390935250909101019695505050505050565b8181526040602082015260006122b2604083016014815273151bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b602082015260400190565b60208152600061056b602083016014815273151bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b602082015260400190565b8181526040602082015260006122b26040830160098152682737ba1037bbb732b960b91b602082015260400190565b60208152600061056b6020830160098152682737ba1037bbb732b960b91b602082015260400190565b8181526040602082015260006122b260408301600c81526b2737ba103090333ab9b4b7b760a11b602082015260400190565b60208152600061056b60208301600c81526b2737ba103090333ab9b4b7b760a11b602082015260400190565b7f506172656e743120756e6c6f636b206661696c65643a20000000000000000000815260008251613c108160178501602087016131f2565b9190910160170192915050565b8281526040602082015260006121066040830184613216565b7f506172656e743220756e6c6f636b206661696c65643a20000000000000000000815260008251613c108160178501602087016131f2565b600081613c7d57613c7d613636565b506000190190565b7f7b226e616d65223a223850756e6b7320467573696f6e20230000000000000000815260008651613cbd816018850160208b016131f2565b7f222c226465736372697074696f6e223a223850756e6b7320467573696f6e3a206018918401918201527f4120756e6971756520636f6c6c61626f7261746976652c20636f6d6d756e697460388201527f792064726976656e204e46542070726f6a656374206f662074776f203850756e60588201527f6b73206372656174696e67206120756e697175652c207065726d616e656e742060788201527f4e465420636f6c6c656374696f6e2e2066756c6c792073746f726564206f6e2d609882015266636861696e202360c81b60b88201528651613da28160bf840160208b016131f2565b613e7a613e6d613e67613e2a613e24613dd5613dcf60bf888a01016520616e64202360d01b815260060190565b8d613850565b7f20776974682073656c6563746564206c6179657273222c22696d616765223a2281527f646174613a696d6167652f7376672b786d6c3b6261736536342c0000000000006020820152603a0190565b8a613850565b7f222c226261636b67726f756e645f636f6c6f72223a22464646464646222c226181526a3a3a3934b13aba32b9911d60a91b6020820152602b0190565b87613850565b607d60f81b815260010190565b9998505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613ebf81601d8501602087016131f2565b91909101601d0192915050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613f1590830184613216565b9695505050505050565b600060208284031215613f3157600080fd5b81516122b2816131bf565b615b7b60f01b81527f2274726169745f74797065223a2242617365222c2276616c7565223a22000000600282015260008651613f7f81601f850160208b016131f2565b62089f4b60ea1b601f9184019182018190527f7b2274726169745f74797065223a224c61796572222c2276616c7565223a220060228301528751613fca816041850160208c016131f2565b60419201918201527f7b22646973706c61795f74797065223a2264617465222c2274726169745f747960448201527f7065223a2243726561746564204174222c2276616c7565223a0000000000000060648201526140f86140eb6140dd613e676140a461404161409e61404f82607d8a018f613850565b611f4b60f21b815260020190565b7f7b22646973706c61795f74797065223a226e756d626572222c2274726169745f81527f74797065223a22467573696f6e204465707468222c2276616c7565223a0000006020820152603d0190565b8b613850565b7f7b2274726169745f74797065223a224c6f636b6564496e5661756c74222c227681526630b63ab2911d1160c91b602082015260270190565b61227d60f01b815260020190565b605d60f81b815260010190565b98975050505050505050565b673850756e6b73202360c01b8152600082516141278160088501602087016131f2565b9190910160080192915050565b6e3850756e6b7320467573696f6e202360881b81526000825161415e81600f8501602087016131f2565b91909101600f019291505056fe04958248d1e6b7289f9eb866b72da5512c6f2e683a50aeaeefda3f66467f70434142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7a2646970667358221220b8d316221c602d533a199711a803fcef3b449ffed5702a54358085a5f0ba2f7764736f6c63430008140033000000000000000000000000a3a596ff1d0c0e68b8a1c7cffc7bd642d1014a0b00000000000000000000000068de966f26367c56e22fe06921e6631e48c2015c