0 txs
122.8k calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
creatorRestricted
viewfunction creatorRestricted(uint8) view returns (bool)
creatorWhitelist
viewfunction creatorWhitelist(address) view returns (bool)
deploymentInfos
viewfunction deploymentInfos(bytes32) view returns (uint256 projectId, bytes32 metadata)
deploymentStatusByIndexer
viewfunction deploymentStatusByIndexer(bytes32, address) view returns (uint8)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getDeploymentProjectType
viewfunction getDeploymentProjectType(bytes32 _deploymentId) view returns (uint8)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isDeploymentRegistered
viewfunction isDeploymentRegistered(bytes32 _deploymentId) view returns (bool)
isServiceAvailable
viewfunction isServiceAvailable(bytes32 deploymentId, address indexer) view returns (bool)
name
viewfunction name() view returns (string)
nextProjectId
viewfunction nextProjectId() view returns (uint256)
numberOfDeployments
viewfunction numberOfDeployments(address) view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
projectInfos
viewfunction projectInfos(uint256) view returns (bytes32 latestDeploymentId, uint8 projectType)
settings
viewfunction settings() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
addCreator
nonpayablefunction addCreator(address creator)
addOrUpdateDeployment
nonpayablefunction addOrUpdateDeployment(uint256 projectId, bytes32 deploymentId, bytes32 metadata, bool updateLatest)
approve
nonpayablefunction approve(address to, uint256 tokenId)
createProject
nonpayablefunction createProject(string projectMetadataUri, bytes32 deploymentMetdata, bytes32 deploymentId, uint8 projectType)
createProjectFor
nonpayablefunction createProjectFor(string projectMetadataUri, bytes32 deploymentMetdata, bytes32 deploymentId, uint8 projectType, address creator)
initialize
nonpayablefunction initialize(address _settings)
removeCreator
nonpayablefunction removeCreator(address creator)
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)
setCreatorRestricted
nonpayablefunction setCreatorRestricted(uint8 _type, bool _creatorRestricted)
setProjectLatestDeployment
nonpayablefunction setProjectLatestDeployment(uint256 projectId, bytes32 deploymentId)
setSettings
nonpayablefunction setSettings(address _settings)
startService
nonpayablefunction startService(bytes32 deploymentId)
startService2
nonpayablefunction startService2(bytes32 deploymentId, address runner)
stopService
nonpayablefunction stopService(bytes32 deploymentId)
stopService2
nonpayablefunction stopService2(bytes32 deploymentId, address runner)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateProjectMetadata
nonpayablefunction updateProjectMetadata(uint256 projectId, string metadataUri)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
Initialized
event Initialized(uint8 version)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProjectCreated
event ProjectCreated(address indexed creator, uint256 indexed projectId, string projectMetadata, uint8 projectType, bytes32 deploymentId, bytes32 deploymentMetadata)
ProjectDeploymentUpdated
event ProjectDeploymentUpdated(address indexed owner, uint256 indexed projectId, bytes32 deploymentId, bytes32 metadata)
ProjectLatestDeploymentUpdated
event ProjectLatestDeploymentUpdated(address indexed owner, uint256 projectId, bytes32 deploymentId)
ProjectMetadataUpdated
event ProjectMetadataUpdated(address indexed owner, uint256 indexed projectId, string metadata)
ServiceStatusChanged
event ServiceStatusChanged(address indexed indexer, bytes32 indexed deploymentId, uint8 status)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613ab7806100206000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806391546c3411610151578063c4d66de8116100c3578063e06174e411610087578063e06174e41461060b578063e935b7b11461061f578063e985e9c514610629578063eed5684814610665578063f2fde38b14610685578063f5a8757d1461069857600080fd5b8063c4d66de814610583578063c66f46be14610596578063c87b56dd146105a9578063c9a20456146105bc578063ceccd4f1146105f857600080fd5b8063a14a65b911610115578063a14a65b9146104eb578063a22cb465146104fe578063a513ecb314610511578063ae71fa7314610524578063b88d4fde1461055d578063bd6018bb1461057057600080fd5b806391546c341461045c57806395d89b411461046f5780639b959eec146104775780639ba4fd8c146104b4578063a01d3c2c146104d857600080fd5b80633b9dce05116101ea5780636352211e116101ae5780636352211e146103e757806370a08231146103fa578063715018a61461040d57806376ef34ff146104155780637b62a459146104385780638da5cb5b1461044b57600080fd5b80633b9dce051461037a57806342842e0e1461038d5780634f6ccce7146103a05780635ce75ab2146103b3578063629a2d6e146103c657600080fd5b80631046d7f01161023c5780631046d7f01461030957806318160ddd1461031c57806323b872dd1461032e57806324019c67146103415780632f745c59146103545780633736db061461036757600080fd5b806301ffc9a71461027957806306fdde03146102a157806307535920146102b6578063081812fc146102c9578063095ea7b3146102f4575b600080fd5b61028c610287366004613108565b6106bc565b60405190151581526020015b60405180910390f35b6102a96106e7565b604051610298919061317d565b61028c6102c43660046131a5565b610779565b6102dc6102d73660046131d5565b6107bd565b6040516001600160a01b039091168152602001610298565b6103076103023660046131ee565b6107e4565b005b61030761031736600461323c565b6108fe565b60fd545b604051908152602001610298565b61030761033c366004613268565b610952565b61030761034f3660046132a9565b610983565b6103206103623660046131ee565b610b45565b6103076103753660046131d5565b610bdb565b6103076103883660046132cb565b610be8565b61030761039b366004613268565b610c15565b6103206103ae3660046131d5565b610c30565b6103076103c13660046132e8565b610cc3565b6103206103d43660046132cb565b6101346020526000908152604090205481565b6102dc6103f53660046131d5565b610fa1565b6103206104083660046132cb565b611001565b610307611087565b61028c6104233660046131d5565b60009081526101326020526040902054151590565b6103076104463660046131d5565b61109b565b6033546001600160a01b03166102dc565b61030761046a3660046133d5565b6110a5565b6102a9611224565b61049f6104853660046131d5565b610132602052600090815260409020805460019091015482565b60408051928352602083019190915201610298565b61028c6104c23660046132cb565b6101306020526000908152604090205460ff1681565b6103076104e63660046132cb565b611233565b6103076104f936600461341c565b61125e565b61030761050c366004613492565b611383565b61030761051f3660046131a5565b611392565b61054f6105323660046131d5565b610131602052600090815260409020805460019091015460ff1682565b6040516102989291906134da565b61030761056b3660046134ee565b6118ae565b61030761057e3660046132cb565b6118e0565b6103076105913660046132cb565b61190a565b6103076105a436600461356e565b611b0a565b6102a96105b73660046131d5565b611b17565b6105eb6105ca3660046131a5565b61013360209081526000928352604080842090915290825290205460ff1681565b60405161029891906135cf565b6103076106063660046131a5565b611b22565b61012d546102dc906001600160a01b031681565b61032061012e5481565b61028c6106373660046135e9565b6001600160a01b039182166000908152609c6020908152604080832093909416825291909152205460ff1690565b6106786106733660046131d5565b611e40565b6040516102989190613617565b6103076106933660046132cb565b611eac565b61028c6106a6366004613625565b61012f6020526000908152604090205460ff1681565b60006001600160e01b03198216639e7abbf960e01b14806106e157506106e182611f22565b92915050565b6060609780546106f690613640565b80601f016020809104026020016040519081016040528092919081815260200182805461072290613640565b801561076f5780601f106107445761010080835404028352916020019161076f565b820191906000526020600020905b81548152906001019060200180831161075257829003601f168201915b5050505050905090565b600060016000848152610133602090815260408083206001600160a01b038716845290915290205460ff1660018111156107b5576107b56134b0565b149392505050565b60006107c882611f47565b506000908152609b60205260409020546001600160a01b031690565b60006107ef82610fa1565b9050806001600160a01b0316836001600160a01b0316036108615760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061087d575061087d8133610637565b6108ef5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610858565b6108f98383611fa6565b505050565b610906612014565b8061012f600084600481111561091e5761091e6134b0565b600481111561092f5761092f6134b0565b81526020810191909152604001600020805460ff19169115159190911790555050565b61095c338261206e565b6109785760405162461bcd60e51b81526004016108589061367a565b6108f98383836120ed565b81600061098f82610fa1565b9050336001600160a01b03821614610aa85761012d5460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906109d4906010906004016136c7565b602060405180830381865afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1591906136db565b604051636488dab760e11b81526001600160a01b038481166004830152336024830152919091169063c911b56e90604401602060405180830381865afa158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8791906136f8565b905080610aa65760405162461bcd60e51b815260040161085890613715565b505b600083815261013260205260409020548414610aee5760405162461bcd60e51b8152602060048201526005602482015264505230303760d81b6044820152606401610858565b60008481526101316020526040902054839003610b355760405162461bcd60e51b8152602060048201526005602482015264050523031360dc1b6044820152606401610858565b610b3f848461225e565b50505050565b6000610b5083611001565b8210610bb25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610858565b506001600160a01b0391909116600090815260fb60209081526040808320938352929052205490565b610be58133611392565b50565b610bf0612014565b6001600160a01b0316600090815261013060205260409020805460ff19166001179055565b6108f9838383604051806020016040528060008152506118ae565b6000610c3b60fd5490565b8210610c9e5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610858565b60fd8281548110610cb157610cb1613734565b90600052602060002001549050919050565b836000610ccf82610fa1565b9050336001600160a01b03821614610de85761012d5460405163f4e5699160e01b81526000916001600160a01b03169063f4e5699190610d14906010906004016136c7565b602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5591906136db565b604051636488dab760e11b81526001600160a01b038481166004830152336024830152919091169063c911b56e90604401602060405180830381865afa158015610da3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc791906136f8565b905080610de65760405162461bcd60e51b815260040161085890613715565b505b8415801590610df657508315155b610e2a5760405162461bcd60e51b8152602060048201526005602482015264505230303960d81b6044820152606401610858565b600085815261013260205260408120549003610e735760408051808201825287815260208082018781526000898152610132909252929020905181559051600190910155610f19565b600085815261013260205260409020548614610eb95760405162461bcd60e51b8152602060048201526005602482015264505230303760d81b6044820152606401610858565b60008581526101326020526040902060010154849003610f035760405162461bcd60e51b81526020600482015260056024820152640a0a46060760db1b6044820152606401610858565b6000858152610132602052604090206001018490555b85610f2387610fa1565b6001600160a01b03167f9df6b167a907dd339211dacfd70d9cc3949647d79c17c12ac6b3573512fcfbf28787604051610f66929190918252602082015260400190565b60405180910390a3828015610f8a5750600086815261013160205260409020548514155b15610f9957610f99868661225e565b505050505050565b6000818152609960205260408120546001600160a01b0316806106e15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610858565b60006001600160a01b03821661106b5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610858565b506001600160a01b03166000908152609a602052604090205490565b61108f612014565b61109960006122c8565b565b610be58133611b22565b8160006110b182610fa1565b9050336001600160a01b038216146111ca5761012d5460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906110f6906010906004016136c7565b602060405180830381865afa158015611113573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113791906136db565b604051636488dab760e11b81526001600160a01b038481166004830152336024830152919091169063c911b56e90604401602060405180830381865afa158015611185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a991906136f8565b9050806111c85760405162461bcd60e51b815260040161085890613715565b505b6111d4848461231a565b836111de85610fa1565b6001600160a01b03167faa3a39e5eb92bfb2bb4c7636a873363ea295a58c353787f09435431c09bb0e8885604051611216919061317d565b60405180910390a350505050565b6060609880546106f690613640565b61123b612014565b61012d80546001600160a01b0319166001600160a01b0392909216919091179055565b80336001600160a01b038216146113765761012d5460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906112a2906010906004016136c7565b602060405180830381865afa1580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e391906136db565b604051636488dab760e11b81526001600160a01b038481166004830152336024830152919091169063c911b56e90604401602060405180830381865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135591906136f8565b9050806113745760405162461bcd60e51b81526004016108589061374a565b505b610f9986868686866123de565b61138e3383836125c9565b5050565b806001600160a01b03811633036114ba5761012d5460405163f4e5699160e01b81526001600160a01b039091169063f4e56991906113d5906003906004016136c7565b602060405180830381865afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141691906136db565b6040516316367a7160e11b81523360048201526001600160a01b039190911690632c6cf4e290602401602060405180830381865afa15801561145c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148091906136f8565b6114b55760405162461bcd60e51b8152600401610858906020808252600490820152632398181960e11b604082015260600190565b6115bf565b61012d5460405163f4e5699160e01b815233916001600160a01b03169063f4e56991906114ec906003906004016136c7565b602060405180830381865afa158015611509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152d91906136db565b604051634463315560e11b81526001600160a01b03848116600483015291909116906388c662aa90602401602060405180830381865afa158015611575573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159991906136db565b6001600160a01b0316146115bf5760405162461bcd60e51b81526004016108589061374a565b6000838152610133602090815260408083206001600160a01b038616845290915290205460ff1660018160018111156115fa576115fa6134b0565b1461162f5760405162461bcd60e51b8152602060048201526005602482015264505230303560d81b6044820152606401610858565b61012d5460405163f4e5699160e01b81526001600160a01b039091169063f4e5699190611661906007906004016136c7565b602060405180830381865afa15801561167e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a291906136db565b604051631fe0fb2160e11b81526001600160a01b038581166004830152602482018790529190911690633fc1f64290604401602060405180830381865afa1580156116f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171591906136f8565b1561174a5760405162461bcd60e51b8152602060048201526005602482015264282918181b60d91b6044820152606401610858565b6000848152610133602090815260408083206001600160a01b03871684528252808320805460ff1916905561013490915281208054916117898361377f565b919050555083836001600160a01b03167f4fb97edd78cc9ab95fc2e3ca87faa3ee57a55f499c15872053d253a2bf45f27b60006040516117c991906135cf565b60405180910390a361012d5460405163f4e5699160e01b81526001600160a01b039091169063f4e5699190611803906014906004016136c7565b602060405180830381865afa158015611820573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184491906136db565b604051632373da5160e11b8152600481018690526001600160a01b03858116602483015291909116906346e7b4a290604401600060405180830381600087803b15801561189057600080fd5b505af11580156118a4573d6000803e3d6000fd5b5050505050505050565b6118b8338361206e565b6118d45760405162461bcd60e51b81526004016108589061367a565b610b3f84848484612697565b6118e8612014565b6001600160a01b0316600090815261013060205260409020805460ff19169055565b600054610100900460ff161580801561192a5750600054600160ff909116105b806119445750303b158015611944575060005460ff166001145b6119a75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610858565b6000805460ff1916600117905580156119ca576000805461ff0019166101001790555b6119d26126ca565b611a1d6040518060400160405280600f81526020016e14dd58945d595c9e541c9bda9958dd608a1b81525060405180604001604052806002815260200161053560f41b8152506126f9565b611a2561272a565b611a2d61272a565b61012d80546001600160a01b0319166001600160a01b0384161790557fe9104285c6851efcbc5e0e70440200efbdcab556a1c8784776780f8bb44f2931805460ff1990811660019081179092557fd827e4f4260d40048f690f58ae5d0afff32b544267edbfaaef2e1c102dc5f5c180548216831790553360009081526101306020526040902080549091168217905561012e55801561138e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b610b3f84848484336123de565b60606106e182612751565b806001600160a01b0381163303611c4a5761012d5460405163f4e5699160e01b81526001600160a01b039091169063f4e5699190611b65906003906004016136c7565b602060405180830381865afa158015611b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba691906136db565b6040516316367a7160e11b81523360048201526001600160a01b039190911690632c6cf4e290602401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1091906136f8565b611c455760405162461bcd60e51b8152600401610858906020808252600490820152632398181960e11b604082015260600190565b611d4f565b61012d5460405163f4e5699160e01b815233916001600160a01b03169063f4e5699190611c7c906003906004016136c7565b602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd91906136db565b604051634463315560e11b81526001600160a01b03848116600483015291909116906388c662aa90602401602060405180830381865afa158015611d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2991906136db565b6001600160a01b031614611d4f5760405162461bcd60e51b81526004016108589061374a565b6000838152610133602090815260408083206001600160a01b038616845290915281205460ff1690816001811115611d8957611d896134b0565b14611dbe5760405162461bcd60e51b8152602060048201526005602482015264282918181960d91b6044820152606401610858565b6000848152610133602090815260408083206001600160a01b03871684528252808320805460ff191660011790556101349091528120805491611e0083613796565b919050555083836001600160a01b03167f4fb97edd78cc9ab95fc2e3ca87faa3ee57a55f499c15872053d253a2bf45f27b600160405161121691906135cf565b60008181526101326020526040812054611e845760405162461bcd60e51b8152602060048201526005602482015264505230313160d81b6044820152606401610858565b5060009081526101326020908152604080832054835261013190915290206001015460ff1690565b611eb4612014565b6001600160a01b038116611f195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610858565b610be5816122c8565b60006001600160e01b0319821663780e9d6360e01b14806106e157506106e182612868565b6000818152609960205260409020546001600160a01b0316610be55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610858565b6000818152609b6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611fdb82610fa1565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6033546001600160a01b031633146110995760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610858565b60008061207a83610fa1565b9050806001600160a01b0316846001600160a01b031614806120c157506001600160a01b038082166000908152609c602090815260408083209388168352929052205460ff165b806120e55750836001600160a01b03166120da846107bd565b6001600160a01b0316145b949350505050565b826001600160a01b031661210082610fa1565b6001600160a01b0316146121265760405162461bcd60e51b8152600401610858906137af565b6001600160a01b0382166121885760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610858565b612195838383600161288d565b826001600160a01b03166121a882610fa1565b6001600160a01b0316146121ce5760405162461bcd60e51b8152600401610858906137af565b6000818152609b6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652609a8552838620805460001901905590871680865283862080546001019055868652609990945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008281526101316020526040902081905561227982610fa1565b6001600160a01b03167f8729f4f170cd1daf465694f9a103180a6c58316e9d22f9fe18b1a8f4a66051bc83836040516122bc929190918252602082015260400190565b60405180910390a25050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000828152609960205260409020546001600160a01b03166123955760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610858565b600082815260c9602052604090206123ad828261383a565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790602001611afe565b61012f60008360048111156123f5576123f56134b0565b6004811115612406576124066134b0565b815260208101919091526040016000205460ff1615612470576001600160a01b0381166000908152610130602052604090205460ff166124705760405162461bcd60e51b8152602060048201526005602482015264505230303160d81b6044820152606401610858565b60008381526101326020526040902054156124b55760405162461bcd60e51b8152602060048201526005602482015264505230303360d81b6044820152606401610858565b61012e5460408051808201909152848152602081018460048111156124dc576124dc6134b0565b9052600082815261013160209081526040909120825181559082015160018083018054909160ff199091169083600481111561251a5761251a6134b0565b02179055505061012e80549150600061253283613796565b90915550506040805180820182528281526020808201888152600088815261013290925292902090518155905160019091015561256f8282612899565b612579818761231a565b80826001600160a01b03167fe7d84f7051543519cc4c7fe65561397af4f032a3a6c9e99ea1e3bfb574233ae18886888a6040516125b994939291906138fa565b60405180910390a3505050505050565b816001600160a01b0316836001600160a01b03160361262a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610858565b6001600160a01b038381166000818152609c6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6126a28484846120ed565b6126ae848484846128b3565b610b3f5760405162461bcd60e51b81526004016108589061392e565b600054610100900460ff166126f15760405162461bcd60e51b815260040161085890613980565b6110996129b4565b600054610100900460ff166127205760405162461bcd60e51b815260040161085890613980565b61138e82826129e4565b600054610100900460ff166110995760405162461bcd60e51b815260040161085890613980565b606061275c82611f47565b600082815260c960205260408120805461277590613640565b80601f01602080910402602001604051908101604052809291908181526020018280546127a190613640565b80156127ee5780601f106127c3576101008083540402835291602001916127ee565b820191906000526020600020905b8154815290600101906020018083116127d157829003601f168201915b50505050509050600061281b604080518082019091526007815266697066733a2f2f60c81b602082015290565b9050805160000361282d575092915050565b81511561285f5780826040516020016128479291906139cb565b60405160208183030381529060405292505050919050565b6120e584612a24565b60006001600160e01b03198216632483248360e11b14806106e157506106e182612aa7565b610b3f84848484612af7565b61138e828260405180602001604052806000815250612c2b565b60006001600160a01b0384163b156129a957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906128f79033908990889088906004016139fa565b6020604051808303816000875af1925050508015612932575060408051601f3d908101601f1916820190925261292f91810190613a37565b60015b61298f573d808015612960576040519150601f19603f3d011682016040523d82523d6000602084013e612965565b606091505b5080516000036129875760405162461bcd60e51b81526004016108589061392e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506120e5565b506001949350505050565b600054610100900460ff166129db5760405162461bcd60e51b815260040161085890613980565b611099336122c8565b600054610100900460ff16612a0b5760405162461bcd60e51b815260040161085890613980565b6097612a17838261383a565b5060986108f9828261383a565b6060612a2f82611f47565b6000612a55604080518082019091526007815266697066733a2f2f60c81b602082015290565b90506000815111612a755760405180602001604052806000815250612aa0565b80612a7f84612c5e565b604051602001612a909291906139cb565b6040516020818303038152906040525b9392505050565b60006001600160e01b031982166380ac58cd60e01b1480612ad857506001600160e01b03198216635b5e139f60e01b145b806106e157506301ffc9a760e01b6001600160e01b03198316146106e1565b6001811115612b665760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610858565b816001600160a01b038516612bc257612bbd8160fd8054600083815260fe60205260408120829055600182018355919091527f9346ac6dd7de6b96975fec380d4d994c4c12e6a8897544f22915316cc6cca2800155565b612be5565b836001600160a01b0316856001600160a01b031614612be557612be58582612cf1565b6001600160a01b038416612c0157612bfc81612d8e565b612c24565b846001600160a01b0316846001600160a01b031614612c2457612c248482612e3d565b5050505050565b612c358383612e81565b612c4260008484846128b3565b6108f95760405162461bcd60e51b81526004016108589061392e565b60606000612c6b8361301a565b600101905060008167ffffffffffffffff811115612c8b57612c8b613329565b6040519080825280601f01601f191660200182016040528015612cb5576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612cbf57509392505050565b60006001612cfe84611001565b612d089190613a54565b600083815260fc6020526040902054909150808214612d5b576001600160a01b038416600090815260fb60209081526040808320858452825280832054848452818420819055835260fc90915290208190555b50600091825260fc602090815260408084208490556001600160a01b03909416835260fb81528383209183525290812055565b60fd54600090612da090600190613a54565b600083815260fe602052604081205460fd8054939450909284908110612dc857612dc8613734565b906000526020600020015490508060fd8381548110612de957612de9613734565b600091825260208083209091019290925582815260fe909152604080822084905585825281205560fd805480612e2157612e21613a6b565b6001900381819060005260206000200160009055905550505050565b6000612e4883611001565b6001600160a01b03909316600090815260fb60209081526040808320868452825280832085905593825260fc9052919091209190915550565b6001600160a01b038216612ed75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610858565b6000818152609960205260409020546001600160a01b031615612f3c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610858565b612f4a60008383600161288d565b6000818152609960205260409020546001600160a01b031615612faf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610858565b6001600160a01b0382166000818152609a6020908152604080832080546001019055848352609990915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106130595772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613085576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106130a357662386f26fc10000830492506010015b6305f5e10083106130bb576305f5e100830492506008015b61271083106130cf57612710830492506004015b606483106130e1576064830492506002015b600a83106106e15760010192915050565b6001600160e01b031981168114610be557600080fd5b60006020828403121561311a57600080fd5b8135612aa0816130f2565b60005b83811015613140578181015183820152602001613128565b83811115610b3f5750506000910152565b60008151808452613169816020860160208601613125565b601f01601f19169290920160200192915050565b602081526000612aa06020830184613151565b6001600160a01b0381168114610be557600080fd5b600080604083850312156131b857600080fd5b8235915060208301356131ca81613190565b809150509250929050565b6000602082840312156131e757600080fd5b5035919050565b6000806040838503121561320157600080fd5b823561320c81613190565b946020939093013593505050565b80356005811061322957600080fd5b919050565b8015158114610be557600080fd5b6000806040838503121561324f57600080fd5b6132588361321a565b915060208301356131ca8161322e565b60008060006060848603121561327d57600080fd5b833561328881613190565b9250602084013561329881613190565b929592945050506040919091013590565b600080604083850312156132bc57600080fd5b50508035926020909101359150565b6000602082840312156132dd57600080fd5b8135612aa081613190565b600080600080608085870312156132fe57600080fd5b843593506020850135925060408501359150606085013561331e8161322e565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561335a5761335a613329565b604051601f8501601f19908116603f0116810190828211818310171561338257613382613329565b8160405280935085815286868601111561339b57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126133c657600080fd5b612aa08383356020850161333f565b600080604083850312156133e857600080fd5b82359150602083013567ffffffffffffffff81111561340657600080fd5b613412858286016133b5565b9150509250929050565b600080600080600060a0868803121561343457600080fd5b853567ffffffffffffffff81111561344b57600080fd5b613457888289016133b5565b95505060208601359350604086013592506134746060870161321a565b9150608086013561348481613190565b809150509295509295909350565b600080604083850312156134a557600080fd5b823561325881613190565b634e487b7160e01b600052602160045260246000fd5b600581106134d6576134d66134b0565b9052565b82815260408101612aa060208301846134c6565b6000806000806080858703121561350457600080fd5b843561350f81613190565b9350602085013561351f81613190565b925060408501359150606085013567ffffffffffffffff81111561354257600080fd5b8501601f8101871361355357600080fd5b6135628782356020840161333f565b91505092959194509250565b6000806000806080858703121561358457600080fd5b843567ffffffffffffffff81111561359b57600080fd5b6135a7878288016133b5565b94505060208501359250604085013591506135c46060860161321a565b905092959194509250565b60208101600283106135e3576135e36134b0565b91905290565b600080604083850312156135fc57600080fd5b823561360781613190565b915060208301356131ca81613190565b602081016106e182846134c6565b60006020828403121561363757600080fd5b612aa08261321a565b600181811c9082168061365457607f821691505b60208210810361367457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208101601583106135e3576135e36134b0565b6000602082840312156136ed57600080fd5b8151612aa081613190565b60006020828403121561370a57600080fd5b8151612aa08161322e565b60208082526005908201526414148c0c0d60da1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b602080825260059082015264282918189960d91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008161378e5761378e613769565b506000190190565b6000600182016137a8576137a8613769565b5060010190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b601f8211156108f957600081815260208120601f850160051c8101602086101561381b5750805b601f850160051c820191505b81811015610f9957828155600101613827565b815167ffffffffffffffff81111561385457613854613329565b613868816138628454613640565b846137f4565b602080601f83116001811461389d57600084156138855750858301515b600019600386901b1c1916600185901b178555610f99565b600085815260208120601f198616915b828110156138cc578886015182559484019460019091019084016138ad565b50858210156138ea5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60808152600061390d6080830187613151565b905061391c60208301866134c6565b60408201939093526060015292915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600083516139dd818460208801613125565b8351908301906139f1818360208801613125565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a2d90830184613151565b9695505050505050565b600060208284031215613a4957600080fd5b8151612aa0816130f2565b600082821015613a6657613a66613769565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e441d66e8e90c11c1c6bac30e0e9323eecd8cc4526790ace03651a52244cc62364736f6c634300080f0033