0 txs
1 call
constructor
No constructor.
functions
affiliateBalance
viewfunction affiliateBalance(address affiliate) view returns (uint128)
affiliateBalanceToken
viewfunction affiliateBalanceToken(address affiliate, address token) view returns (uint128)
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
computePrice
viewfunction computePrice(bytes32 key, uint256 quantity, bool affiliateUsed) view returns (uint256)
config
viewfunction config() view returns (string baseUri, address affiliateSigner, uint16 maxBatchSize, uint16 affiliateFee, uint16 affiliateDiscount, uint16 defaultRoyalty)
invites
viewfunction invites(bytes32) view returns (uint128 price, uint128 reservePrice, uint128 delta, uint32 start, uint32 end, uint32 limit, uint32 maxSupply, uint32 interval, uint32 unitSize, address tokenAddress)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
listSupply
viewfunction listSupply(bytes32 key) view returns (uint256)
maxSupply
viewfunction maxSupply() view returns (uint32[])
minted
viewfunction minted(address minter, bytes32 key) view returns (uint256)
name
viewfunction name() view returns (string)
options
viewfunction options() view returns (bool uriLocked, bool maxSupplyLocked, bool affiliateFeeLocked, bool ownerAltPayoutLocked)
owner
viewfunction owner() view returns (address)
ownerBalance
viewfunction ownerBalance() view returns (uint128)
ownerBalanceToken
viewfunction ownerBalanceToken(address token) view returns (uint128)
packedBonusDiscounts
viewfunction packedBonusDiscounts(bytes32) view returns (uint256)
payoutConfig
viewfunction payoutConfig() view returns (uint16 ownerBps, uint16 platformBps, uint16 partnerBps, uint16 superAffiliateBps, address partner, address superAffiliate, address ownerAltPayout)
platform
purefunction platform() pure returns (address)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address, uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenSupply
viewfunction tokenSupply(uint256 tokenId) view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
uri
viewfunction uri(uint256 tokenId) view returns (string)
batchMintTo
payablefunction batchMintTo(tuple auth, address[] toList, uint256[] quantityList, uint256[] tokenIdList, address affiliate, bytes signature) payable
initialize
nonpayablefunction initialize(string _name, string _symbol, tuple config_, tuple payoutConfig_, address _receiver)
lockAffiliateFee
nonpayablefunction lockAffiliateFee(string password)
lockMaxSupply
nonpayablefunction lockMaxSupply(string password)
lockOwnerAltPayout
nonpayablefunction lockOwnerAltPayout(string password)
lockURI
nonpayablefunction lockURI(string password)
mintTo
payablefunction mintTo(tuple auth, uint256 quantity, address to, uint256 tokenId, address affiliate, bytes signature) payable
mintToken
payablefunction mintToken(tuple auth, uint256 quantity, uint256 tokenId, address affiliate, bytes signature) payable
renounceOwnership
nonpayablefunction renounceOwnership()
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data)
setAdvancedInvite
nonpayablefunction setAdvancedInvite(bytes32 _key, bytes32 _cid, tuple _AdvancedInvite)
setAffiliateDiscount
nonpayablefunction setAffiliateDiscount(uint16 affiliateDiscount)
setAffiliateFee
nonpayablefunction setAffiliateFee(uint16 affiliateFee)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string baseUri)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint16 feeNumerator)
setInvite
nonpayablefunction setInvite(bytes32 _key, bytes32 _cid, tuple _invite)
setMaxBatchSize
nonpayablefunction setMaxBatchSize(uint16 maxBatchSize)
setMaxSupply
nonpayablefunction setMaxSupply(uint32[] newMaxSupply, string password)
setOwnerAltPayout
nonpayablefunction setOwnerAltPayout(address ownerAltPayout)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw()
withdrawAffiliate
nonpayablefunction withdrawAffiliate()
withdrawTokens
nonpayablefunction withdrawTokens(address[] tokens)
withdrawTokensAffiliate
nonpayablefunction withdrawTokensAffiliate(address[] tokens)
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
Initialized
event Initialized(uint8 version)
Invited
event Invited(bytes32 indexed key, bytes32 indexed cid)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Referral
event Referral(address indexed affiliate, address token, uint128 wad, uint256 numMints)
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)
Withdrawal
event Withdrawal(address indexed src, address token, uint128 wad)
errors
InvalidConfig
error InvalidConfig()
InvalidSplitShares
error InvalidSplitShares()
LockedForever
error LockedForever()
MaxSupplyExceeded
error MaxSupplyExceeded()
MintToZeroAddress
error MintToZeroAddress()
NotApprovedToTransfer
error NotApprovedToTransfer()
NotOwner
error NotOwner()
NotSupported
error NotSupported()
TransferFailed
error TransferFailed()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
WrongPassword
error WrongPassword()
creation bytecode
0x608060405234801561001057600080fd5b50614f07806100206000396000f3fe6080604052600436106102435760003560e01c8062fdd58e1461024857806301ffc9a71461027b57806306fdde03146102ab5780630c6f910b146102cd5780630e89341c146102ef5780631069143a1461030f57806315ec67201461037057806318160ddd146103855780631fff79b01461039a57806321d5bf24146103ad5780632693ebf21461041557806327a59437146104355780632a55205a146104745780632eb2c2d6146104a257806332f7c6d4146104c25780633ccfd60b146104e25780634331f639146104f75780634bde38c8146105175780634e1273f4146105525780635000d3d11461057f57806355f804b3146105925780635ecb16cd146105b2578063715018a6146105d257806379502c55146105e757806379b004db1461060e5780637c5d0a081461062e5780637ded18481461064e5780638b4795d6146106615780638da5cb5b1461068157806395d89b4114610696578063978a4509146106ab5780639a7a973c146106f6578063a22cb46514610723578063a3edb86a14610743578063a5aa4aa414610786578063aefc542814610892578063b2938bd4146108b2578063b581085b146108d2578063b68836fa146108f2578063ba7bc0221461091f578063bedcf0031461093f578063caf3e53214610985578063ce216e2f146109a5578063d4048441146109c5578063d5abeb0114610a70578063de6cd0db14610a92578063e985e9c514610ab2578063ead0055314610afb578063f242432a14610b1b578063f2fde38b14610b3b578063f588eb5014610b5b575b600080fd5b34801561025457600080fd5b506102686102633660046134ae565b610b7b565b6040519081526020015b60405180910390f35b34801561028757600080fd5b5061029b6102963660046134f0565b610c16565b6040519015158152602001610272565b3480156102b757600080fd5b506102c0610c30565b6040516102729190613564565b3480156102d957600080fd5b506102ed6102e8366004613587565b610cbf565b005b3480156102fb57600080fd5b506102c061030a3660046135a4565b610d3a565b34801561031b57600080fd5b50610109546103469060ff808216916101008104821691620100008204811691630100000090041684565b60408051941515855292151560208501529015159183019190915215156060820152608001610272565b34801561037c57600080fd5b506102ed610d9d565b34801561039157600080fd5b50610268610e00565b6102ed6103a8366004613610565b610e54565b3480156103b957600080fd5b506103fd6103c83660046136a1565b6001600160a01b039182166000908152610100602090815260408083209390941682529190915220546001600160801b031690565b6040516001600160801b039091168152602001610272565b34801561042157600080fd5b506102686104303660046135a4565b610e72565b34801561044157600080fd5b506103fd6104503660046136da565b6001600160a01b0316600090815260ff60205260409020546001600160801b031690565b34801561048057600080fd5b5061049461048f3660046136f7565b610eca565b604051610272929190613719565b3480156104ae57600080fd5b506102ed6104bd3660046138a4565b610f78565b3480156104ce57600080fd5b506102ed6104dd366004613951565b610fd6565b3480156104ee57600080fd5b506102ed610ffe565b34801561050357600080fd5b506102ed61051236600461398d565b61105e565b34801561052357600080fd5b50738952caf7e5bf1fe63ebe94148ca802f3ef127c985b6040516001600160a01b039091168152602001610272565b34801561055e57600080fd5b5061057261056d366004613a2a565b611096565b6040516102729190613ac8565b6102ed61058d366004613b1f565b6111bf565b34801561059e57600080fd5b506102ed6105ad366004613951565b611444565b3480156105be57600080fd5b506102ed6105cd366004613c1d565b61147e565b3480156105de57600080fd5b506102ed6114f1565b3480156105f357600080fd5b506105fc611505565b60405161027296959493929190613c51565b34801561061a57600080fd5b506102ed610629366004613587565b6115cf565b34801561063a57600080fd5b506102ed610649366004613951565b6115f0565b6102ed61065c366004613c9f565b611614565b34801561066d57600080fd5b506102ed61067c366004613587565b611872565b34801561068d57600080fd5b5061053a6118ef565b3480156106a257600080fd5b506102c06118fe565b3480156106b757600080fd5b506103fd6106c63660046136da565b6001600160a01b03166000908152610100602090815260408083208380529091529020546001600160801b031690565b34801561070257600080fd5b506102686107113660046135a4565b600090815260fe602052604090205490565b34801561072f57600080fd5b506102ed61073e366004613d53565b61190c565b34801561074f57600080fd5b5061026861075e3660046134ae565b6001600160a01b0391909116600090815260fd60209081526040808320938352929052205490565b34801561079257600080fd5b506108226107a13660046135a4565b60fb6020526000908152604090208054600182015460028301546004909301546001600160801b0380841694600160801b948590048216949184169391820463ffffffff90811693600160a01b8404821693600160c01b8104831693600160e01b90910483169280821692600160201b90920416906001600160a01b03168a565b604080516001600160801b039b8c168152998b1660208b0152979099169688019690965263ffffffff9485166060880152928416608087015290831660a0860152821660c0850152811660e0840152166101008201526001600160a01b0390911661012082015261014001610272565b34801561089e57600080fd5b506102ed6108ad366004613e24565b61191e565b3480156108be57600080fd5b506102ed6108cd366004613f56565b611b75565b3480156108de57600080fd5b506102ed6108ed366004613fc1565b611cfd565b3480156108fe57600080fd5b5061026861090d3660046135a4565b60fc6020526000908152604090205481565b34801561092b57600080fd5b506102ed61093a366004614071565b612028565b34801561094b57600080fd5b506000805260ff6020527f03d616f3758432b4d7452e2e9011612152589bfc903ce751686613c478b2af5f546001600160801b03166103fd565b34801561099157600080fd5b506102686109a03660046140c8565b612185565b3480156109b157600080fd5b506102ed6109c0366004613951565b612238565b3480156109d157600080fd5b50610106546101075461010854610a219261ffff80821693620100008304821693600160201b8404831693600160301b8104909316926001600160a01b03600160401b9091048116928116911687565b6040805161ffff98891681529688166020880152948716948601949094529190941660608401526001600160a01b039384166080840152831660a08301529190911660c082015260e001610272565b348015610a7c57600080fd5b50610a8561225e565b60405161027291906140f6565b348015610a9e57600080fd5b506102ed610aad366004613951565b6122e6565b348015610abe57600080fd5b5061029b610acd3660046136a1565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b348015610b0757600080fd5b506102ed610b163660046136da565b612308565b348015610b2757600080fd5b506102ed610b36366004614140565b61235f565b348015610b4757600080fd5b506102ed610b563660046136da565b6123b6565b348015610b6757600080fd5b506102ed610b76366004613c1d565b61242c565b60006001600160a01b038316610beb5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b6000610c2182612467565b80610c105750610c10826124b7565b61010a8054610c3e906141a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6a906141a8565b8015610cb75780601f10610c8c57610100808354040283529160200191610cb7565b820191906000526020600020905b815481529060010190602001808311610c9a57829003601f168201915b505050505081565b610cc76124dc565b6101095462010000900460ff1615610cf25760405163249fab5d60e01b815260040160405180910390fd5b61138861ffff82161115610d19576040516306b7c75960e31b815260040160405180910390fd5b610105805461ffff909216620100000263ffff000019909216919091179055565b60606101026000018054610d4d906141a8565b9050600003610d6b5760405180602001604052806000815250610c10565b610102610d778361251c565b604051602001610d889291906141dc565b60405160208183030381529060405292915050565b60408051600180825281830190925260009160208083019080368337019050509050600081600081518110610dd457610dd4614263565b60200260200101906001600160a01b031690816001600160a01b031681525050610dfd8161242c565b50565b600080805b61010154811015610e4e576101018181548110610e2457610e24614263565b906000526020600020015482610e3a919061428f565b915080610e46816142a2565b915050610e05565b50919050565b610e6a8686610e61612560565b87878787611614565b505050505050565b6000610e7d82612587565b610e9a57604051630a14c4b560e41b815260040160405180910390fd5b610101610ea86001846142bb565b81548110610eb857610eb8614263565b90600052602060002001549050919050565b600082815260ca602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610f3f57506040805180820190915260c9546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610f5e906001600160601b0316876142ce565b610f6891906142e5565b91519350909150505b9250929050565b610f80612560565b6001600160a01b0316856001600160a01b03161480610fa65750610fa685610acd612560565b610fc25760405162461bcd60e51b8152600401610be290614307565b610fcf858585858561259d565b5050505050565b610fde6124dc565b610fe781612780565b50610109805463ff00000019166301000000179055565b6040805160018082528183019092526000916020808301908036833701905050905060008160008151811061103557611035614263565b60200260200101906001600160a01b031690816001600160a01b031681525050610dfd8161147e565b6110666124dc565b610105805461ffff60301b1916600160301b61ffff8416908102919091179091556110929083906127ea565b5050565b606081518351146110fb5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610be2565b600083516001600160401b0381111561111657611116613732565b60405190808252806020026020018201604052801561113f578160200160208202803683370190505b50905060005b84518110156111b75761118a85828151811061116357611163614263565b602002602001015185838151811061117d5761117d614263565b6020026020010151610b7b565b82828151811061119c5761119c614263565b60209081029190910101526111b0816142a2565b9050611145565b509392505050565b85881415806111ce5750858414155b156111ec576040516306b7c75960e31b815260040160405180910390fd5b6000805b878110156112305788888281811061120a5761120a614263565b905060200201358261121c919061428f565b915080611228816142a2565b9150506111f0565b50611239613342565b6040518060c0016040528061124c6118ef565b6001600160a01b03168152602001866001600160a01b031681526020018a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208a810282810182019093528a82529283019290918b918b918291850190849080828437600092018290525093855250505060208083018690528f3580835260fe825260408084205494810194909452825260fb9052206002810154919250906001600160201b90910463ffffffff16111561133357604051630280e1e560e61b815260040160405180910390fd5b611341818e848989896128e3565b60005b8b8110156114345760606113b08e8e8481811061136357611363614263565b905060200201602081019061137891906136da565b8b8b8581811061138a5761138a614263565b905060200201358e8e868181106113a3576113a3614263565b9050602002013584612bb0565b8b8b838181106113c2576113c2614263565b9050602002013561010160018c8c868181106113e0576113e0614263565b905060200201356113f191906142bb565b8154811061140157611401614263565b90600052602060002001600082825461141a919061428f565b9091555082915061142c9050816142a2565b915050611344565b5050505050505050505050505050565b61144c612cb6565b6101095460ff16156114715760405163249fab5d60e01b815260040160405180910390fd5b61010261109282826143b8565b73279d2ef69d48e073e8904f234dfa5397926688e6638e1ab86661010660ff6114a56118ef565b856040518563ffffffff1660e01b81526004016114c594939291906144aa565b60006040518083038186803b1580156114dd57600080fd5b505af4158015610fcf573d6000803e3d6000fd5b6114f9612cb6565b6115036000612d25565b565b61010280548190611515906141a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611541906141a8565b801561158e5780601f106115635761010080835404028352916020019161158e565b820191906000526020600020905b81548152906001019060200180831161157157829003601f168201915b505050600184015460039094015492936001600160a01b03169261ffff808216935062010000820481169250600160201b8204811691600160301b90041686565b6115d76124dc565b610105805461ffff191661ffff92909216919091179055565b6115f86124dc565b61160181612780565b50610109805461ff001916610100179055565b6001600160a01b03851661163a57604051622e076360e81b815260040160405180910390fd5b8635600090815260fb6020526040902060028101546001600160201b90910463ffffffff16111561168457600281015461168190600160201b900463ffffffff16886142ce565b96505b61168c613342565b6040805160018082528183019092526000916020808301908036833701905050905086816000815181106116c2576116c2614263565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050898160008151811061170557611705614263565b6020026020010181815250506040518060c001604052806117246118ef565b6001600160a01b03168152602001886001600160a01b031681526020018281526020018381526020018b815260200160fe60008e6000013581526020019081526020016000205481525092505050611780828a838888886128e3565b60005b8160600151518110156118665760606117d889846060015184815181106117ac576117ac614263565b6020026020010151856040015185815181106117ca576117ca614263565b602002602001015184612bb0565b826040015182815181106117ee576117ee614263565b602002602001015161010160018560600151858151811061181157611811614263565b602002602001015161182391906142bb565b8154811061183357611833614263565b90600052602060002001600082825461184c919061428f565b9091555082915061185e9050816142a2565b915050611783565b50505050505050505050565b61187a6124dc565b6101095462010000900460ff16156118a55760405163249fab5d60e01b815260040160405180910390fd5b61138861ffff821611156118cc576040516306b7c75960e31b815260040160405180910390fd5b610105805461ffff909216600160201b0261ffff60201b19909216919091179055565b6097546001600160a01b031690565b61010b8054610c3e906141a8565b611092611917612560565b8383612d77565b6119266124dc565b6101408101516001600160a01b0316156119eb5761014081015160405163095ea7b360e01b81526000916001600160a01b03169063095ea7b3906119869073aafdfa4a935d8511bf285af11a0544ce7e4a11999060001990600401613719565b6020604051808303816000875af11580156119a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c991906144d7565b9050806119e9576040516302df483560e21b815260040160405180910390fd5b505b42816060015163ffffffff161015611a0a5763ffffffff421660608201525b600083815260fb60209081526040918290208351848301516001600160801b03918216600160801b9183168202178355938501516001830180546060880151608089015160a08a015160c08b0151959096166001600160a01b03199093169290921763ffffffff91821690980297909717600160a01b600160e01b031916600160a01b9188169190910263ffffffff60c01b191617600160c01b93871693909302929092176001600160e01b0316600160e01b9186169190910217905560e08401516002820180546101008701519286166001600160401b031990911617600160201b9290951691909102939093179092556101208301518051849392611b1892600385019291019061338a565b506101409190910151600490910180546001600160a01b0319166001600160a01b03909216919091179055604051829084907fe9a0c17645ed78ccc9996259f00297ffc75e6b9d22cd605ccc9992cc8ca3f4c190600090a3505050565b611b7d612cb6565b604051602001611b8c906144f4565b6040516020818303038152906040528051906020012081604051602001611bb39190614507565b6040516020818303038152906040528051906020012014611be757604051635ee88f9760e01b815260040160405180910390fd5b61010954610100900460ff1615611c115760405163249fab5d60e01b815260040160405180910390fd5b60005b61010154811015611c8f576101018181548110611c3357611c33614263565b9060005260206000200154838281518110611c5057611c50614263565b602002602001015163ffffffff161015611c7d57604051638a164f6360e01b815260040160405180910390fd5b80611c87816142a2565b915050611c14565b50610101545b8251811015611ce357610101805460018101825560009182527f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca747689015580611cdb816142a2565b915050611c95565b508151611cf89061010490602085019061338a565b505050565b600054610100900460ff1615808015611d1d5750600054600160ff909116105b80611d3e5750611d2c30612e57565b158015611d3e575060005460ff166001145b611da15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610be2565b6000805460ff191660011790558015611dc4576000805461ff0019166101001790555b61010a611dd187826143b8565b5061010b611ddf86826143b8565b50611df860405180602001604052806000815250612e66565b611388611e0b60a0860160808701613587565b61ffff161180611e2f5750611388611e2960c0860160a08701613587565b61ffff16115b80611e5257506000611e4760408601602087016136da565b6001600160a01b0316145b80611e6e5750611e686080850160608601613587565b61ffff16155b15611e8c576040516306b7c75960e31b815260040160405180910390fd5b83610102611e9a8282614805565b50611eaa90506040850185614609565b90506001600160401b03811115611ec357611ec3613732565b604051908082528060200260200182016040528015611eec578160200160208202803683370190505b508051611f029161010191602090910190613439565b50611f0b612e96565b6000611f1d6080850160608601613587565b611f2d6060860160408701613587565b611f3d6040870160208801613587565b611f4a6020880188613587565b611f5491906148ed565b611f5e91906148ed565b611f6891906148ed565b61ffff16905060fa611f806040860160208701613587565b61ffff161080611f9257508061271014155b15611fb057604051632429608560e11b815260040160405180910390fd5b83610106611fbe828261490f565b505061010554611fda908490600160301b900461ffff1661105e565b508015610e6a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6120306124dc565b611cf8838360405180610160016040528085600001602081019061205491906149de565b6001600160801b03168152602090810190612071908701876149de565b6001600160801b0316815260200160006001600160801b031681526020018560200160208101906120a291906149f9565b63ffffffff1681526020016120bd60608701604088016149f9565b63ffffffff1681526020016120d860808701606088016149f9565b63ffffffff1681526020016120f360a08701608088016149f9565b63ffffffff1681526000602082015260400161211560c0870160a088016149f9565b63ffffffff16815260200161212d60c0870187614609565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250602001612175610100870160e088016136da565b6001600160a01b0316905261191e565b600083815260fb6020908152604080832060fe90925280832054610105549151631c130e3f60e21b8152909173279d2ef69d48e073e8904f234dfa5397926688e69163704c38fc916121ed918691600160201b900461ffff16908a9087908b90600401614a16565b602060405180830381865af415801561220a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222e9190614a3f565b9695505050505050565b6122406124dc565b61224981612780565b50610109805462ff0000191662010000179055565b60606101026002018054806020026020016040519081016040528092919081815260200182805480156122dc57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161229f5790505b5050505050905090565b6122ee6124dc565b6122f781612780565b50610109805460ff19166001179055565b6123106124dc565b610109546301000000900460ff161561233c5760405163249fab5d60e01b815260040160405180910390fd5b61010880546001600160a01b0319166001600160a01b0392909216919091179055565b612367612560565b6001600160a01b0316856001600160a01b0316148061238d575061238d85610acd612560565b6123a95760405162461bcd60e51b8152600401610be290614307565b610fcf8585858585612ec5565b6123be612cb6565b6001600160a01b0381166124235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be2565b610dfd81612d25565b60405163140fbc8560e01b815273279d2ef69d48e073e8904f234dfa5397926688e69063140fbc85906114c590610100908590600401614a58565b60006001600160e01b03198216636cdb3d1360e11b148061249857506001600160e01b031982166303a24d0760e21b145b80610c1057506301ffc9a760e01b6001600160e01b0319831614610c10565b60006001600160e01b0319821663152a902d60e11b1480610c105750610c1082612467565b6124e46118ef565b6001600160a01b03166124f5612560565b6001600160a01b031614611503576040516330cd747160e01b815260040160405180910390fd5b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a900480612537575050819003601f19909101908152919050565b60003373114d85630142bdae8fcb890a5258cf2a3416b0cc1461258257503390565b503290565b60008082118015610c1057505061010154101590565b81518351146125ff5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610be2565b6001600160a01b0384166126255760405162461bcd60e51b8152600401610be290614a71565b600061262f612560565b905060005b845181101561271a57600085828151811061265157612651614263565b60200260200101519050600085838151811061266f5761266f614263565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156126c05760405162461bcd60e51b8152600401610be290614ab6565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906126ff90849061428f565b9250508190555050505080612713906142a2565b9050612634565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161276a929190614b00565b60405180910390a4610e6a818787878787612fec565b60405160200161278f906144f4565b60405160208183030381529060405280519060200120816040516020016127b69190614507565b6040516020818303038152906040528051906020012014610dfd57604051635ee88f9760e01b815260040160405180910390fd5b6127106001600160601b03821611156128585760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610be2565b6001600160a01b0382166128aa5760405162461bcd60e51b815260206004820152601960248201527822a921991c9c189d1034b73b30b634b2103932b1b2b4bb32b960391b6044820152606401610be2565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b9091021760c955565b61010554608085015160a08601516020870151604051631c130e3f60e21b815260009473279d2ef69d48e073e8904f234dfa5397926688e69463704c38fc9461294b948e94600160201b90940461ffff16936001600160a01b03909116151590600401614a16565b602060405180830381865af4158015612968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298c9190614a3f565b604051631e1b3fbf60e11b815290915073279d2ef69d48e073e8904f234dfa5397926688e690633c367f7e906129db908a90610102908b9060fd90610101908b908b908f908c90600401614bc6565b60006040518083038186803b1580156129f357600080fd5b505af4158015612a07573d6000803e3d6000fd5b505050600188015463ffffffff600160e01b82048116600160c01b9092041610159050612a8957846080015160fd6000612a3f612560565b6001600160a01b03166001600160a01b031681526020019081526020016000206000886000013581526020019081526020016000206000828254612a83919061428f565b90915550505b600187015463ffffffff600160e01b90910481161015612ace5760808501518635600090815260fe602052604081208054909190612ac890849061428f565b90915550505b608085015160405163032cef8f60e41b815260048101899052610102602482015260ff604482015261010060648201526001600160a01b038616608482015260a48101919091526001600160801b03821660c482015273279d2ef69d48e073e8904f234dfa5397926688e6906332cef8f09060e40160006040518083038186803b158015612b5b57600080fd5b505af4158015612b6f573d6000803e3d6000fd5b50505050806001600160801b0316341115612ba757612ba7612b8f612560565b612ba26001600160801b038416346142bb565b61314e565b50505050505050565b6001600160a01b038416612c105760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610be2565b6000612c1a612560565b90506000612c27856131c2565b90506000612c34856131c2565b905060008681526065602090815260408083206001600160a01b038b16845290915281208054879290612c6890849061428f565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020614eb2833981519152910160405180910390a4612ba78360008989898961320d565b612cbe612560565b6001600160a01b0316612ccf6118ef565b6001600160a01b0316146115035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be2565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603612dea5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610be2565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03163b151590565b600054610100900460ff16612e8d5760405162461bcd60e51b8152600401610be290614cb9565b610dfd816132cf565b600054610100900460ff16612ebd5760405162461bcd60e51b8152600401610be290614cb9565b6115036132ff565b6001600160a01b038416612eeb5760405162461bcd60e51b8152600401610be290614a71565b6000612ef5612560565b90506000612f02856131c2565b90506000612f0f856131c2565b905060008681526065602090815260408083206001600160a01b038c16845290915290205485811015612f545760405162461bcd60e51b8152600401610be290614ab6565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612f9390849061428f565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020614eb2833981519152910160405180910390a4612fe1848a8a8a8a8a61320d565b505050505050505050565b612ffe846001600160a01b0316612e57565b15610e6a5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906130379089908990889088908890600401614d04565b6020604051808303816000875af1925050508015613072575060408051601f3d908101601f1916820190925261306f91810190614d62565b60015b61311e5761307e614d7f565b806308c379a0036130b75750613092614d9b565b8061309d57506130b9565b8060405162461bcd60e51b8152600401610be29190613564565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610be2565b6001600160e01b0319811663bc197c8160e01b14612ba75760405162461bcd60e51b8152600401610be290614e24565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461319b576040519150601f19603f3d011682016040523d82523d6000602084013e6131a0565b606091505b5050905080611cf8576040516312171d8360e31b815260040160405180910390fd5b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106131fc576131fc614263565b602090810291909101015292915050565b61321f846001600160a01b0316612e57565b15610e6a5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906132589089908990889088908890600401614e6c565b6020604051808303816000875af1925050508015613293575060408051601f3d908101601f1916820190925261329091810190614d62565b60015b61329f5761307e614d7f565b6001600160e01b0319811663f23a6e6160e01b14612ba75760405162461bcd60e51b8152600401610be290614e24565b600054610100900460ff166132f65760405162461bcd60e51b8152600401610be290614cb9565b610dfd81613336565b600054610100900460ff166133265760405162461bcd60e51b8152600401610be290614cb9565b611503613331612560565b612d25565b606761109282826143b8565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001606081526020016060815260200160008152602001600081525090565b828054828255906000526020600020906007016008900481019282156134295791602002820160005b838211156133f757835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026133b3565b80156134275782816101000a81549063ffffffff02191690556004016020816003010492830192600103026133f7565b505b50613435929150613474565b5090565b828054828255906000526020600020908101928215613429579160200282015b82811115613429578251825591602001919060010190613459565b5b808211156134355760008155600101613475565b6001600160a01b0381168114610dfd57600080fd5b80356134a981613489565b919050565b600080604083850312156134c157600080fd5b82356134cc81613489565b946020939093013593505050565b6001600160e01b031981168114610dfd57600080fd5b60006020828403121561350257600080fd5b813561350d816134da565b9392505050565b60005b8381101561352f578181015183820152602001613517565b50506000910152565b60008151808452613550816020860160208601613514565b601f01601f19169290920160200192915050565b60208152600061350d6020830184613538565b61ffff81168114610dfd57600080fd5b60006020828403121561359957600080fd5b813561350d81613577565b6000602082840312156135b657600080fd5b5035919050565b600060408284031215610e4e57600080fd5b60008083601f8401126135e157600080fd5b5081356001600160401b038111156135f857600080fd5b602083019150836020828501011115610f7157600080fd5b60008060008060008060a0878903121561362957600080fd5b86356001600160401b038082111561364057600080fd5b61364c8a838b016135bd565b975060208901359650604089013595506060890135915061366c82613489565b9093506080880135908082111561368257600080fd5b5061368f89828a016135cf565b979a9699509497509295939492505050565b600080604083850312156136b457600080fd5b82356136bf81613489565b915060208301356136cf81613489565b809150509250929050565b6000602082840312156136ec57600080fd5b813561350d81613489565b6000806040838503121561370a57600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561376d5761376d613732565b6040525050565b60405161016081016001600160401b038111828210171561379757613797613732565b60405290565b60006001600160401b038211156137b6576137b6613732565b5060051b60200190565b600082601f8301126137d157600080fd5b813560206137de8261379d565b6040516137eb8282613748565b83815260059390931b850182019282810191508684111561380b57600080fd5b8286015b84811015613826578035835291830191830161380f565b509695505050505050565b600082601f83011261384257600080fd5b81356001600160401b0381111561385b5761385b613732565b604051613872601f8301601f191660200182613748565b81815284602083860101111561388757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156138bc57600080fd5b85356138c781613489565b945060208601356138d781613489565b935060408601356001600160401b03808211156138f357600080fd5b6138ff89838a016137c0565b9450606088013591508082111561391557600080fd5b61392189838a016137c0565b9350608088013591508082111561393757600080fd5b5061394488828901613831565b9150509295509295909350565b60006020828403121561396357600080fd5b81356001600160401b0381111561397957600080fd5b61398584828501613831565b949350505050565b600080604083850312156139a057600080fd5b82356139ab81613489565b915060208301356136cf81613577565b600082601f8301126139cc57600080fd5b813560206139d98261379d565b6040516139e68282613748565b83815260059390931b8501820192828101915086841115613a0657600080fd5b8286015b84811015613826578035613a1d81613489565b8352918301918301613a0a565b60008060408385031215613a3d57600080fd5b82356001600160401b0380821115613a5457600080fd5b613a60868387016139bb565b93506020850135915080821115613a7657600080fd5b50613a83858286016137c0565b9150509250929050565b600081518084526020808501945080840160005b83811015613abd57815187529582019590820190600101613aa1565b509495945050505050565b60208152600061350d6020830184613a8d565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b8501011115610f7157600080fd5b60008060008060008060008060008060c08b8d031215613b3e57600080fd5b8a356001600160401b0380821115613b5557600080fd5b613b618e838f016135bd565b9b5060208d0135915080821115613b7757600080fd5b613b838e838f01613adb565b909b50995060408d0135915080821115613b9c57600080fd5b613ba88e838f01613adb565b909950975060608d0135915080821115613bc157600080fd5b613bcd8e838f01613adb565b9097509550859150613be160808e0161349e565b945060a08d0135915080821115613bf757600080fd5b50613c048d828e016135cf565b915080935050809150509295989b9194979a5092959850565b600060208284031215613c2f57600080fd5b81356001600160401b03811115613c4557600080fd5b613985848285016139bb565b60c081526000613c6460c0830189613538565b6001600160a01b039790971660208301525061ffff94851660408201529284166060840152908316608083015290911660a090910152919050565b600080600080600080600060c0888a031215613cba57600080fd5b87356001600160401b0380821115613cd157600080fd5b613cdd8b838c016135bd565b985060208a0135975060408a01359150613cf682613489565b90955060608901359450608089013590613d0f82613489565b90935060a08901359080821115613d2557600080fd5b50613d328a828b016135cf565b989b979a50959850939692959293505050565b8015158114610dfd57600080fd5b60008060408385031215613d6657600080fd5b8235613d7181613489565b915060208301356136cf81613d45565b80356001600160801b03811681146134a957600080fd5b63ffffffff81168114610dfd57600080fd5b80356134a981613d98565b600082601f830112613dc657600080fd5b81356020613dd38261379d565b604051613de08282613748565b83815260059390931b8501820192828101915086841115613e0057600080fd5b8286015b84811015613826578035613e1781613d98565b8352918301918301613e04565b600080600060608486031215613e3957600080fd5b833592506020840135915060408401356001600160401b0380821115613e5e57600080fd5b908501906101608288031215613e7357600080fd5b613e7b613774565b613e8483613d81565b8152613e9260208401613d81565b6020820152613ea360408401613d81565b6040820152613eb460608401613daa565b6060820152613ec560808401613daa565b6080820152613ed660a08401613daa565b60a0820152613ee760c08401613daa565b60c0820152613ef860e08401613daa565b60e0820152610100613f0b818501613daa565b908201526101208381013583811115613f2357600080fd5b613f2f8a828701613db5565b8284015250506101409150613f4582840161349e565b828201528093505050509250925092565b60008060408385031215613f6957600080fd5b82356001600160401b0380821115613f8057600080fd5b613f8c86838701613db5565b93506020850135915080821115613fa257600080fd5b50613a8385828601613831565b600060e08284031215610e4e57600080fd5b60008060008060006101608688031215613fda57600080fd5b85356001600160401b0380821115613ff157600080fd5b613ffd89838a01613831565b9650602088013591508082111561401357600080fd5b61401f89838a01613831565b9550604088013591508082111561403557600080fd5b5061404288828901613faf565b9350506140528760608801613faf565b915061014086013561406381613489565b809150509295509295909350565b60008060006060848603121561408657600080fd5b833592506020840135915060408401356001600160401b038111156140aa57600080fd5b840161010081870312156140bd57600080fd5b809150509250925092565b6000806000606084860312156140dd57600080fd5b833592506020840135915060408401356140bd81613d45565b6020808252825182820181905260009190848201906040850190845b8181101561413457835163ffffffff1683529284019291840191600101614112565b50909695505050505050565b600080600080600060a0868803121561415857600080fd5b853561416381613489565b9450602086013561417381613489565b9350604086013592506060860135915060808601356001600160401b0381111561419c57600080fd5b61394488828901613831565b600181811c908216806141bc57607f821691505b602082108103610e4e57634e487b7160e01b600052602260045260246000fd5b60008084546141ea816141a8565b60018281168015614202576001811461421757614246565b60ff1984168752821515830287019450614246565b8860005260208060002060005b8581101561423d5781548a820152908401908201614224565b50505082870194505b50505050835161425a818360208801613514565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1057610c10614279565b6000600182016142b4576142b4614279565b5060010190565b81810381811115610c1057610c10614279565b8082028115828204841417610c1057610c10614279565b60008261430257634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b5b818110156110925760008155600101614356565b601f821115611cf857806000526020600020601f840160051c810160208510156143915750805b610fcf601f850160051c830182614355565b600019600383901b1c191660019190911b1790565b81516001600160401b038111156143d1576143d1613732565b6143e5816143df84546141a8565b8461436a565b602080601f83116001811461441457600084156144025750858301515b61440c85826143a3565b865550610e6a565b600085815260208120601f198616915b8281101561444357888601518255948401946001909101908401614424565b50858210156144615787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600081518084526020808501945080840160005b83811015613abd5781516001600160a01b031687529582019590820190600101614485565b84815283602082015260018060a01b038316604082015260806060820152600061222e6080830184614471565b6000602082840312156144e957600080fd5b815161350d81613d45565b663337b932bb32b960c91b815260070190565b60008251614519818460208701613514565b9190910192915050565b6001600160401b0383111561453a5761453a613732565b61454e8361454883546141a8565b8361436a565b6000601f84116001811461457c576000851561456a5750838201355b61457486826143a3565b845550610fcf565b600083815260209020601f19861690835b828110156145ad578685013582556020948501946001909201910161458d565b50868210156145ca5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008135610c1081613489565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808335601e1984360301811261462057600080fd5b8301803591506001600160401b0382111561463a57600080fd5b6020019150600581901b3603821315610f7157600080fd5b600160401b82111561466657614666613732565b805482825580831015611cf8578160005260206000206007840160031c8101601c8560021b1680156146a9576000198083018054828460200360031b1c16815550505b50610fcf6007840160031c830182614355565b60008135610c1081613d98565b6001600160401b038311156146e0576146e0613732565b6146ea8382614652565b60008181526020902082908460031c60005b81811015614755576000805b60088110156147485761473761471d876146bc565b63ffffffff600584901b81811b19861692909116901b1790565b602096909601959150600101614708565b50838201556001016146fc565b506007198616808703818814614794576000805b8281101561478e5761477d61471d886146bc565b602097909701969150600101614769565b50848401555b5050505050505050565b60008135610c1081613577565b805463ffff00008360101b1663ffff0000198216178255505050565b805461ffff60201b191660209290921b61ffff60201b16919091179055565b805461ffff60301b191660309290921b61ffff60301b16919091179055565b8135601e1983360301811261481957600080fd5b820180356001600160401b0381111561483157600080fd5b60208201915080360382131561484657600080fd5b614851818385614523565b505061486b614862602084016145dc565b600183016145e9565b6148786040830183614609565b6148868183600286016146c9565b5050600381016148ae61489b6060850161479e565b825461ffff191661ffff91909116178255565b6148c36148bd6080850161479e565b826147ab565b6148d86148d260a0850161479e565b826147c7565b611cf86148e760c0850161479e565b826147e6565b61ffff81811683821601908082111561490857614908614279565b5092915050565b813561491a81613577565b815461ffff191661ffff821617825550602082013561493881613577565b61494281836147ab565b50604082013561495181613577565b61495b81836147c7565b50606082013561496a81613577565b61497481836147e6565b50608082013561498381613489565b8154600160401b600160e01b03191660409190911b600160401b600160e01b031617815560a08201356149b581613489565b6149c281600184016145e9565b5060c08201356149d181613489565b611cf881600284016145e9565b6000602082840312156149f057600080fd5b61350d82613d81565b600060208284031215614a0b57600080fd5b813561350d81613d98565b94855261ffff939093166020850152604084019190915260608301521515608082015260a00190565b600060208284031215614a5157600080fd5b5051919050565b8281526040602082015260006139856040830184614471565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000614b136040830185613a8d565b8281036020840152614b258185613a8d565b95945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b0380835116845280602084015116602085015250604082015160c06040850152614b8c60c0850182613a8d565b905060608301518482036060860152614ba58282613a8d565b9150506080830151608085015260a083015160a08501528091505092915050565b60006101008b83528a6020840152806040840152893581840152506020890135601e198a3603018112614bf857600080fd5b89016020810190356001600160401b03811115614c1457600080fd5b8060051b803603831315614c2757600080fd5b604061012086015261014085018290526101606001600160fb1b03831115614c4e57600080fd5b81848288013781860193508b60608701528a6080870152808685030160a0870152614c7c8185018a8c614b2e565b935050505082810360c0840152614c938186614b57565b915050614cab60e08301846001600160801b03169052565b9a9950505050505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090614d3090830186613a8d565b8281036060840152614d428186613a8d565b90508281036080840152614d568185613538565b98975050505050505050565b600060208284031215614d7457600080fd5b815161350d816134da565b600060033d1115614d985760046000803e5060005160e01c5b90565b600060443d1015614da95790565b6040516003193d81016004833e81513d6001600160401b038083116024840183101715614dd857505050505090565b8285019150815181811115614df05750505050505090565b843d8701016020828501011115614e0a5750505050505090565b614e1960208286010187613748565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614ea690830184613538565b97965050505050505056fec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a26469706673582212200e9978c567a4299d030e64f7cc679486b2262fcb56e419d215345e8fbfdc662764736f6c63430008140033