18 txs
20 calls
constructor
constructor(address _oldProjectFactory, address _galaxisRegistry)
functions
addonHelper
purefunction addonHelper(uint32 communityId, uint32 projectId, tuple saleConfig, tuple tokenConfig) pure returns (bytes)
chainid
viewfunction chainid() view returns (uint256)
COMMUNITY_REGISTRY_ADMIN
viewfunction COMMUNITY_REGISTRY_ADMIN() view returns (bytes32)
CONTRACT_ADMIN
viewfunction CONTRACT_ADMIN() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
galaxisRegistry
viewfunction galaxisRegistry() view returns (address)
getProjectDetails
viewfunction getProjectDetails(uint32 communityId) view returns (tuple)
getProjectMapByCommunity
viewfunction getProjectMapByCommunity(uint32 communityId, uint32 projectId) view returns (uint32 collectionId)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MAP_ACCESS
viewfunction MAP_ACCESS() view returns (bytes32)
owner
viewfunction owner() view returns (address)
projectMapByCommunity
viewfunction projectMapByCommunity(uint32, uint32) view returns (uint32)
RANDOM_CONSUMER
viewfunction RANDOM_CONSUMER() view returns (bytes32)
REGISTRY_KEY_COMMUNITY_LIST
viewfunction REGISTRY_KEY_COMMUNITY_LIST() view returns (string)
REGISTRY_KEY_PROJECT_FACTORY_CONTRACT
viewfunction REGISTRY_KEY_PROJECT_FACTORY_CONTRACT() view returns (string)
REGISTRY_KEY_RANDOM_CONTRACT
viewfunction REGISTRY_KEY_RANDOM_CONTRACT() view returns (string)
REGISTRY_KEY_SSP_FACTORY_HOOK
viewfunction REGISTRY_KEY_SSP_FACTORY_HOOK() view returns (string)
registryKey
purefunction registryKey() pure returns (string)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
useCommunityRandom
viewfunction useCommunityRandom() view returns (bool)
version
purefunction version() pure returns (uint256)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
LaunchProject
nonpayablefunction LaunchProject(uint32 communityId, uint32 projectId, tuple saleConfig, tuple tokenConfig)
newProxy
payablefunction newProxy(string golden) payable returns (address result)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address from, uint256 tokenId, uint256 quantity, bytes data) returns (bytes4)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
retrieve721
nonpayablefunction retrieve721(address _tracker, uint256 id)
retrieveERC20
nonpayablefunction retrieveERC20(address _tracker, uint256 amount)
retrieveETH
nonpayablefunction retrieveETH()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CollectionCreatedByBridge
event CollectionCreatedByBridge(uint32 indexed communityId, uint32 collectionId)
CollectionCreatedFromProject
event CollectionCreatedFromProject(uint32 indexed communityId, uint32 collectionId, uint32 projectId)
CollectionCreatedFromProjectViaBridge
event CollectionCreatedFromProjectViaBridge(uint32 indexed communityId, uint32 collectionId, uint32 projectId, uint256 chainId)
NewProject
event NewProject(uint256 _projectCount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
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)
SubscriptionCreated
event SubscriptionCreated(uint32 community_id, uint64 subscription_id)
SubscriptionCreationFailed
event SubscriptionCreationFailed(uint32 community, string reason)
SubscriptionCreationFailedBadly
event SubscriptionCreationFailedBadly(uint32 community, bytes reason)
errors
BatchFunctionsNotAvailable
error BatchFunctionsNotAvailable()
FailedCreateClone
error FailedCreateClone()
creation bytecode
0x60c06040526004805460ff1916600117905534801561001d57600080fd5b506040516149c13803806149c183398101604081905261003c916101d9565b808080610048336100d8565b6001600160a01b03908116608052600280546001600160a01b0319169390911692909217909155504660a0819052610081600033610128565b6100ab7fcc3e15b6937a2f69a6f5452031b5fbab5ab7de91ec2efae0db33241e870e612133610128565b5050600480546001600160a01b0390921661010002610100600160a81b031990921691909117905561020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101328282610136565b5050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166101325760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b80516001600160a01b03811681146101d457600080fd5b919050565b600080604083850312156101ec57600080fd5b6101f5836101bd565b9150610203602084016101bd565b90509250929050565b60805160a05161476661025b6000396000818161069b01526111a901526000818161043f01528181610a4a015281816112c0015281816119cf015281816122ea015261281d01526147666000f3fe6080604052600436106101f85760003560e01c80638da5cb5b1161010d578063bc197c81116100a0578063d5b014c31161006f578063d5b014c314610718578063dab59e441461072d578063ee198b971461074d578063f23a6e6114610767578063f2fde38b1461078757600080fd5b8063bc197c8114610650578063cd84980e14610689578063cfd3adbd146106bd578063d547741f146106f857600080fd5b8063a5b3abfb116100dc578063a5b3abfb14610590578063acc8e13f146105b0578063b346a4d414610603578063ba3f71161461063d57600080fd5b80638da5cb5b146105095780638fc590141461052757806391d148541461055b578063a217fddf1461057b57600080fd5b80634282b1d511610190578063715018a61161015f578063715018a6146104185780637671114d1461042d57806378311f8a1461047957806380cefab7146104b55780638b239ed3146104e957600080fd5b80634282b1d5146103685780634cf292581461039557806352aeec22146103cd57806354fd4d501461040157600080fd5b8063248a9ca3116101cc578063248a9ca3146102b65780632501d166146102e75780632f2ff15d1461032857806336568abe1461034857600080fd5b8062b7a181146101fd57806301ffc9a71461021f57806302033e621461025457806317fd1e2f14610296575b600080fd5b34801561020957600080fd5b5061021d61021836600461304f565b6107a7565b005b34801561022b57600080fd5b5061023f61023a366004613202565b610882565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b506102887f6f8e937e504f31740fcd909af11a6f08748ab8f2ab78d652b8dbdd08b34c6ad781565b60405190815260200161024b565b3480156102a257600080fd5b5061021d6102b136600461322c565b6108b9565b3480156102c257600080fd5b506102886102d1366004613258565b6000908152600160208190526040909120015490565b3480156102f357600080fd5b5060408051808201909152600f81526e50524f4a4543545f464143544f525960881b60208201525b60405161024b91906132c1565b34801561033457600080fd5b5061021d6103433660046132d4565b610937565b34801561035457600080fd5b5061021d6103633660046132d4565b61095d565b34801561037457600080fd5b50610388610383366004613304565b6109db565b60405161024b91906135ba565b3480156103a157600080fd5b5061031b6040518060400160405280600c81526020016b052414e444f4d56325f5353560a41b81525081565b3480156103d957600080fd5b506102887fb55ee8fa278d4d711a66e8ddff0365a4333380c8c6dbcdf8c74675b71e0e765981565b34801561040d57600080fd5b506378b3fce1610288565b34801561042457600080fd5b5061021d6111d8565b34801561043957600080fd5b506104617f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024b565b34801561048557600080fd5b5061031b6040518060400160405280601081526020016f5353505f464143544f52595f484f4f4b60801b81525081565b3480156104c157600080fd5b506102887ffb3231be112a9810d87b6e307a1f4ba88b91ae1ffb1f669ad6f3832974c930bc81565b3480156104f557600080fd5b5061031b61050436600461304f565b6111ec565b34801561051557600080fd5b506000546001600160a01b0316610461565b34801561053357600080fd5b506102887fcc3e15b6937a2f69a6f5452031b5fbab5ab7de91ec2efae0db33241e870e612181565b34801561056757600080fd5b5061023f6105763660046132d4565b61121e565b34801561058757600080fd5b50610288600081565b34801561059c57600080fd5b5061021d6105ab36600461322c565b611249565b3480156105bc57600080fd5b506105ee6105cb3660046137e7565b600360209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff909116815260200161024b565b34801561060f57600080fd5b5061031b6040518060400160405280600e81526020016d10d3d353555392551657d31254d560921b81525081565b61046161064b366004613815565b6112bb565b34801561065c57600080fd5b5061067061066b3660046138a8565b6113c7565b6040516001600160e01b0319909116815260200161024b565b34801561069557600080fd5b506102887f000000000000000000000000000000000000000000000000000000000000000081565b3480156106c957600080fd5b5061031b6040518060400160405280600f81526020016e50524f4a4543545f464143544f525960881b81525081565b34801561070457600080fd5b5061021d6107133660046132d4565b6113e2565b34801561072457600080fd5b5061021d611408565b34801561073957600080fd5b506105ee6107483660046137e7565b61143f565b34801561075957600080fd5b5060045461023f9060ff1681565b34801561077357600080fd5b50610670610782366004613955565b611589565b34801561079357600080fd5b5061021d6107a23660046139bd565b61191a565b60006107b4856000611990565b60405163a23220d160e01b81529091506001600160a01b0382169063a23220d1906107e1906004016139da565b602060405180830381865afa1580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108229190613a05565b6000146108466040518060600160405280602e81526020016146c0602e9139611b30565b9061086d5760405162461bcd60e51b815260040161086491906132c1565b60405180910390fd5b5061087b8585858533611b59565b5050505050565b60006001600160e01b03198216637965db0b60e01b14806108b357506301ffc9a760e01b6001600160e01b03198316145b92915050565b6108c1611f49565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561090e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109329190613a29565b505050565b6000828152600160208190526040909120015461095381611fa3565b6109328383611fad565b6001600160a01b03811633146109cd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610864565b6109d78282612018565b5050565b610a0d6040518060a0016040528060608152602001606081526020016060815260200160608152602001600081525090565b604080518082018252600e81526d10d3d353555392551657d31254d560921b60208201529051631d2e660b60e21b81526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916374b9982c91610a7d916004016132c1565b602060405180830381865afa158015610a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abe9190613a51565b60405163d0f4a53760e01b815263ffffffff851660048201529091506000906001600160a01b0383169063d0f4a53790602401600060405180830381865afa158015610b0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b369190810190613ab3565b5091505060006001600160a01b0316816001600160a01b03161415610b8660405180604001604052806014815260200173125b9d985b1a590818dbdb5b5d5b9a5d1e48125160621b815250611b30565b90610ba45760405162461bcd60e51b815260040161086491906132c1565b5060405163a23220d160e01b815281906000906001600160a01b0383169063a23220d190610bd4906004016139da565b602060405180830381865afa158015610bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190613a05565b90506000826001600160a01b031663a23220d16040518163ffffffff1660e01b8152600401610c4390613b17565b602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190613a05565b90506000826001600160401b03811115610ca057610ca0612ccc565b604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b5090506000836001600160401b03811115610ce657610ce6612ccc565b604051908082528060200260200182016040528015610dbb57816020015b610da860405180610260016040528060608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001600015158152602001600015158152602001600081526020016060815260200160006001600160a01b031681526020016060815260200160608152602001600081526020016000151581525090565b815260200190600190039081610d045790505b50905060005b848160ff161015610f57576000610de4610ddc836001613b57565b60ff1661207f565b604051602001610df49190613b70565b60408051601f1981840301815290829052631d2e660b60e21b825291506000906001600160a01b038916906374b9982c90610e339085906004016132c1565b602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e749190613a51565b90506001600160a01b03811615610f425780858460ff1681518110610e9b57610e9b613b9e565b60200260200101906001600160a01b031690816001600160a01b031681525050806001600160a01b0316632f151b766040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ef9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f219190810190613cca565b848460ff1681518110610f3657610f36613b9e565b60200260200101819052505b50508080610f4f90613eb9565b915050610dc1565b506000836001600160401b03811115610f7257610f72612ccc565b604051908082528060200260200182016040528015610f9b578160200160208202803683370190505b5090506000846001600160401b03811115610fb857610fb8612ccc565b604051908082528060200260200182016040528015610ff157816020015b610fde612bd2565b815260200190600190039081610fd65790505b50905060005b858160ff161015611185576000611012610ddc836001613b57565b6040516020016110229190613ed8565b60408051601f1981840301815290829052631d2e660b60e21b825291506000906001600160a01b038b16906374b9982c906110619085906004016132c1565b602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a29190613a51565b90506001600160a01b038116156111705780858460ff16815181106110c9576110c9613b9e565b60200260200101906001600160a01b031690816001600160a01b031681525050806001600160a01b0316632f151b766040518163ffffffff1660e01b8152600401600060405180830381865afa158015611127573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261114f9190810190614112565b848460ff168151811061116457611164613b9e565b60200260200101819052505b5050808061117d90613eb9565b915050610ff7565b506040805160a08101825294855260208501929092529083019190915260608201527f00000000000000000000000000000000000000000000000000000000000000006080820152979650505050505050565b6111e0611f49565b6111ea6000612187565b565b606084848484604051602001611205949392919061428c565b6040516020818303038152906040529050949350505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b611251611f49565b6040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038316906323b872dd90606401600060405180830381600087803b15801561129f57600080fd5b505af11580156112b3573d6000803e3d6000fd5b505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c846040518263ffffffff1660e01b815260040161130a91906132c1565b602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b9190613a51565b905060008160601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09350506001600160a01b0383166113c05760405163173392a560e21b815260040160405180910390fd5b5050919050565b600060405163105d0a5760e31b815260040160405180910390fd5b600082815260016020819052604090912001546113fe81611fa3565b6109328383612018565b611410611f49565b60405133904780156108fc02916000818181858888f1935050505015801561143c573d6000803e3d6000fd5b50565b63ffffffff80831660009081526003602090815260408083208585168452909152812054909116908190036108b35760045461010090046001600160a01b0316156108b357600480546040516336ad679160e21b815263ffffffff80871693820193909352918416602483015261010090046001600160a01b03169063dab59e4490604401602060405180830381865afa9250505080156114fd575060408051601f3d908101601f191682019092526114fa918101906142d2565b60015b611582576004805460405163acc8e13f60e01b815263ffffffff80871693820193909352918416602483015261010090046001600160a01b03169063acc8e13f90604401602060405180830381865afa15801561155e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158291906142d2565b90506108b3565b600254604051631d2e660b60e21b815260206004820152601360248201527223a0a620ac24a9afa0a22227a72faa27a5a2a760691b6044820152600091339186916001600160a01b0316906374b9982c90606401602060405180830381865afa1580156115fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161e9190613a51565b6001600160a01b0316826001600160a01b0316146116666040518060400160405280601381526020017224b73b30b634b21020b23237b7102a37b5b2b760691b815250611b30565b906116845760405162461bcd60e51b815260040161086491906132c1565b5061168d6121d7565b6001600160a01b0316637fcc325c6116c760408051808201909152600f81526e50524f4a4543545f464143544f525960881b602082015290565b836040518363ffffffff1660e01b81526004016116e59291906142ef565b602060405180830381865afa158015611702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117269190613a29565b6117596040518060400160405280601281526020017134b73b30b634b21020b23237b72a37b5b2b760711b815250611b30565b906117775760405162461bcd60e51b815260040161086491906132c1565b5084806001146117bb6040518060400160405280601d81526020017f6f6e6c792073696e676c65207472616e736665727320616c6c6f776564000000815250611b30565b906117d95760405162461bcd60e51b815260040161086491906132c1565b5060006117e68987612270565b905060006117f5826000611990565b90506000816001600160a01b031663a23220d16040518163ffffffff1660e01b8152600401611823906139da565b602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118649190613a05565b116118866040518060600160405280602c8152602001614694602c9139611b30565b906118a45760405162461bcd60e51b815260040161086491906132c1565b50604051637a94c56560e11b8152306004820152602481018a905260016044820152339063f5298aca90606401600060405180830381600087803b1580156118eb57600080fd5b505af11580156118ff573d6000803e3d6000fd5b5063f23a6e6160e01b9e9d5050505050505050505050505050565b611922611f49565b6001600160a01b0381166119875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610864565b61143c81612187565b604080518082018252600e81526d10d3d353555392551657d31254d560921b60208201529051631d2e660b60e21b815260009182916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916374b9982c91611a0391906004016132c1565b602060405180830381865afa158015611a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a449190613a51565b60405163d0f4a53760e01b815263ffffffff861660048201529091506000906001600160a01b0383169063d0f4a53790602401600060405180830381865afa158015611a94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611abc9190810190613ab3565b509150506001600160a01b038116151580611ad45750835b611b0960405180604001604052806014815260200173125b9d985b1a590818dbdb5b5d5b9a5d1e48125160621b815250611b30565b90611b275760405162461bcd60e51b815260040161086491906132c1565b50949350505050565b606081604051602001611b439190614311565b6040516020818303038152906040529050919050565b611b63858561143f565b63ffffffff16600014611b8d60405180606001604052806021815260200161471060219139611b30565b90611bab5760405162461bcd60e51b815260040161086491906132c1565b506000611bb9866000611990565b604051631092dd0160e11b81527ffb3231be112a9810d87b6e307a1f4ba88b91ae1ffb1f669ad6f3832974c930bc60048201526001600160a01b03848116602483015291925090821690632125ba0290604401602060405180830381865afa158015611c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4d9190613a29565b611c8b6040518060400160405280601d81526020017f436f6d6d756e697479206e6f74206f776e65642062792073656e646572000000815250611b30565b90611ca95760405162461bcd60e51b815260040161086491906132c1565b5060405163095e5cf960e21b815260206004820152600d60248201526c24a9afa427a6a2afa1a420a4a760991b60448201526001600160a01b0382169063257973e490606401602060405180830381865afa158015611d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d309190613a29565b611d62604051806040016040528060118152602001703737ba1037b7103437b6b29031b430b4b760791b815250611b30565b90611d805760405162461bcd60e51b815260040161086491906132c1565b5060405163a23220d160e01b81526000906001600160a01b0383169063a23220d190611dae906004016139da565b602060405180830381865afa158015611dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611def9190613a05565b611dfa90600161434b565b60405163f74bc1a760e01b81529091506001600160a01b0383169063f74bc1a790611e2990849060040161435e565b600060405180830381600087803b158015611e4357600080fd5b505af1158015611e57573d6000803e3d6000fd5b505060405163f74bc1a760e01b81526001600160a01b038516925063f74bc1a79150611e87908490600401614397565b600060405180830381600087803b158015611ea157600080fd5b505af1158015611eb5573d6000803e3d6000fd5b5050505063ffffffff87811660009081526003602090815260408083208a851684529091529020805463ffffffff1916918316919091179055611efc8783838689896122ac565b6040805163ffffffff838116825288811660208301528916917f907b3af8b7ab876f0d8f8755c36a3803606a84fab1a2f2c77779b270347c49be910160405180910390a250505050505050565b6000546001600160a01b031633146111ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610864565b61143c81336129cc565b611fb7828261121e565b6109d75760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b612022828261121e565b156109d75760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060816000036120a65750506040805180820190915260018152600360fc1b602082015290565b8160005b81156120d057806120ba816143c1565b91506120c99050600a836143f0565b91506120aa565b6000816001600160401b038111156120ea576120ea612ccc565b6040519080825280601f01601f191660200182016040528015612114576020820181803683370190505b5090505b841561217f57612129600183614404565b9150612136600a86614417565b61214190603061434b565b60f81b81838151811061215657612156613b9e565b60200101906001600160f81b031916908160001a905350612178600a866143f0565b9450612118565b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600254604051631d2e660b60e21b815260206004820152601660248201527547414c415849535f4144444f4e5f524547495354525960501b60448201526000916001600160a01b0316906374b9982c90606401602060405180830381865afa158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b9190613a51565b905090565b60008060008060008580602001905181019061228c919061442b565b93509350935093506122a1848484848b611b59565b509195945050505050565b604080518082018252600f81526e50524f4a4543545f464143544f525960881b60208201529051631d2e660b60e21b81526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916374b9982c9161231d916004016132c1565b602060405180830381865afa15801561233a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235e9190613a51565b9050306001600160a01b0316816001600160a01b0316146123b36040518060400160405280601c81526020017f4e6f742063757272656e742070726f6a65637420666163746f72792e00000000815250611b30565b906123d15760405162461bcd60e51b815260040161086491906132c1565b5063ffffffff8716808452825260408051808201909152601581527411d3d311115397d513d2d15397d0d3d395149050d5605a1b6020820152600090612416906112bb565b60405163525ba27160e11b81529091506001600160a01b0382169063a4b744e29061244790869089906004016145a0565b600060405180830381600087803b15801561246157600080fd5b505af1158015612475573d6000803e3d6000fd5b50505050600061248a8763ffffffff1661207f565b60405160200161249a9190613b70565b60408051601f1981840301815290829052631d2e660b60e21b825291506000906001600160a01b038a16906374b9982c906124d99085906004016132c1565b602060405180830381865afa1580156124f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251a9190613a51565b6001600160a01b0316146125456040518060600160405280602281526020016146ee60229139611b30565b906125635760405162461bcd60e51b815260040161086491906132c1565b506040516303a8debb60e41b81526001600160a01b03891690633a8debb09061259290849086906004016145ca565b600060405180830381600087803b1580156125ac57600080fd5b505af11580156125c0573d6000803e3d6000fd5b505050508185602001906001600160a01b031690816001600160a01b03168152505060006126196040518060400160405280601481526020017311d3d311115397d4d0531157d0d3d395149050d560621b8152506112bb565b604051639aecc8ed60e01b81529091506001600160a01b03821690639aecc8ed9061264a9089908b906004016145dd565b600060405180830381600087803b15801561266457600080fd5b505af1158015612678573d6000803e3d6000fd5b50505050886001600160a01b0316632f2ff15d846001600160a01b03166366d47d846040518163ffffffff1660e01b81526004016020604051808303816000875af11580156126cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ef9190613a05565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b0384166024820152604401600060405180830381600087803b15801561273757600080fd5b505af115801561274b573d6000803e3d6000fd5b505060045460ff161591506127e2905057604051632f2ff15d60e01b81527fb55ee8fa278d4d711a66e8ddff0365a4333380c8c6dbcdf8c74675b71e0e765960048201526001600160a01b0384811660248301528a1690632f2ff15d90604401600060405180830381600087803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b505050506128f9565b604080518082018252600c81526b052414e444f4d56325f5353560a41b60208201529051631d2e660b60e21b81526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916374b9982c91612850916004016132c1565b602060405180830381865afa15801561286d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128919190613a51565b604051630168944360e31b81526001600160a01b0386811660048301526001602483015291925090821690630b44a21890604401600060405180830381600087803b1580156128df57600080fd5b505af11580156128f3573d6000803e3d6000fd5b50505050505b886001600160a01b0316633a8debb06129178a63ffffffff1661207f565b6040516020016129279190613ed8565b604051602081830303815290604052836040518363ffffffff1660e01b81526004016129549291906145ca565b600060405180830381600087803b15801561296e57600080fd5b505af1158015612982573d6000803e3d6000fd5b505060405163ffffffff8d1681527fd78a25afe0b6160e2dc1fc71b2845c76cc268398d17be04665b78ba59b4744079250602001905060405180910390a150505050505050505050565b6129d6828261121e565b6109d7576129ee816001600160a01b03166014612a30565b6129f9836020612a30565b604051602001612a0a9291906145f0565b60408051601f198184030181529082905262461bcd60e51b8252610864916004016132c1565b60606000612a3f836002614665565b612a4a90600261434b565b6001600160401b03811115612a6157612a61612ccc565b6040519080825280601f01601f191660200182016040528015612a8b576020820181803683370190505b509050600360fc1b81600081518110612aa657612aa6613b9e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ad557612ad5613b9e565b60200101906001600160f81b031916908160001a9053506000612af9846002614665565b612b0490600161434b565b90505b6001811115612b7c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b3857612b38613b9e565b1a60f81b828281518110612b4e57612b4e613b9e565b60200101906001600160f81b031916908160001a90535060049490941c93612b758161467c565b9050612b07565b508315612bcb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610864565b9392505050565b6040518060c00160405280612c916040518061026001604052806000815260200160006001600160a01b0316815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160001515815260200160001515815260200160006001600160a01b031681525090565b815260006020820181905260408201819052606082018190526080820181905260a09091015290565b63ffffffff8116811461143c57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b0381118282101715612d0557612d05612ccc565b60405290565b60405161026081016001600160401b0381118282101715612d0557612d05612ccc565b60405160c081016001600160401b0381118282101715612d0557612d05612ccc565b604051601f8201601f191681016001600160401b0381118282101715612d7857612d78612ccc565b604052919050565b6001600160a01b038116811461143c57600080fd5b8035612da081612d80565b919050565b60006001600160401b03821115612dbe57612dbe612ccc565b5060051b60200190565b600082601f830112612dd957600080fd5b81356020612dee612de983612da5565b612d50565b8083825260208201915060208460051b870101935086841115612e1057600080fd5b602086015b84811015612e35578035612e2881612d80565b8352918301918301612e15565b509695505050505050565b61ffff8116811461143c57600080fd5b600082601f830112612e6157600080fd5b81356020612e71612de983612da5565b8083825260208201915060208460051b870101935086841115612e9357600080fd5b602086015b84811015612e35578035612eab81612e40565b8352918301918301612e98565b801515811461143c57600080fd5b8035612da081612eb8565b60006001600160401b03821115612eea57612eea612ccc565b50601f01601f191660200190565b600082601f830112612f0957600080fd5b8135612f17612de982612ed1565b818152846020838601011115612f2c57600080fd5b816020850160208301376000918101602001919091529392505050565b60006101408284031215612f5c57600080fd5b612f64612ce2565b9050813581526020820135602082015260408201356001600160401b0380821115612f8e57600080fd5b612f9a85838601612ef8565b60408401526060840135915080821115612fb357600080fd5b612fbf85838601612ef8565b60608401526080840135915080821115612fd857600080fd5b612fe485838601612ef8565b608084015260a0840135915080821115612ffd57600080fd5b5061300a84828501612ef8565b60a08301525061301c60c08301612ec6565b60c082015260e082013560e0820152610100808301358183015250610120613045818401612ec6565b9082015292915050565b6000806000806080858703121561306557600080fd5b843561307081612cba565b9350602085013561308081612cba565b925060408501356001600160401b038082111561309c57600080fd5b9086019061026082890312156130b157600080fd5b6130b9612d0b565b823581526130c960208401612d95565b60208201526040830135828111156130e057600080fd5b6130ec8a828601612dc8565b60408301525060608301358281111561310457600080fd5b6131108a828601612e50565b6060830152506080838101359082015260a0808401359082015260c0808401359082015260e08084013590820152610100808401359082015261012080840135908201526101408084013590820152610160808401359082015261018080840135908201526101a080840135908201526101c061318e818501612d95565b908201526101e083810135908201526102006131ab818501612ec6565b908201526102206131bd848201612ec6565b908201526102406131cf848201612d95565b90820152935060608701359150808211156131e957600080fd5b506131f687828801612f49565b91505092959194509250565b60006020828403121561321457600080fd5b81356001600160e01b031981168114612bcb57600080fd5b6000806040838503121561323f57600080fd5b823561324a81612d80565b946020939093013593505050565b60006020828403121561326a57600080fd5b5035919050565b60005b8381101561328c578181015183820152602001613274565b50506000910152565b600081518084526132ad816020860160208601613271565b601f01601f19169290920160200192915050565b602081526000612bcb6020830184613295565b600080604083850312156132e757600080fd5b8235915060208301356132f981612d80565b809150509250929050565b60006020828403121561331657600080fd5b8135612bcb81612cba565b60008151808452602080850194506020840160005b8381101561335b5781516001600160a01b031687529582019590820190600101613336565b509495945050505050565b60008151808452602080850194506020840160005b8381101561335b57815180518852838101518489015260408082015190890152606080820151908901526080808201519089015260a09081015115159088015260c0909601959082019060010161337b565b60008151808452602080850194506020840160005b8381101561335b57815161ffff16875295820195908201906001016133e2565b600061026082518452602083015161342560208601826001600160a01b03169052565b50604083015181604086015261343d82860182613321565b9150506060830151848203606086015261345782826133cd565b6080858101519087015260a0808601519087015260c0808601519087015260e08086015190870152610100808601519087015261012080860151908701526101408086015190870152610160808601519087015261018080860151908701526101a080860151908701526101c0808601516001600160a01b03908116918801919091526101e08087015190880152610200808701511515908801526102208087015115159088015261024080870151918216818901529193509091505b5090949350505050565b600082825180855260208086019550808260051b84010181860160005b848110156135ad57601f19868403018952815160c0815181865261356182870182613402565b83880151878901526040808501511515908801526060808501511515908801526080808501519088015260a093840151151593909601929092525050978301979083019060010161353b565b5090979650505050505050565b6000602080835260c0845160a080848701526135d960c0870183613321565b915083870151601f196040818986030160408a01526135f88584613321565b945060408a015192506060828a87030160608b01528584518088528988019150898160051b8901018a8701965060005b828110156137ab57868a83030184528751610260815181855261364d82860182613295565b9150508d8201518482038f8601526136658282613295565b9150508782015188850152868201518785015260808083015181860152508a8201518b8501528c8201518d85015260e080830151818601525061010080830151858303828701526136b68382613295565b9250505061012080830151858303828701526136d28382613295565b92505050610140808301516136ea8287018215159052565b50506101608281015115159085015261018080830151908501526101a0808301518583038287015261371c8382613366565b925050506101c08083015161373b828701826001600160a01b03169052565b50506101e080830151858303828701526137558382613321565b9250505061020080830151858303828701526137718382613321565b925050506102208083015181860152506102408083015192506137978186018415159052565b50988d0198948d0194925050600101613628565b5060608e01519a50858d82030160808e01526137c7818c61351e565b9a5050505050505050505050608084015160a08401528091505092915050565b600080604083850312156137fa57600080fd5b823561380581612cba565b915060208301356132f981612cba565b60006020828403121561382757600080fd5b81356001600160401b0381111561383d57600080fd5b61217f84828501612ef8565b600082601f83011261385a57600080fd5b8135602061386a612de983612da5565b8083825260208201915060208460051b87010193508684111561388c57600080fd5b602086015b84811015612e355780358352918301918301613891565b600080600080600060a086880312156138c057600080fd5b85356138cb81612d80565b945060208601356138db81612d80565b935060408601356001600160401b03808211156138f757600080fd5b61390389838a01613849565b9450606088013591508082111561391957600080fd5b61392589838a01613849565b9350608088013591508082111561393b57600080fd5b5061394888828901612ef8565b9150509295509295909350565b600080600080600060a0868803121561396d57600080fd5b853561397881612d80565b9450602086013561398881612d80565b9350604086013592506060860135915060808601356001600160401b038111156139b157600080fd5b61394888828901612ef8565b6000602082840312156139cf57600080fd5b8135612bcb81612d80565b6020815260006108b360208301600b81526a1513d2d15397d0d3d5539560aa1b602082015260400190565b600060208284031215613a1757600080fd5b5051919050565b8051612da081612eb8565b600060208284031215613a3b57600080fd5b8151612bcb81612eb8565b8051612da081612d80565b600060208284031215613a6357600080fd5b8151612bcb81612d80565b600082601f830112613a7f57600080fd5b8151613a8d612de982612ed1565b818152846020838601011115613aa257600080fd5b61217f826020830160208701613271565b600080600060608486031215613ac857600080fd5b83516001600160401b03811115613ade57600080fd5b613aea86828701613a6e565b9350506020840151613afb81612d80565b6040850151909250613b0c81612cba565b809150509250925092565b6020815260006108b360208301600a81526914d0531157d0d3d5539560b21b602082015260400190565b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156108b3576108b3613b41565b65544f4b454e5f60d01b815260008251613b91816006850160208701613271565b9190910160060192915050565b634e487b7160e01b600052603260045260246000fd5b600082601f830112613bc557600080fd5b81516020613bd5612de983612da5565b82815260c09283028501820192828201919087851115613bf457600080fd5b8387015b858110156135ad5781818a031215613c105760008081fd5b613c18612d2e565b81518152858201518682015260408083015190820152606080830151908201526080808301519082015260a080830151613c5181612eb8565b908201528452928401928101613bf8565b600082601f830112613c7357600080fd5b81516020613c83612de983612da5565b8083825260208201915060208460051b870101935086841115613ca557600080fd5b602086015b84811015612e35578051613cbd81612d80565b8352918301918301613caa565b600060208284031215613cdc57600080fd5b81516001600160401b0380821115613cf357600080fd5b908301906102608286031215613d0857600080fd5b613d10612d0b565b825182811115613d1f57600080fd5b613d2b87828601613a6e565b825250602083015182811115613d4057600080fd5b613d4c87828601613a6e565b60208301525060408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115613da257600080fd5b613dae88828701613a6e565b8284015250506101208084015183811115613dc857600080fd5b613dd488828701613a6e565b828401525050610140613de8818501613a1e565b90820152610160613dfa848201613a1e565b9082015261018083810151908201526101a08084015183811115613e1d57600080fd5b613e2988828701613bb4565b8284015250506101c0613e3d818501613a46565b908201526101e08381015183811115613e5557600080fd5b613e6188828701613c62565b8284015250506102008084015183811115613e7b57600080fd5b613e8788828701613c62565b828401525050610220915081830151828201526102409150613eaa828401613a1e565b91810191909152949350505050565b600060ff821660ff8103613ecf57613ecf613b41565b60010192915050565b6453414c455f60d81b815260008251613ef8816005850160208701613271565b9190910160050192915050565b600082601f830112613f1657600080fd5b81516020613f26612de983612da5565b8083825260208201915060208460051b870101935086841115613f4857600080fd5b602086015b84811015612e35578051613f6081612d80565b8352918301918301613f4d565b600082601f830112613f7e57600080fd5b81516020613f8e612de983612da5565b8083825260208201915060208460051b870101935086841115613fb057600080fd5b602086015b84811015612e35578051613fc881612e40565b8352918301918301613fb5565b60006102608284031215613fe857600080fd5b613ff0612d0b565b90508151815261400260208301613a46565b602082015260408201516001600160401b038082111561402157600080fd5b61402d85838601613f05565b6040840152606084015191508082111561404657600080fd5b5061405384828501613f6d565b6060830152506080828101519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c06140d1818401613a46565b908201526101e082810151908201526102006140ee818401613a1e565b90820152610220614100838201613a1e565b90820152610240613045838201613a46565b60006020828403121561412457600080fd5b81516001600160401b038082111561413b57600080fd5b9083019060c0828603121561414f57600080fd5b614157612d2e565b82518281111561416657600080fd5b61417287828601613fd5565b825250602083015160208201526040830151915061418f82612eb8565b816040820152606083015191506141a582612eb8565b8160608201526080830151608082015260a083015192506141c583612eb8565b60a0810192909252509392505050565b6000610140825184526020830151602085015260408301518160408601526141ff82860182613295565b915050606083015184820360608601526142198282613295565b915050608083015184820360808601526142338282613295565b91505060a083015184820360a086015261424d8282613295565b91505060c083015161426360c086018215159052565b5060e0838101519085015261010080840151908501526101208084015180151582870152613514565b600063ffffffff8087168352808616602084015250608060408301526142b56080830185613402565b82810360608401526142c781856141d5565b979650505050505050565b6000602082840312156142e457600080fd5b8151612bcb81612cba565b6040815260006143026040830185613295565b90508260208301529392505050565b710283937b532b1ba102330b1ba37b93c901d160751b81526000825161433e816012850160208701613271565b9190910160120192915050565b808201808211156108b3576108b3613b41565b60408152600061438960408301600b81526a1513d2d15397d0d3d5539560aa1b602082015260400190565b905082602083015292915050565b60408152600061438960408301600a81526914d0531157d0d3d5539560b21b602082015260400190565b6000600182016143d3576143d3613b41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826143ff576143ff6143da565b500490565b818103818111156108b3576108b3613b41565b600082614426576144266143da565b500690565b6000806000806080858703121561444157600080fd5b845161444c81612cba565b602086015190945061445d81612cba565b60408601519093506001600160401b038082111561447a57600080fd5b61448688838901613fd5565b9350606087015191508082111561449c57600080fd5b9086019061014082890312156144b157600080fd5b6144b9612ce2565b82518152602083015160208201526040830151828111156144d957600080fd5b6144e58a828601613a6e565b6040830152506060830151828111156144fd57600080fd5b6145098a828601613a6e565b60608301525060808301518281111561452157600080fd5b61452d8a828601613a6e565b60808301525060a08301518281111561454557600080fd5b6145518a828601613a6e565b60a08301525061456360c08401613a1e565b60c082015260e083810151908201526101008084015190820152610120915061458d828401613a1e565b8282015280935050505092959194509250565b6040815260006145b360408301856141d5565b905060018060a01b03831660208301529392505050565b6040815260006145b36040830185613295565b6040815260006145b36040830185613402565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614628816017850160208801613271565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614659816028840160208801613271565b01602801949350505050565b80820281158282048414176108b3576108b3613b41565b60008161468b5761468b613b41565b50600019019056fe4164646f6e20546f6b656e73206e6f74206e656564656420666f72204d656d62657273686970204361726473636f6c6c656374696f6e73206d757374206265206c61756e636865642077697468206164646f6e20746f6b656e73544f4b454e5f7b49447d206164647265737320616c7265616479206578697374732170726f6a6563742068617320616c7265616479206265656e206c61756e63686564a264697066735822122003aaaeb9ca1258c9158516d9f54051c46d114f89865a04177db249485a601df364736f6c634300081900330000000000000000000000006817b8357fb4e5278b94a7d76b760b828cfb1595000000000000000000000000dbd9608fbca959828c1615d29aeb3dc872d40ae2