191 txs
161 calls
constructor
constructor(string _uri)
functions
ARTWORKS_PER_PACK
viewfunction ARTWORKS_PER_PACK() view returns (uint256)
artworkSupply
viewfunction artworkSupply(uint256) view returns (uint256)
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
isMintingOpen
viewfunction isMintingOpen() view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
PACK_TOKEN_ID
viewfunction PACK_TOKEN_ID() view returns (uint256)
packPrice
viewfunction packPrice() view returns (uint256)
packsBurnedCount
viewfunction packsBurnedCount() view returns (uint256)
packsMintedCount
viewfunction packsMintedCount() view returns (uint256)
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)
TOTAL_ARTWORKS
viewfunction TOTAL_ARTWORKS() view returns (uint256)
totalSupply
viewfunction totalSupply(uint256 tokenId) view returns (uint256)
uri
viewfunction uri(uint256) view returns (string)
burnPackForArtworks
nonpayablefunction burnPackForArtworks(uint256 amount)
deleteDefaultRoyalty
nonpayablefunction deleteDefaultRoyalty()
mintPack
payablefunction mintPack(uint256 amount) payable
ownerMintFullSet
nonpayablefunction ownerMintFullSet(address to)
ownerMintPacks
nonpayablefunction ownerMintPacks(address to, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] values, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint96 feeNumerator)
setIsMintingOpen
nonpayablefunction setIsMintingOpen(bool _isMintingOpen)
setPackPrice
nonpayablefunction setPackPrice(uint256 _packPrice)
setURI
nonpayablefunction setURI(string _uri)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw()
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PackBurned
event PackBurned(address indexed burner, uint256[] artworkIds)
PackMinted
event PackMinted(address indexed minter, uint256 amount)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
URI
event URI(string value, uint256 indexed id)
errors
ERC1155InsufficientBalance
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId)
ERC1155InvalidApprover
error ERC1155InvalidApprover(address approver)
ERC1155InvalidArrayLength
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength)
ERC1155InvalidOperator
error ERC1155InvalidOperator(address operator)
ERC1155InvalidReceiver
error ERC1155InvalidReceiver(address receiver)
ERC1155InvalidSender
error ERC1155InvalidSender(address sender)
ERC1155MissingApprovalForAll
error ERC1155MissingApprovalForAll(address operator, address owner)
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)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405234801561001057600080fd5b50604051614b89380380614b89833981810160405281019061003291906105a8565b3381610043816101a860201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b65760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100ad9190610632565b60405180910390fd5b6100c5816101bb60201b60201c565b5060016006819055506040518060600160405280602a8152602001614b5f602a9139600790816100f5919061086e565b506040518060400160405280600881526020017f44414d5041434b530000000000000000000000000000000000000000000000008152506008908161013a919061086e565b5066f52322698080006009819055506000600c60006101000a81548160ff0219169083151502179055506000600a819055506000600b819055506000600e819055506101a27359d7260069d899ef4cfed8837962a7e9a92df69f6102b261028160201b60201c565b506109c1565b80600290816101b7919061086e565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061029161042960201b60201c565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff1611156102f65781816040517f6f483d090000000000000000000000000000000000000000000000000000000081526004016102ed929190610998565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036103685760006040517fb6d9900a00000000000000000000000000000000000000000000000000000000815260040161035f9190610632565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600360008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000612710905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61049a82610451565b810181811067ffffffffffffffff821117156104b9576104b8610462565b5b80604052505050565b60006104cc610433565b90506104d88282610491565b919050565b600067ffffffffffffffff8211156104f8576104f7610462565b5b61050182610451565b9050602081019050919050565b60005b8381101561052c578082015181840152602081019050610511565b60008484015250505050565b600061054b610546846104dd565b6104c2565b9050828152602081018484840111156105675761056661044c565b5b61057284828561050e565b509392505050565b600082601f83011261058f5761058e610447565b5b815161059f848260208601610538565b91505092915050565b6000602082840312156105be576105bd61043d565b5b600082015167ffffffffffffffff8111156105dc576105db610442565b5b6105e88482850161057a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061061c826105f1565b9050919050565b61062c81610611565b82525050565b60006020820190506106476000830184610623565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061069f57607f821691505b6020821081036106b2576106b1610658565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261071a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106dd565b61072486836106dd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061076b6107666107618461073c565b610746565b61073c565b9050919050565b6000819050919050565b61078583610750565b61079961079182610772565b8484546106ea565b825550505050565b600090565b6107ae6107a1565b6107b981848461077c565b505050565b5b818110156107dd576107d26000826107a6565b6001810190506107bf565b5050565b601f821115610822576107f3816106b8565b6107fc846106cd565b8101602085101561080b578190505b61081f610817856106cd565b8301826107be565b50505b505050565b600082821c905092915050565b600061084560001984600802610827565b1980831691505092915050565b600061085e8383610834565b9150826002028217905092915050565b6108778261064d565b67ffffffffffffffff8111156108905761088f610462565b5b61089a8254610687565b6108a58282856107e1565b600060209050601f8311600181146108d857600084156108c6578287015190505b6108d08582610852565b865550610938565b601f1984166108e6866106b8565b60005b8281101561090e578489015182556001820191506020850194506020810190506108e9565b8683101561092b5784890151610927601f891682610834565b8355505b6001600288020188555050505b505050505050565b60006bffffffffffffffffffffffff82169050919050565b600061097361096e61096984610940565b610746565b61073c565b9050919050565b61098381610958565b82525050565b6109928161073c565b82525050565b60006040820190506109ad600083018561097a565b6109ba6020830184610989565b9392505050565b61418f806109d06000396000f3fe6080604052600436106101ed5760003560e01c8063715018a61161010d578063bd85b039116100a0578063e985e9c51161006f578063e985e9c5146106b6578063ed957ba8146106f3578063f242432a14610730578063f2fde38b14610759578063fde1560e14610782576101ed565b8063bd85b03914610609578063c74af63414610646578063d45765e21461066f578063dd5b908d1461068b576101ed565b8063a22cb465116100dc578063a22cb46514610573578063a45a9ff61461059c578063aa1b103f146105c7578063acf2acc8146105de576101ed565b8063715018a6146104dd5780637708ab26146104f45780638da5cb5b1461051d57806395d89b4114610548576101ed565b80630e89341c11610185578063335c8b6311610154578063335c8b63146104355780633ccfd60b146104605780634e1273f41461047757806354bf1b05146104b4576101ed565b80630e89341c146103665780631a206910146103a35780632a55205a146103ce5780632eb2c2d61461040c576101ed565b806306fdde03116101c157806306fdde03146102be5780630b6af499146102e95780630d467965146103125780630e105e5a1461033b576101ed565b8062fdd58e146101f257806301ffc9a71461022f57806302fe53051461026c57806304634d8d14610295575b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190612ac5565b6107ad565b6040516102269190612b14565b60405180910390f35b34801561023b57600080fd5b5061025660048036038101906102519190612b87565b610807565b6040516102639190612bcf565b60405180910390f35b34801561027857600080fd5b50610293600480360381019061028e9190612d30565b610819565b005b3480156102a157600080fd5b506102bc60048036038101906102b79190612dbd565b61082d565b005b3480156102ca57600080fd5b506102d3610843565b6040516102e09190612e7c565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b9190612e9e565b6108d1565b005b34801561031e57600080fd5b5061033960048036038101906103349190612ef7565b6108e3565b005b34801561034757600080fd5b50610350610908565b60405161035d9190612b14565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190612e9e565b61090d565b60405161039a9190612e7c565b60405180910390f35b3480156103af57600080fd5b506103b86109a1565b6040516103c59190612bcf565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190612f24565b6109b4565b604051610403929190612f73565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613105565b610ae4565b005b34801561044157600080fd5b5061044a610b8c565b6040516104579190612b14565b60405180910390f35b34801561046c57600080fd5b50610475610b92565b005b34801561048357600080fd5b5061049e60048036038101906104999190613297565b610d94565b6040516104ab91906133cd565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d691906133ef565b610e9d565b005b3480156104e957600080fd5b506104f2610f12565b005b34801561050057600080fd5b5061051b60048036038101906105169190612ac5565b610f26565b005b34801561052957600080fd5b50610532610fb5565b60405161053f919061341c565b60405180910390f35b34801561055457600080fd5b5061055d610fdf565b60405161056a9190612e7c565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190613437565b61106d565b005b3480156105a857600080fd5b506105b1611083565b6040516105be9190612b14565b60405180910390f35b3480156105d357600080fd5b506105dc611089565b005b3480156105ea57600080fd5b506105f361109b565b6040516106009190612b14565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b9190612e9e565b6110a1565b60405161063d9190612b14565b60405180910390f35b34801561065257600080fd5b5061066d60048036038101906106689190612e9e565b6110fd565b005b61068960048036038101906106849190612e9e565b6112ce565b005b34801561069757600080fd5b506106a0611446565b6040516106ad9190612b14565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d89190613477565b61144b565b6040516106ea9190612bcf565b60405180910390f35b3480156106ff57600080fd5b5061071a60048036038101906107159190612e9e565b6114df565b6040516107279190612b14565b60405180910390f35b34801561073c57600080fd5b50610757600480360381019061075291906134b7565b6114f7565b005b34801561076557600080fd5b50610780600480360381019061077b91906133ef565b61159f565b005b34801561078e57600080fd5b50610797611625565b6040516107a49190612b14565b60405180910390f35b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006108128261162a565b9050919050565b6108216116a4565b61082a8161172b565b50565b6108356116a4565b61083f828261173e565b5050565b600780546108509061357d565b80601f016020809104026020016040519081016040528092919081815260200182805461087c9061357d565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b505050505081565b6108d96116a4565b8060098190555050565b6108eb6116a4565b80600c60006101000a81548160ff02191690831515021790555050565b600081565b60606002805461091c9061357d565b80601f01602080910402602001604051908101604052809291908181526020018280546109489061357d565b80156109955780601f1061096a57610100808354040283529160200191610995565b820191906000526020600020905b81548152906001019060200180831161097857829003601f168201915b50505050509050919050565b600c60009054906101000a900460ff1681565b600080600060046000868152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260000160149054906101000a90046bffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a9557600360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600360000160149054906101000a90046bffffffffffffffffffffffff1690505b6000610a9f6118e0565b6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1688610ac791906135dd565b610ad1919061364e565b9050828195509550505050509250929050565b6000610aee6118ea565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b335750610b31868261144b565b155b15610b775780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b6e92919061367f565b60405180910390fd5b610b8486868686866118f2565b505050505050565b60095481565b610b9a6116a4565b610ba26119ea565b600047905060008111610bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be1906136f4565b60405180910390fd5b6000600282610bf9919061364e565b905060007359d7260069d899ef4cfed8837962a7e9a92df69f73ffffffffffffffffffffffffffffffffffffffff1682604051610c3590613745565b60006040518083038185875af1925050503d8060008114610c72576040519150601f19603f3d011682016040523d82523d6000602084013e610c77565b606091505b5050905080610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb2906137a6565b60405180910390fd5b600073f18da09cc0d086d02723be0fd1b10ca6049677e673ffffffffffffffffffffffffffffffffffffffff168385610cf491906137c6565b604051610d0090613745565b60006040518083038185875af1925050503d8060008114610d3d576040519150601f19603f3d011682016040523d82523d6000602084013e610d42565b606091505b5050905080610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d9061386c565b60405180910390fd5b50505050610d92611a30565b565b60608151835114610de057815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610dd792919061388c565b60405180910390fd5b6000835167ffffffffffffffff811115610dfd57610dfc612c05565b5b604051908082528060200260200182016040528015610e2b5781602001602082028036833780820191505090505b50905060005b8451811015610e9257610e68610e508287611a3a90919063ffffffff16565b610e638387611a4e90919063ffffffff16565b6107ad565b828281518110610e7b57610e7a6138b5565b5b602002602001018181525050806001019050610e31565b508091505092915050565b610ea56116a4565b6000600190505b60638111610f0e57610ed08282600160405180602001604052806000815250611a62565b6001600d60008381526020019081526020016000206000828254610ef491906138e4565b925050819055508080610f0690613918565b915050610eac565b5050565b610f1a6116a4565b610f246000611afb565b565b610f2e6116a4565b610f4a8260008360405180602001604052806000815250611a62565b80600a6000828254610f5c91906138e4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f65a864e03e8d3c616f19c107f8864d9a846b9fe270069cc1ccdbd30a2a01b4e782604051610fa99190612b14565b60405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60088054610fec9061357d565b80601f01602080910402602001604051908101604052809291908181526020018280546110189061357d565b80156110655780601f1061103a57610100808354040283529160200191611065565b820191906000526020600020905b81548152906001019060200180831161104857829003601f168201915b505050505081565b61107f6110786118ea565b8383611bc1565b5050565b600a5481565b6110916116a4565b611099611d31565b565b600b5481565b60008082036110c157600b54600a546110ba91906137c6565b90506110f8565b600182101580156110d3575060638211155b156110f357600d60008381526020019081526020016000205490506110f8565b600090505b919050565b6111056119ea565b60008111611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f906139ac565b60405180910390fd5b806111543360006107ad565b1015611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90613a18565b60405180910390fd5b6111a133600083611d7e565b80600b60008282546111b391906138e4565b9250508190555060005b818110156112c25760006111cf611e25565b905060005b815181101561126557611213338383815181106111f4576111f36138b5565b5b6020026020010151600160405180602001604052806000815250611a62565b6001600d600084848151811061122c5761122b6138b5565b5b60200260200101518152602001908152602001600020600082825461125191906138e4565b9250508190555080806001019150506111d4565b503373ffffffffffffffffffffffffffffffffffffffff167f223074c528e0ebd46545d4825b244c357efb6a4e8021544c4d80244e5c38a8f5826040516112ac91906133cd565b60405180910390a25080806001019150506111bd565b506112cb611a30565b50565b6112d66119ea565b600c60009054906101000a900460ff16611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90613a84565b60405180910390fd5b60008111611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f906139ac565b60405180910390fd5b8060095461137691906135dd565b3410156113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90613af0565b60405180910390fd5b6113d43360008360405180602001604052806000815250611a62565b80600a60008282546113e691906138e4565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f65a864e03e8d3c616f19c107f8864d9a846b9fe270069cc1ccdbd30a2a01b4e7826040516114339190612b14565b60405180910390a2611443611a30565b50565b600681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600d6020528060005260406000206000915090505481565b60006115016118ea565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156115465750611544868261144b565b155b1561158a5780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161158192919061367f565b60405180910390fd5b6115978686868686611fd4565b505050505050565b6115a76116a4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116195760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611610919061341c565b60405180910390fd5b61162281611afb565b50565b606381565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061169d575061169c826120df565b5b9050919050565b6116ac6118ea565b73ffffffffffffffffffffffffffffffffffffffff166116ca610fb5565b73ffffffffffffffffffffffffffffffffffffffff1614611729576116ed6118ea565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611720919061341c565b60405180910390fd5b565b806002908161173a9190613cbc565b5050565b60006117486118e0565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff1611156117ad5781816040517f6f483d090000000000000000000000000000000000000000000000000000000081526004016117a4929190613dbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361181f5760006040517fb6d9900a000000000000000000000000000000000000000000000000000000008152600401611816919061341c565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600360008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000612710905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119645760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161195b919061341c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036119d65760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016119cd919061341c565b60405180910390fd5b6119e385858585856121c1565b5050505050565b600260065403611a26576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600681905550565b6001600681905550565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ad45760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611acb919061341c565b60405180910390fd5b600080611ae18585612273565b91509150611af36000878484876121c1565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c335760006040517fced3e100000000000000000000000000000000000000000000000000000000008152600401611c2a919061341c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611d249190612bcf565b60405180910390a3505050565b6003600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611df05760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611de7919061341c565b60405180910390fd5b600080611dfd8484612273565b91509150611e1e8560008484604051806020016040528060008152506121c1565b5050505050565b60606000600667ffffffffffffffff811115611e4457611e43612c05565b5b604051908082528060200260200182016040528015611e725781602001602082028036833780820191505090505b50905060005b6006811015611fcc5760008060005b6000424433600e548886604051602001611ea696959493929190613e51565b6040516020818303038152906040528051906020012060001c90506001606382611ed09190613ec1565b611eda91906138e4565b93506000925060005b85811015611f225784878281518110611eff57611efe6138b5565b5b602002602001015103611f155760019350611f22565b8080600101915050611ee3565b508180611f2e90613918565b925050600e6000815480929190611f4490613918565b919050555050818015611f575750606381105b611e87578115611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390613f64565b60405180910390fd5b82858581518110611fb057611faf6138b5565b5b6020026020010181815250505050508080600101915050611e78565b508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036120465760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161203d919061341c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036120b85760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016120af919061341c565b60405180910390fd5b6000806120c58585612273565b915091506120d687878484876121c1565b50505050505050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806121aa57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806121ba57506121b9826122a3565b5b9050919050565b6121cd8585858561230d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461226c57600061220b6118ea565b9050600184510361225b57600061222c600086611a4e90919063ffffffff16565b90506000612244600086611a4e90919063ffffffff16565b90506122548389898585896126b5565b505061226a565b612269818787878787612869565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b805182511461235757815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161234e92919061388c565b60405180910390fd5b60006123616118ea565b905060005b83518110156125705760006123848286611a4e90919063ffffffff16565b9050600061239b8386611a4e90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146124c857600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561247057888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016124679493929190613f84565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612563578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461255b91906138e4565b925050819055505b5050806001019050612366565b50600183510361262f576000612590600085611a4e90919063ffffffff16565b905060006125a8600085611a4e90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161262092919061388c565b60405180910390a450506126ae565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516126a5929190613fc9565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612861578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612716959493929190614055565b6020604051808303816000875af192505050801561275257506040513d601f19601f8201168201806040525081019061274f91906140c4565b60015b6127d6573d8060008114612782576040519150601f19603f3d011682016040523d82523d6000602084013e612787565b606091505b5060008151036127ce57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127c5919061341c565b60405180910390fd5b805160208201fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461285f57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612856919061341c565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612a15578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016128ca9594939291906140f1565b6020604051808303816000875af192505050801561290657506040513d601f19601f8201168201806040525081019061290391906140c4565b60015b61298a573d8060008114612936576040519150601f19603f3d011682016040523d82523d6000602084013e61293b565b606091505b50600081510361298257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612979919061341c565b60405180910390fd5b805160208201fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612a1357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612a0a919061341c565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a5c82612a31565b9050919050565b612a6c81612a51565b8114612a7757600080fd5b50565b600081359050612a8981612a63565b92915050565b6000819050919050565b612aa281612a8f565b8114612aad57600080fd5b50565b600081359050612abf81612a99565b92915050565b60008060408385031215612adc57612adb612a27565b5b6000612aea85828601612a7a565b9250506020612afb85828601612ab0565b9150509250929050565b612b0e81612a8f565b82525050565b6000602082019050612b296000830184612b05565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612b6481612b2f565b8114612b6f57600080fd5b50565b600081359050612b8181612b5b565b92915050565b600060208284031215612b9d57612b9c612a27565b5b6000612bab84828501612b72565b91505092915050565b60008115159050919050565b612bc981612bb4565b82525050565b6000602082019050612be46000830184612bc0565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c3d82612bf4565b810181811067ffffffffffffffff82111715612c5c57612c5b612c05565b5b80604052505050565b6000612c6f612a1d565b9050612c7b8282612c34565b919050565b600067ffffffffffffffff821115612c9b57612c9a612c05565b5b612ca482612bf4565b9050602081019050919050565b82818337600083830152505050565b6000612cd3612cce84612c80565b612c65565b905082815260208101848484011115612cef57612cee612bef565b5b612cfa848285612cb1565b509392505050565b600082601f830112612d1757612d16612bea565b5b8135612d27848260208601612cc0565b91505092915050565b600060208284031215612d4657612d45612a27565b5b600082013567ffffffffffffffff811115612d6457612d63612a2c565b5b612d7084828501612d02565b91505092915050565b60006bffffffffffffffffffffffff82169050919050565b612d9a81612d79565b8114612da557600080fd5b50565b600081359050612db781612d91565b92915050565b60008060408385031215612dd457612dd3612a27565b5b6000612de285828601612a7a565b9250506020612df385828601612da8565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e37578082015181840152602081019050612e1c565b60008484015250505050565b6000612e4e82612dfd565b612e588185612e08565b9350612e68818560208601612e19565b612e7181612bf4565b840191505092915050565b60006020820190508181036000830152612e968184612e43565b905092915050565b600060208284031215612eb457612eb3612a27565b5b6000612ec284828501612ab0565b91505092915050565b612ed481612bb4565b8114612edf57600080fd5b50565b600081359050612ef181612ecb565b92915050565b600060208284031215612f0d57612f0c612a27565b5b6000612f1b84828501612ee2565b91505092915050565b60008060408385031215612f3b57612f3a612a27565b5b6000612f4985828601612ab0565b9250506020612f5a85828601612ab0565b9150509250929050565b612f6d81612a51565b82525050565b6000604082019050612f886000830185612f64565b612f956020830184612b05565b9392505050565b600067ffffffffffffffff821115612fb757612fb6612c05565b5b602082029050602081019050919050565b600080fd5b6000612fe0612fdb84612f9c565b612c65565b9050808382526020820190506020840283018581111561300357613002612fc8565b5b835b8181101561302c57806130188882612ab0565b845260208401935050602081019050613005565b5050509392505050565b600082601f83011261304b5761304a612bea565b5b813561305b848260208601612fcd565b91505092915050565b600067ffffffffffffffff82111561307f5761307e612c05565b5b61308882612bf4565b9050602081019050919050565b60006130a86130a384613064565b612c65565b9050828152602081018484840111156130c4576130c3612bef565b5b6130cf848285612cb1565b509392505050565b600082601f8301126130ec576130eb612bea565b5b81356130fc848260208601613095565b91505092915050565b600080600080600060a0868803121561312157613120612a27565b5b600061312f88828901612a7a565b955050602061314088828901612a7a565b945050604086013567ffffffffffffffff81111561316157613160612a2c565b5b61316d88828901613036565b935050606086013567ffffffffffffffff81111561318e5761318d612a2c565b5b61319a88828901613036565b925050608086013567ffffffffffffffff8111156131bb576131ba612a2c565b5b6131c7888289016130d7565b9150509295509295909350565b600067ffffffffffffffff8211156131ef576131ee612c05565b5b602082029050602081019050919050565b600061321361320e846131d4565b612c65565b9050808382526020820190506020840283018581111561323657613235612fc8565b5b835b8181101561325f578061324b8882612a7a565b845260208401935050602081019050613238565b5050509392505050565b600082601f83011261327e5761327d612bea565b5b813561328e848260208601613200565b91505092915050565b600080604083850312156132ae576132ad612a27565b5b600083013567ffffffffffffffff8111156132cc576132cb612a2c565b5b6132d885828601613269565b925050602083013567ffffffffffffffff8111156132f9576132f8612a2c565b5b61330585828601613036565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334481612a8f565b82525050565b6000613356838361333b565b60208301905092915050565b6000602082019050919050565b600061337a8261330f565b613384818561331a565b935061338f8361332b565b8060005b838110156133c05781516133a7888261334a565b97506133b283613362565b925050600181019050613393565b5085935050505092915050565b600060208201905081810360008301526133e7818461336f565b905092915050565b60006020828403121561340557613404612a27565b5b600061341384828501612a7a565b91505092915050565b60006020820190506134316000830184612f64565b92915050565b6000806040838503121561344e5761344d612a27565b5b600061345c85828601612a7a565b925050602061346d85828601612ee2565b9150509250929050565b6000806040838503121561348e5761348d612a27565b5b600061349c85828601612a7a565b92505060206134ad85828601612a7a565b9150509250929050565b600080600080600060a086880312156134d3576134d2612a27565b5b60006134e188828901612a7a565b95505060206134f288828901612a7a565b945050604061350388828901612ab0565b935050606061351488828901612ab0565b925050608086013567ffffffffffffffff81111561353557613534612a2c565b5b613541888289016130d7565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061359557607f821691505b6020821081036135a8576135a761354e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135e882612a8f565b91506135f383612a8f565b925082820261360181612a8f565b91508282048414831517613618576136176135ae565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061365982612a8f565b915061366483612a8f565b9250826136745761367361361f565b5b828204905092915050565b60006040820190506136946000830185612f64565b6136a16020830184612f64565b9392505050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b60006136de601383612e08565b91506136e9826136a8565b602082019050919050565b6000602082019050818103600083015261370d816136d1565b9050919050565b600081905092915050565b50565b600061372f600083613714565b915061373a8261371f565b600082019050919050565b600061375082613722565b9150819050919050565b7f5472616e7366657220746f2044414d2061646472657373206661696c65640000600082015250565b6000613790601e83612e08565b915061379b8261375a565b602082019050919050565b600060208201905081810360008301526137bf81613783565b9050919050565b60006137d182612a8f565b91506137dc83612a8f565b92508282039050818111156137f4576137f36135ae565b5b92915050565b7f5472616e7366657220746f20617274697374732073706c69747465722061646460008201527f72657373206661696c6564000000000000000000000000000000000000000000602082015250565b6000613856602b83612e08565b9150613861826137fa565b604082019050919050565b6000602082019050818103600083015261388581613849565b9050919050565b60006040820190506138a16000830185612b05565b6138ae6020830184612b05565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006138ef82612a8f565b91506138fa83612a8f565b9250828201905080821115613912576139116135ae565b5b92915050565b600061392382612a8f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613955576139546135ae565b5b600182019050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000613996601d83612e08565b91506139a182613960565b602082019050919050565b600060208201905081810360008301526139c581613989565b9050919050565b7f496e73756666696369656e74207061636b2062616c616e636500000000000000600082015250565b6000613a02601983612e08565b9150613a0d826139cc565b602082019050919050565b60006020820190508181036000830152613a31816139f5565b9050919050565b7f4d696e74696e6720697320636c6f736564000000000000000000000000000000600082015250565b6000613a6e601183612e08565b9150613a7982613a38565b602082019050919050565b60006020820190508181036000830152613a9d81613a61565b9050919050565b7f496e636f72726563742045544820616d6f756e74000000000000000000000000600082015250565b6000613ada601483612e08565b9150613ae582613aa4565b602082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613b727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613b35565b613b7c8683613b35565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613bb9613bb4613baf84612a8f565b613b94565b612a8f565b9050919050565b6000819050919050565b613bd383613b9e565b613be7613bdf82613bc0565b848454613b42565b825550505050565b600090565b613bfc613bef565b613c07818484613bca565b505050565b5b81811015613c2b57613c20600082613bf4565b600181019050613c0d565b5050565b601f821115613c7057613c4181613b10565b613c4a84613b25565b81016020851015613c59578190505b613c6d613c6585613b25565b830182613c0c565b50505b505050565b600082821c905092915050565b6000613c9360001984600802613c75565b1980831691505092915050565b6000613cac8383613c82565b9150826002028217905092915050565b613cc582612dfd565b67ffffffffffffffff811115613cde57613cdd612c05565b5b613ce8825461357d565b613cf3828285613c2f565b600060209050601f831160018114613d265760008415613d14578287015190505b613d1e8582613ca0565b865550613d86565b601f198416613d3486613b10565b60005b82811015613d5c57848901518255600182019150602085019450602081019050613d37565b86831015613d795784890151613d75601f891682613c82565b8355505b6001600288020188555050505b505050505050565b6000613da9613da4613d9f84612d79565b613b94565b612a8f565b9050919050565b613db981613d8e565b82525050565b6000604082019050613dd46000830185613db0565b613de16020830184612b05565b9392505050565b6000819050919050565b613e03613dfe82612a8f565b613de8565b82525050565b60008160601b9050919050565b6000613e2182613e09565b9050919050565b6000613e3382613e16565b9050919050565b613e4b613e4682612a51565b613e28565b82525050565b6000613e5d8289613df2565b602082019150613e6d8288613df2565b602082019150613e7d8287613e3a565b601482019150613e8d8286613df2565b602082019150613e9d8285613df2565b602082019150613ead8284613df2565b602082019150819050979650505050505050565b6000613ecc82612a8f565b9150613ed783612a8f565b925082613ee757613ee661361f565b5b828206905092915050565b7f556e61626c6520746f2067656e657261746520756e6971756520617274776f7260008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f4e602183612e08565b9150613f5982613ef2565b604082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b6000608082019050613f996000830187612f64565b613fa66020830186612b05565b613fb36040830185612b05565b613fc06060830184612b05565b95945050505050565b60006040820190508181036000830152613fe3818561336f565b90508181036020830152613ff7818461336f565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061402782614000565b614031818561400b565b9350614041818560208601612e19565b61404a81612bf4565b840191505092915050565b600060a08201905061406a6000830188612f64565b6140776020830187612f64565b6140846040830186612b05565b6140916060830185612b05565b81810360808301526140a3818461401c565b90509695505050505050565b6000815190506140be81612b5b565b92915050565b6000602082840312156140da576140d9612a27565b5b60006140e8848285016140af565b91505092915050565b600060a0820190506141066000830188612f64565b6141136020830187612f64565b8181036040830152614125818661336f565b90508181036060830152614139818561336f565b9050818103608083015261414d818461401c565b9050969550505050505056fea26469706673582212206be1be3fabc21b7c632ab8b6c370258de4109cde599cc94d166c83afcb408ace64736f6c634300081c0033546865204469676974616c204173736574204d757365756d202d2044414d205041434b533a20323032350000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007e68747470733a2f2f377a6e676f636b6136767a7164766c796f626634766870776a7665717a7961326a76717675637063776e696379366570767679612e617277656176652e6e65742f5f6c706e43554431637748566548424c7970333254556b4d3442704e59566f4a34724e514c4869507258412f7b69647d2e6a736f6e0000