0 txs
1 call
constructor
No constructor.
functions
allowRefund
viewfunction allowRefund() view returns (bool)
allTiers
viewfunction allTiers(uint256) view returns (uint256 blpAmount, uint256 ticketSize, uint256 allocation, uint256 feePercent, uint256 purchasedTokens)
communityRound
viewfunction communityRound() view returns (uint256 period, uint256 ticketSize, uint256 feePercent)
customRaises
viewfunction customRaises(address) view returns (uint256)
customTiers
viewfunction customTiers(address) view returns (uint256)
dealCreator
viewfunction dealCreator() view returns (address)
distributedTokens
viewfunction distributedTokens() view returns (uint256)
finishTimestamp
viewfunction finishTimestamp() view returns (uint256)
getCustomTierIndex
viewfunction getCustomTierIndex(address _user) view returns (bool success, uint256 tierIndex)
getTiersLength
viewfunction getTiersLength() view returns (uint256)
getTokenAmount
viewfunction getTokenAmount(uint256 _paymentAmount) view returns (uint256)
isAdmin
viewfunction isAdmin(address) view returns (bool)
locker
viewfunction locker() view returns (address)
maxDistributedTokenAmount
viewfunction maxDistributedTokenAmount() view returns (uint256)
minimumRaise
viewfunction minimumRaise() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentToken
viewfunction paymentToken() view returns (address)
specialTiersFeePercent
viewfunction specialTiersFeePercent() view returns (uint256)
startClaimTimestamp
viewfunction startClaimTimestamp() view returns (uint256)
startTimestamp
viewfunction startTimestamp() view returns (uint256)
tokenPrice
viewfunction tokenPrice() view returns (uint256)
tokensForDistribution
viewfunction tokensForDistribution() view returns (uint256)
totalRaise
viewfunction totalRaise() view returns (uint256)
userInfo
viewfunction userInfo(address) view returns (uint256 debt, uint256 total, uint256 totalPayment)
verifier
viewfunction verifier() view returns (address)
version
purefunction version() pure returns (uint256)
__DealBase_init
nonpayablefunction __DealBase_init(address _verifier, address _locker, address _paymentToken, uint256 _tokenPrice, uint256 _startTimestamp, uint256 _finishTimestamp, uint256 _startClaimTimestamp, uint256 _minimumRaise, uint256 _maxDistributedTokenAmount, bool _allowRefund, address _dealCreator)
__DealCollectWallet_init
nonpayablefunction __DealCollectWallet_init(address _verifier, address _locker, tuple _walletInit, address _dealCollectWalletCreator)
addCustomAllocations
nonpayablefunction addCustomAllocations(address[] _users, uint256[] _tiers, uint256[] _raises)
addCustomTiers
nonpayablefunction addCustomTiers(address[] _users, uint256[] _tiers)
addTier
nonpayablefunction addTier(uint256 _blpAmount, uint256 _ticketSize, uint256 _allocation, uint256 _feePercent)
pause
nonpayablefunction pause()
pay
payablefunction pay(uint256 _amount, string _wallet, bytes _signature) payable
refund
nonpayablefunction refund()
removeCustomAllocations
nonpayablefunction removeCustomAllocations(address[] _users)
removeCustomTiers
nonpayablefunction removeCustomTiers(address[] _users)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdminPermission
nonpayablefunction setAdminPermission(address _user, bool _permission)
setCommunityRound
nonpayablefunction setCommunityRound(uint256 _communityPeriod, uint256 _communityTicketSize, uint256 _communityFeePercent)
setSpecialTiersFeePercent
nonpayablefunction setSpecialTiersFeePercent(uint256 _specialTiersFeePercent)
setTime
nonpayablefunction setTime(uint256 _startTimestamp, uint256 _finishTimestamp, uint256 _startClaimTimestamp)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateMaxDistributedTokenAmount
nonpayablefunction updateMaxDistributedTokenAmount(uint256 _amount)
updateTier
nonpayablefunction updateTier(uint256 _index, uint256 _blpAmount, uint256 _ticketSize, uint256 _allocation, uint256 _feePercent)
withdrawFunds
nonpayablefunction withdrawFunds()
events
CommunityRoundUpdated
event CommunityRoundUpdated(uint256 communityPeriod, uint256 communityTicketSize, uint256 communityFeePercent)
FundsWithdrawn
event FundsWithdrawn(uint256 amount)
MaxDistributedTokenAmountUpdated
event MaxDistributedTokenAmountUpdated(uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Refund
event Refund(address indexed holder, uint256 amount)
SetAdminPermission
event SetAdminPermission(address indexed admin, bool permission)
TimeUpdated
event TimeUpdated(uint256 startTimestamp, uint256 finishTimestamp, uint256 startClaimTimestamp)
TokensDebt
event TokensDebt(address indexed holder, string emissionAddress, uint256 payAmount, uint256 tokenAmount)
TokensWithdrawn
event TokensWithdrawn(address indexed holder, uint256 amount)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613535806100206000396000f3fe6080604052600436106102875760003560e01c80637f6486a81161015a578063d1e5587e116100c1578063efdbf04d1161007a578063efdbf04d14610702578063f1531f3214610722578063f2fde38b14610737578063fa218e4c14610757578063ff35658f14610777578063ffb2d35d1461079757610287565b8063d1e5587e1461065d578063d60f8f3f14610672578063d7b96d4e146106a3578063e0ee43a2146106b8578063e6fd48bc146106cd578063eeb44c25146106e257610287565b80639a017e7c116101135780639a017e7c146105b35780639a533e45146105c85780639c3d362e146105dd578063b2efafad146105fd578063b72091c71461061d578063c2507ac11461063d57610287565b80637f6486a81461051f5780637ff9b5961461053f5780638456cb5914610554578063878cead1146105695780638da5cb5b146105895780638e75b1311461059e57610287565b8063419c8e65116101fe578063590e1ae3116101b7578063590e1ae3146104985780635c3fb6dc146104ad5780635c975abb146104c0578063715018a6146104d557806375f3974b146104ea5780637b94c18e1461050a57610287565b8063419c8e65146103f657806343d7d321146104245780634b1a4c0c14610439578063529a855b1461044e57806354fd4d501461046e578063586360ce1461048357610287565b80632b7ac3f3116102505780632b7ac3f3146103485780633013ce291461036a5780633463d0ab1461037f5780633996dc8f1461039f5780633f4ba83a146103c15780633fea362d146103d657610287565b80627f041a1461028c57806315752e08146102ae5780631959a002146102ce57806324600fc31461030657806324d7806c1461031b575b600080fd5b34801561029857600080fd5b506102ac6102a7366004612942565b6107ac565b005b3480156102ba57600080fd5b506102ac6102c9366004612c17565b6108ce565b3480156102da57600080fd5b506102ee6102e936600461285a565b610967565b6040516102fd93929190613430565b60405180910390f35b34801561031257600080fd5b506102ac610988565b34801561032757600080fd5b5061033b61033636600461285a565b610b72565b6040516102fd9190612d87565b34801561035457600080fd5b5061035d610b87565b6040516102fd9190612d1c565b34801561037657600080fd5b5061035d610b96565b34801561038b57600080fd5b506102ac61039a3660046128e1565b610ba5565b3480156103ab57600080fd5b506103b4610c71565b6040516102fd9190613427565b3480156103cd57600080fd5b506102ac610c77565b3480156103e257600080fd5b506102ac6103f1366004612a0f565b610cca565b34801561040257600080fd5b5061041661041136600461285a565b610e02565b6040516102fd929190612d92565b34801561043057600080fd5b506103b4610e3f565b34801561044557600080fd5b506103b4610e45565b34801561045a57600080fd5b506102ac610469366004612b87565b610e4b565b34801561047a57600080fd5b506103b4610e99565b34801561048f57600080fd5b506103b4610e9e565b3480156104a457600080fd5b506102ac610ea4565b6102ac6104bb366004612bb7565b611003565b3480156104cc57600080fd5b5061033b611521565b3480156104e157600080fd5b506102ac61152a565b3480156104f657600080fd5b506102ac610505366004612876565b6115b3565b34801561051657600080fd5b506103b4611652565b34801561052b57600080fd5b506102ac61053a366004612c17565b611658565b34801561054b57600080fd5b506103b46116df565b34801561056057600080fd5b506102ac6116e5565b34801561057557600080fd5b506102ac6105843660046128ae565b611736565b34801561059557600080fd5b5061035d6117d5565b3480156105aa57600080fd5b506103b46117e4565b3480156105bf57600080fd5b5061035d6117ea565b3480156105d457600080fd5b506102ee6117f9565b3480156105e957600080fd5b506102ac6105f8366004612c42565b611805565b34801561060957600080fd5b506102ac610618366004612b87565b61194f565b34801561062957600080fd5b506103b461063836600461285a565b611a1b565b34801561064957600080fd5b506103b4610658366004612b87565b611a2d565b34801561066957600080fd5b506103b4611a4f565b34801561067e57600080fd5b5061069261068d366004612b87565b611a55565b6040516102fd959493929190613446565b3480156106af57600080fd5b5061035d611a93565b3480156106c457600080fd5b506103b4611aa2565b3480156106d957600080fd5b506103b4611aa8565b3480156106ee57600080fd5b506103b46106fd36600461285a565b611aae565b34801561070e57600080fd5b506102ac61071d366004612abc565b611ac0565b34801561072e57600080fd5b506103b4611b7a565b34801561074357600080fd5b506102ac61075236600461285a565b611b80565b34801561076357600080fd5b506102ac6107723660046128ae565b611c41565b34801561078357600080fd5b506102ac610792366004612c73565b611cd1565b3480156107a357600080fd5b5061033b611d84565b336107b56117d5565b6001600160a01b031614806107d957503360009081526065602052604090205460ff165b6107fe5760405162461bcd60e51b81526004016107f5906131e7565b60405180910390fd5b82518251148015610810575082518151145b61082c5760405162461bcd60e51b81526004016107f5906131bb565b60005b83518110156108c857600084828151811061084657fe5b602002602001015190506000610879600186858151811061086357fe5b6020026020010151611d8d90919063ffffffff16565b9050600084848151811061088957fe5b6020908102919091018101516001600160a01b03909416600090815260da825260408082209490945560db90915291909120919091555060010161082f565b50505050565b336108d76117d5565b6001600160a01b031614806108fb57503360009081526065602052604090205460ff165b6109175760405162461bcd60e51b81526004016107f5906131e7565b60dd83905560de82905560df8190556040517f6cae983b41c37ee773eb513cad298eb9ae7eb80a8b817f1e54eeefd104b723519061095a90859085908590613430565b60405180910390a1505050565b60d96020526000908152604090208054600182015460029092015490919083565b610990611db9565b6001600160a01b03166109a16117d5565b6001600160a01b0316146109c75760405162461bcd60e51b81526004016107f590613283565b600260985414156109ea5760405162461bcd60e51b81526004016107f5906133f0565b600260985560d254421015610a115760405162461bcd60e51b81526004016107f590612f2b565b60d85460ff161580610a34575060d85460ff168015610a34575060d65460d45410155b610a505760405162461bcd60e51b81526004016107f5906132b8565b60ce546000906001600160a01b0316610a9957506040514790339082156108fc029083906000818181858888f19350505050158015610a93573d6000803e3d6000fd5b50610b33565b60ce546040516370a0823160e01b81526001600160a01b03909116906370a0823190610ac9903090600401612d1c565b60206040518083038186803b158015610ae157600080fd5b505afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190612b9f565b60ce54909150610b33906001600160a01b03163383611dbd565b7f4a37b25aab49761ecf63117fe82b98d750917451133cf797507bc9fb5b96044a81604051610b629190613427565b60405180910390a1506001609855565b60656020526000908152604090205460ff1681565b60cb546001600160a01b031681565b60ce546001600160a01b031681565b33610bae6117d5565b6001600160a01b03161480610bd257503360009081526065602052604090205460ff165b610bee5760405162461bcd60e51b81526004016107f5906131e7565b8051825114610c0f5760405162461bcd60e51b81526004016107f5906131bb565b60005b8251811015610c6c576000838281518110610c2957fe5b602002602001015190506000610c46600185858151811061086357fe5b6001600160a01b03909216600090815260da602052604090209190915550600101610c12565b505050565b60d45481565b33610c806117d5565b6001600160a01b03161480610ca457503360009081526065602052604090205460ff165b610cc05760405162461bcd60e51b81526004016107f5906131e7565b610cc8611e13565b565b600054610100900460ff1680610ce35750610ce3611e81565b80610cf1575060005460ff16155b610d0d5760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff16158015610d38576000805460ff1961ff0019909116610100171660011790555b60008911610d585760405162461bcd60e51b81526004016107f590612df3565b610d60611e92565b610d68611f1d565b610d70611f9b565b60cc80546001600160a01b038085166001600160a01b03199283161790925560cb80548f841690831617905560cd80548e841690831617905560ce8054928d169290911691909117905560cf899055610dca888888612011565b60d685905560d384905560d8805460ff19168415151790558015610df4576000805461ff00191690555b505050505050505050505050565b6001600160a01b038116600090815260da6020526040812054801515919082610e2c576000610e37565b610e3781600161203f565b915050915091565b60d15481565b60d55481565b33610e546117d5565b6001600160a01b03161480610e7857503360009081526065602052604090205460ff165b610e945760405162461bcd60e51b81526004016107f5906131e7565b60dc55565b606b90565b60d75481565b610eac611521565b15610ec95760405162461bcd60e51b81526004016107f59061310c565b60026098541415610eec5760405162461bcd60e51b81526004016107f5906133f0565b600260985560d254421015610f135760405162461bcd60e51b81526004016107f5906130e0565b60d85460ff168015610f28575060d65460d454105b610f445760405162461bcd60e51b81526004016107f590612f56565b33600090815260d96020526040812060028101805492905560ce549091906001600160a01b0316610fa257604051339082156108fc029083906000818181858888f19350505050158015610f9c573d6000803e3d6000fd5b50610fb9565b60ce54610fb9906001600160a01b03163383611dbd565b336001600160a01b03167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b82604051610ff29190613427565b60405180910390a250506001609855565b600260985414156110265760405162461bcd60e51b81526004016107f5906133f0565b600260985560d154421061104c5760405162461bcd60e51b81526004016107f5906130c1565b611054611521565b156110715760405162461bcd60e51b81526004016107f59061310c565b60003330604051602001611086929190612cd9565b60408051601f1981840301815290829052805160209091012060cb546312c572c160e11b83529092506001600160a01b03169063258ae582906110cf9084908690600401612da2565b60206040518083038186803b1580156110e757600080fd5b505afa1580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f91906129c6565b61113b5760405162461bcd60e51b81526004016107f590613096565b60ce546001600160a01b031661116f5734841461116a5760405162461bcd60e51b81526004016107f5906133c1565b611187565b60ce54611187906001600160a01b0316333087612067565b60cc54604051637a570bf360e01b815260009182916001600160a01b0390911690637a570bf3906111be9033903090600401612d30565b604080518083038186803b1580156111d557600080fd5b505afa1580156111e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120d91906129e2565b91509150600082158015611222575060dd5415155b8015611233575060dd5460d0540142115b9050828061123e5750805b61125a5760405162461bcd60e51b81526004016107f590613033565b600061126588611a2d565b9050600080851561137c57600060ca868154811061127f57fe5b6000918252602080832033845260db909152604083205460059092020192506112a9906064611d8d565b90506112cd60646112c783856001015461208890919063ffffffff16565b906120c2565b93506112dd3383600301546120f4565b92506112f96112f26127106112c78887612088565b869061203f565b60cc5460405163f3ea2c5d60e01b81529196506001600160a01b03169063f3ea2c5d9061132c9033908b90600401612d4a565b600060405180830381600087803b15801561134657600080fd5b505af115801561135a573d6000803e3d6000fd5b505050600483015461136d915086611d8d565b826004018190555050506113a6565b60de5460df549092506113a39061139c90612710906112c7908790612088565b849061203f565b92505b818a11156113c65760405162461bcd60e51b81526004016107f590613136565b60d5546113d39084611d8d565b60d581905560d35410156113f95760405162461bcd60e51b81526004016107f59061325f565b60d454611406908b611d8d565b60d45533600090815260d9602052604090206002810154611427908c611d8d565b6002820181905583101561144d5760405162461bcd60e51b81526004016107f590612e34565b60cc546040516352a8aa1f60e01b81526001600160a01b03909116906352a8aa1f9061147d903390600401612d1c565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b50505060018201546114be915085611d8d565b600182015580546114cf9085611d8d565b815560405133907f91df64a973e2dae343a88e0763329c6d3368425658b85df43482c285173f481c90611507908d908f908990612dce565b60405180910390a250506001609855505050505050505050565b60665460ff1690565b611532611db9565b6001600160a01b03166115436117d5565b6001600160a01b0316146115695760405162461bcd60e51b81526004016107f590613283565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b6115bb611db9565b6001600160a01b03166115cc6117d5565b6001600160a01b0316146115f25760405162461bcd60e51b81526004016107f590613283565b6001600160a01b03821660008181526065602052604090819020805460ff1916841515179055517f0e7bea53cb2b3130dd1aac8d56b61cc8da7ebab0432e2d1622513523d848f2e790611646908490612d87565b60405180910390a25050565b60ca5490565b336116616117d5565b6001600160a01b0316148061168557503360009081526065602052604090205460ff165b6116a15760405162461bcd60e51b81526004016107f5906131e7565b6116ac838383612011565b7f7947ff7ad34168df17a1910afc9a795d2dd9270b96fa7aa00227c0e65cb3467383838360405161095a93929190613430565b60cf5481565b336116ee6117d5565b6001600160a01b0316148061171257503360009081526065602052604090205460ff165b61172e5760405162461bcd60e51b81526004016107f5906131e7565b610cc86121b3565b3361173f6117d5565b6001600160a01b0316148061176357503360009081526065602052604090205460ff165b61177f5760405162461bcd60e51b81526004016107f5906131e7565b60005b81518110156117d157600082828151811061179957fe5b6020908102919091018101516001600160a01b0316600090815260da8252604080822082905560db9092529081205550600101611782565b5050565b6033546001600160a01b031690565b60d65481565b60cc546001600160a01b031681565b60dd5460de5460df5483565b3361180e6117d5565b6001600160a01b0316148061183257503360009081526065602052604090205460ff165b61184e5760405162461bcd60e51b81526004016107f5906131e7565b6040805160a081018252858152602081018581529181018481526060820184815260006080840181815260ca8054600181018255925293517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160059092029182015593517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee285015590517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee3840155517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee4830155517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee5909101556108c861220e565b336119586117d5565b6001600160a01b0316148061197c57503360009081526065602052604090205460ff165b6119985760405162461bcd60e51b81526004016107f5906131e7565b60d15442106119b95760405162461bcd60e51b81526004016107f5906130c1565b60d5548110156119db5760405162461bcd60e51b81526004016107f590613309565b60d38190556040517f4fce623c62cfa30a624de8651f6c7f10509a50fae8c019496e5bb139360a34e790611a10908390613427565b60405180910390a150565b60db6020526000908152604090205481565b60cf54600090611a49906112c784670de0b6b3a7640000612088565b92915050565b60d25481565b60ca8181548110611a6257fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294509092909185565b60cd546001600160a01b031681565b60d35481565b60d05481565b60da6020526000908152604090205481565b600054610100900460ff1680611ad95750611ad9611e81565b80611ae7575060005460ff16155b611b035760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff16158015611b2e576000805460ff1961ff0019909116610100171660011790555b611b618585856000015186602001518760400151886060015189608001518a60a001518b60c001518c60e001518c610cca565b8015611b73576000805461ff00191690555b5050505050565b60dc5481565b611b88611db9565b6001600160a01b0316611b996117d5565b6001600160a01b031614611bbf5760405162461bcd60e51b81526004016107f590613283565b6001600160a01b038116611be55760405162461bcd60e51b81526004016107f590612e8e565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b33611c4a6117d5565b6001600160a01b03161480611c6e57503360009081526065602052604090205460ff165b611c8a5760405162461bcd60e51b81526004016107f5906131e7565b60005b81518110156117d1576000828281518110611ca457fe5b6020908102919091018101516001600160a01b0316600090815260da909152604081205550600101611c8d565b33611cda6117d5565b6001600160a01b03161480611cfe57503360009081526065602052604090205460ff165b611d1a5760405162461bcd60e51b81526004016107f5906131e7565b60ca548510611d3b5760405162461bcd60e51b81526004016107f5906132e0565b600060ca8681548110611d4a57fe5b600091825260209091206005909102018581556001810185905560028101849055600381018390559050611d7c61220e565b505050505050565b60d85460ff1681565b600082820183811015611db25760405162461bcd60e51b81526004016107f590612ed4565b9392505050565b3390565b610c6c8363a9059cbb60e01b8484604051602401611ddc929190612d4a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261227c565b611e1b611521565b611e375760405162461bcd60e51b81526004016107f590612e60565b6066805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e6a611db9565b604051611e779190612d1c565b60405180910390a1565b6000611e8c3061230b565b15905090565b600054610100900460ff1680611eab5750611eab611e81565b80611eb9575060005460ff16155b611ed55760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff16158015611f00576000805460ff1961ff0019909116610100171660011790555b611f08612311565b8015611f1a576000805461ff00191690555b50565b600054610100900460ff1680611f365750611f36611e81565b80611f44575060005460ff16155b611f605760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff16158015611f8b576000805460ff1961ff0019909116610100171660011790555b611f9361238f565b611f08612410565b600054610100900460ff1680611fb45750611fb4611e81565b80611fc2575060005460ff16155b611fde5760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff16158015612009576000805460ff1961ff0019909116610100171660011790555b611f0861249c565b818110156120315760405162461bcd60e51b81526004016107f590612ffc565b60d09290925560d15560d255565b6000828211156120615760405162461bcd60e51b81526004016107f590612f7f565b50900390565b6108c8846323b872dd60e01b858585604051602401611ddc93929190612d63565b60008261209757506000611a49565b828202828482816120a457fe5b0414611db25760405162461bcd60e51b81526004016107f59061321e565b60008082116120e35760405162461bcd60e51b81526004016107f59061305f565b8183816120ec57fe5b049392505050565b6001600160a01b038216600090815260da6020526040812054819015158061219a575060cc546040516338b2e8af60e01b81526000916001600160a01b0316906338b2e8af90612148908890600401612d1c565b60206040518083038186803b15801561216057600080fd5b505afa158015612174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121989190612b9f565b115b9050806121a757826121ab565b60dc545b949350505050565b6121bb611521565b156121d85760405162461bcd60e51b81526004016107f59061310c565b6066805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611e6a611db9565b60ca54600090815b818110156122595761224f60ca828154811061222e57fe5b90600052602060002090600502016002015484611d8d90919063ffffffff16565b9250600101612216565b5060d3548211156117d15760405162461bcd60e51b81526004016107f590612f0b565b60606122d1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125239092919063ffffffff16565b805190915015610c6c57808060200190518101906122ef91906129c6565b610c6c5760405162461bcd60e51b81526004016107f590613377565b3b151590565b600054610100900460ff168061232a575061232a611e81565b80612338575060005460ff16155b6123545760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff1615801561237f576000805460ff1961ff0019909116610100171660011790555b61238761238f565b611f08612532565b600054610100900460ff16806123a857506123a8611e81565b806123b6575060005460ff16155b6123d25760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff16158015611f08576000805460ff1961ff0019909116610100171660011790558015611f1a576000805461ff001916905550565b600054610100900460ff16806124295750612429611e81565b80612437575060005460ff16155b6124535760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff1615801561247e576000805460ff1961ff0019909116610100171660011790555b6066805460ff191690558015611f1a576000805461ff001916905550565b600054610100900460ff16806124b557506124b5611e81565b806124c3575060005460ff16155b6124df5760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff1615801561250a576000805460ff1961ff0019909116610100171660011790555b60016098558015611f1a576000805461ff001916905550565b60606121ab848460008561260c565b600054610100900460ff168061254b575061254b611e81565b80612559575060005460ff16155b6125755760405162461bcd60e51b81526004016107f59061316d565b600054610100900460ff161580156125a0576000805460ff1961ff0019909116610100171660011790555b60006125aa611db9565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015611f1a576000805461ff001916905550565b60608247101561262e5760405162461bcd60e51b81526004016107f590612fb6565b6126378561230b565b6126535760405162461bcd60e51b81526004016107f590613340565b60006060866001600160a01b031685876040516126709190612d00565b60006040518083038185875af1925050503d80600081146126ad576040519150601f19603f3d011682016040523d82523d6000602084013e6126b2565b606091505b50915091506126c28282866126cd565b979650505050505050565b606083156126dc575081611db2565b8251156126ec5782518084602001fd5b8160405162461bcd60e51b81526004016107f59190612dbb565b8035611a49816134dc565b600082601f830112612721578081fd5b813561273461272f82613490565b613469565b81815291506020808301908481018184028601820187101561275557600080fd5b60005b8481101561277d57813561276b816134dc565b84529282019290820190600101612758565b505050505092915050565b600082601f830112612798578081fd5b81356127a661272f82613490565b8181529150602080830190848101818402860182018710156127c757600080fd5b60005b8481101561277d578135845292820192908201906001016127ca565b8035611a49816134f1565b600082601f830112612801578081fd5b813567ffffffffffffffff811115612817578182fd5b61282a601f8201601f1916602001613469565b915080825283602082850101111561284157600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561286b578081fd5b8135611db2816134dc565b60008060408385031215612888578081fd5b8235612893816134dc565b915060208301356128a3816134f1565b809150509250929050565b6000602082840312156128bf578081fd5b813567ffffffffffffffff8111156128d5578182fd5b6121ab84828501612711565b600080604083850312156128f3578182fd5b823567ffffffffffffffff8082111561290a578384fd5b61291686838701612711565b9350602085013591508082111561292b578283fd5b5061293885828601612788565b9150509250929050565b600080600060608486031215612956578081fd5b833567ffffffffffffffff8082111561296d578283fd5b61297987838801612711565b9450602086013591508082111561298e578283fd5b61299a87838801612788565b935060408601359150808211156129af578283fd5b506129bc86828701612788565b9150509250925092565b6000602082840312156129d7578081fd5b8151611db2816134f1565b600080604083850312156129f4578182fd5b82516129ff816134f1565b6020939093015192949293505050565b60008060008060008060008060008060006101608c8e031215612a30578687fd5b8b35612a3b816134dc565b9a5060208c0135612a4b816134dc565b995060408c0135612a5b816134dc565b985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c0135612a97816134f1565b91506101408c0135612aa8816134dc565b809150509295989b509295989b9093969950565b600080600080848603610160811215612ad3578283fd5b8535612ade816134dc565b94506020860135612aee816134dc565b9350610100603f198201811315612b03578384fd5b612b0c81613469565b9150612b1b8860408901612706565b8252606087013560208301526080870135604083015260a0870135606083015260c0870135608083015260e087013560a08301528087013560c083015250612b678761012088016127e6565b60e08201529150612b7c866101408701612706565b905092959194509250565b600060208284031215612b98578081fd5b5035919050565b600060208284031215612bb0578081fd5b5051919050565b600080600060608486031215612bcb578081fd5b83359250602084013567ffffffffffffffff80821115612be9578283fd5b612bf5878388016127f1565b93506040860135915080821115612c0a578283fd5b506129bc868287016127f1565b600080600060608486031215612c2b578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215612c57578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a08688031215612c8a578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008151808452612cc58160208601602086016134b0565b601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251612d128184602087016134b0565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b6000838252604060208301526121ab6040830184612cad565b600060208252611db26020830184612cad565b600060608252612de16060830186612cad565b60208301949094525060400152919050565b60208082526021908201527f4465616c426173653a20746f6b656e2070726963652063616e6e6f74206265206040820152600360fc1b606082015260800190565b602080825260129082015271457863656564207469636b65742073697a6560701b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260069082015265115e18d9595960d21b604082015260600190565b60208082526011908201527010db185a5b481b9bdd081cdd185c9d1959607a1b604082015260600190565b6020808252600f908201526e1499599d5b9908191a5cd8589b1959608a1b604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252601e908201527f436c61696d206d757374206265206d6f7265207468616e2066696e6973680000604082015260600190565b6020808252601290820152714e6f7420616c6c6f77656420746f2070617960701b604082015260600190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b602080825260059082015264115b99195960da1b604082015260600190565b6020808252601290820152711499599d5b99081b9bdd081cdd185c9d195960721b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526017908201527f4e6f7420636f7272656374207469636b65742073697a65000000000000000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b602080825260129082015271082e4ceeadacadce8e640dad2e6dac2e8c6d60731b604082015260600190565b6020808252601c908201527f4f6e6c79206f776e6572206f722061646d696e2063616e2063616c6c00000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600a908201526913dd995c999a5b1b195960b21b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d10db185a5b48191a5cd8589b195960921b604082015260600190565b6020808252600f908201526e092dcc6dee4e4cac6e840d2dcc8caf608b1b604082015260600190565b6020808252601e908201527f416d6f756e74203c20746f6b656e73466f72446973747269627574696f6e0000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601590820152740e6cadcc87440c2dadeeadce840dad2e6dac2e8c6d605b1b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b60405181810167ffffffffffffffff8111828210171561348857600080fd5b604052919050565b600067ffffffffffffffff8211156134a6578081fd5b5060209081020190565b60005b838110156134cb5781810151838201526020016134b3565b838111156108c85750506000910152565b6001600160a01b0381168114611f1a57600080fd5b8015158114611f1a57600080fdfea264697066735822122067892f92441d9997c89adf0dc0ae4855b0eb88b85d3d347e42d916c01e2e5d3c64736f6c634300060c0033