0 txs
1 call
constructor
constructor(string _offeringId, address _depositToken, address _fundsCollector, address _signer, uint256 _ticketSize, uint256 _targetRaiseAmount, uint256 _minRaiseAmount, uint256 _minTotalDaoPower, uint256 _minRegistrationsCount, uint256 _registrationEndTime, uint256 _personalGasFee)
functions
depositToken
viewfunction depositToken() view returns (address)
fundsCollector
viewfunction fundsCollector() view returns (address)
getRaiseInfo
viewfunction getRaiseInfo() view returns (address, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256)
guaranteedContributionIndex
viewfunction guaranteedContributionIndex() view returns (uint256)
guaranteedRatio
viewfunction guaranteedRatio() view returns (uint256)
initialRegistrationEndTime
viewfunction initialRegistrationEndTime() view returns (uint256)
lotteryForWinners
viewfunction lotteryForWinners() view returns (bool)
minRaiseAmount
viewfunction minRaiseAmount() view returns (uint256)
minRegistrationsCount
viewfunction minRegistrationsCount() view returns (uint256)
minTotalDaoPower
viewfunction minTotalDaoPower() view returns (uint256)
offeringId
viewfunction offeringId() view returns (string)
owner
viewfunction owner() view returns (address)
personalGasFee
viewfunction personalGasFee() view returns (uint256)
processedUserIndex
viewfunction processedUserIndex() view returns (uint256)
randomHash
viewfunction randomHash() view returns (bytes32)
referrals
viewfunction referrals(address) view returns (string)
registrationEndTime
viewfunction registrationEndTime() view returns (uint256)
signer
viewfunction signer() view returns (address)
targetRaiseAmount
viewfunction targetRaiseAmount() view returns (uint256)
tickets
viewfunction tickets() view returns (uint256)
ticketSize
viewfunction ticketSize() view returns (uint256)
totalContributionAmount
viewfunction totalContributionAmount() view returns (uint256)
totalContributionAmountInLottery
viewfunction totalContributionAmountInLottery() view returns (uint256)
totalDaoPower
viewfunction totalDaoPower() view returns (uint256)
totalDaoPowerInLottery
viewfunction totalDaoPowerInLottery() view returns (uint256)
totalFundsCollected
viewfunction totalFundsCollected() view returns (uint256)
totalGuaranteedContributionAmount
viewfunction totalGuaranteedContributionAmount() view returns (uint256)
totalRegistrationsCount
viewfunction totalRegistrationsCount() view returns (uint256)
totalWeightingInLottery
viewfunction totalWeightingInLottery() view returns (uint256)
userAddresses
viewfunction userAddresses(uint256) view returns (address)
users
viewfunction users(address) view returns (uint104 contributionAmount, uint64 daoPower, uint64 totalWeightingInLottery, uint16 tickets, bool isRegisteredInLottery)
collectFunds
nonpayablefunction collectFunds(uint256 usersCount)
refund
nonpayablefunction refund(uint256 usersCount)
register
payablefunction register(bytes signature, uint64 daoPower, uint104 contributionAmount, uint256 maxContributionAmount, bool isRegisteredInLottery, address referral) payable
registerFor
payablefunction registerFor(bytes signature, uint64 daoPower, uint104 contributionAmount, uint256 maxContributionAmount, bool isRegisteredInLottery, address applicant, address referral) payable
renounceOwnership
nonpayablefunction renounceOwnership()
runLottery
nonpayablefunction runLottery(uint16[] indexes)
setGuaranteedContributionAmounts
nonpayablefunction setGuaranteedContributionAmounts(uint256 usersCount)
setGuaranteedRatio
nonpayablefunction setGuaranteedRatio(uint256 newGuaranteedRatio)
setRegistrationEndTime
nonpayablefunction setRegistrationEndTime(uint256 newRegistrationEndTime)
setTargetRaiseAmount
nonpayablefunction setTargetRaiseAmount(uint256 newTargetRaiseAmount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
FundsCollection
event FundsCollection(address user, string offeringId, uint256 contributionAmount, uint256 excessiveAmount, uint256 daoPower)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Refund
event Refund(address user, string offeringId, uint256 contributionAmount)
Registration
event Registration(address user, string offeringId, uint64 daoPower, uint256 contributionAmount, address referral)
errors
No errors.
creation bytecode
0x6101a06040523480156200001257600080fd5b5060405162004276380380620042768339810160408190526200003591620003f4565b62000040336200014e565b60018055620173186001600160a01b038b166200005c57600080fd5b6001600160a01b038a166200007057600080fd5b6001600160a01b0389166200008457600080fd5b600087116200009257600080fd5b85871015620000a057600080fd5b428311620000ad57600080fd5b620000bc62278d00426200052e565b8310620000c857600080fd5b620186a0811115620000d957600080fd5b6001600160a01b03808c166080528a811660a052891660c052610160889052600687905560e0869052610100859052610120849052600783905560088190556101808290528b51620001339060059060208f01906200019e565b505060075461014052506200058f9950505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001ac906200055f565b90600052602060002090601f016020900481019282620001d057600085556200021b565b82601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b5b808211156200022957600081556001016200022e565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b038211171562000282576200028262000244565b6040525050565b60006200029560405190565b9050620002a382826200025a565b919050565b60006001600160401b03821115620002c457620002c462000244565b601f19601f83011660200192915050565b60005b83811015620002f2578181015183820152602001620002d8565b8381111562000302576000848401525b50505050565b60006200031f6200031984620002a8565b62000289565b9050828152602081018484840111156200033c576200033c600080fd5b62000349848285620002d5565b509392505050565b600082601f830112620003675762000367600080fd5b81516200037984826020860162000308565b949350505050565b60006001600160a01b0382165b92915050565b60006200038e8262000381565b620003ac8162000394565b8114620003b857600080fd5b50565b80516200038e81620003a1565b620003ac8162000381565b80516200038e81620003c8565b80620003ac565b80516200038e81620003e0565b60008060008060008060008060008060006101608c8e0312156200041b576200041b600080fd5b8b516001600160401b03811115620004365762000436600080fd5b620004448e828f0162000351565b9b50506020620004578e828f01620003bb565b9a505060406200046a8e828f01620003d3565b99505060606200047d8e828f01620003d3565b9850506080620004908e828f01620003e7565b97505060a0620004a38e828f01620003e7565b96505060c0620004b68e828f01620003e7565b95505060e0620004c98e828f01620003e7565b945050610100620004dd8e828f01620003e7565b935050610120620004f18e828f01620003e7565b925050610140620005058e828f01620003e7565b9150509295989b509295989b9093969950565b634e487b7160e01b600052601160045260246000fd5b6000821982111562000544576200054462000518565b500190565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200057457607f821691505b60208210810362000589576200058962000549565b50919050565b60805160a05160c05160e0516101005161012051610140516101605161018051613b576200071f6000396000818161067c0152818161078601528181610ba8015281816110e8015261212c01526000818161083a01528181610cef01528181610d2001528181610e5a01528181610e99015281816112c601528181611a4901528181611b8101528181611bbf01528181611c0601528181611c3a01528181611c8401528181611ccf01528181611d0401528181611d3d01528181611d8b01528181611fef0152818161201c015261209401526000818161026801526114810152600081816103770152818161065a01528181610a240152611a0701526000818161049701528181610638015281816109f501526119c2015260008181610616015281816108840152818161091e015281816109ca015261198001526000818161030001526123190152600081816103c1015281816110bb01526118bf0152600081816105f2015281816107ba01528181610b0901528181610fcf0152818161109901526124f10152613b576000f3fe6080604052600436106102515760003560e01c80637e39f18a11610139578063a87430ba116100b6578063d5b151d11161007a578063d5b151d114610812578063ded984e914610828578063dff7d2c71461085c578063f0ab460114610872578063f2fde38b146108a6578063f58a6d60146108c657600080fd5b8063a87430ba146106f7578063acfa4f6114610774578063c89039c5146107a8578063ce1d6ba0146107e9578063d3b56db8146107fc57600080fd5b806390d5b9f6116100fd57806390d5b9f6146105b75780639a8ca27c146105cd5780639ca423b3146106a4578063a5fb1361146106c4578063a6e85257146106d757600080fd5b80637e39f18a146105375780638330c2a71461054d5780638c50790e1461056d5780638d08cfd1146105835780638da5cb5b1461059957600080fd5b8063449a054a116101d2578063702597e211610196578063702597e2146104655780637145508e14610485578063715018a6146104b957806374438747146104ce57806375915634146104f55780637cead03a1461051757600080fd5b8063449a054a146103e3578063502c9bd5146103f9578063526eca5b1461041957806356da67ec1461042f578063597e47341461044557600080fd5b8063278ecde111610219578063278ecde11461032f57806327965db21461034f5780632b21a602146103655780633a682cf6146103995780633a8c3338146103af57600080fd5b80630b801a86146102565780630d88b81e146102a05780630f31182f146102c257806321858521146102d8578063238ac933146102ee575b600080fd5b34801561026257600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516102979190612931565b60405180910390f35b3480156102ac57600080fd5b506102c06102bb366004612957565b6108dc565b005b3480156102ce57600080fd5b5061028a60155481565b3480156102e457600080fd5b5061028a60095481565b3480156102fa57600080fd5b506103227f000000000000000000000000000000000000000000000000000000000000000081565b6040516102979190612992565b34801561033b57600080fd5b506102c061034a366004612957565b610969565b34801561035b57600080fd5b5061028a600b5481565b34801561037157600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103a557600080fd5b5061028a600e5481565b3480156103bb57600080fd5b506103227f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ef57600080fd5b5061028a600a5481565b34801561040557600080fd5b50610322610414366004612957565b610bde565b34801561042557600080fd5b5061028a60135481565b34801561043b57600080fd5b5061028a60065481565b34801561045157600080fd5b506102c0610460366004612957565b610c08565b34801561047157600080fd5b506102c06104803660046129ea565b611122565b34801561049157600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c557600080fd5b506102c061137e565b3480156104da57600080fd5b506014546104e89060ff1681565b6040516102979190612a39565b34801561050157600080fd5b5061050a6113b4565b6040516102979190612aa5565b34801561052357600080fd5b506102c0610532366004612957565b611442565b34801561054357600080fd5b5061028a60105481565b34801561055957600080fd5b506102c0610568366004612957565b6114c2565b34801561057957600080fd5b5061028a60125481565b34801561058f57600080fd5b5061028a60115481565b3480156105a557600080fd5b506000546001600160a01b0316610322565b3480156105c357600080fd5b5061028a600f5481565b3480156105d957600080fd5b50600654600754600a54600e54600354604051610297957f00000000000000000000000000000000000000000000000000000000000000009590947f0000000000000000000000000000000000000000000000000000000000000000947f0000000000000000000000000000000000000000000000000000000000000000947f0000000000000000000000000000000000000000000000000000000000000000947f000000000000000000000000000000000000000000000000000000000000000093929190612af8565b3480156106b057600080fd5b5061050a6106bf366004612ba1565b61176c565b6102c06106d2366004612c53565b611785565b3480156106e357600080fd5b506102c06106f2366004612957565b61179e565b34801561070357600080fd5b50610763610712366004612ba1565b6002602052600090815260409020546001600160681b038116906001600160401b03600160681b8204811691600160a81b81049091169061ffff600160e81b8204169060ff600160f81b9091041685565b604051610297959493929190612d24565b34801561078057600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107b457600080fd5b506107dc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516102979190612d70565b6102c06107f7366004612d7e565b6117ea565b34801561080857600080fd5b5061028a600c5481565b34801561081e57600080fd5b5061028a60085481565b34801561083457600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561086857600080fd5b5061028a60075481565b34801561087e57600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108b257600080fd5b506102c06108c1366004612ba1565b611804565b3480156108d257600080fd5b5061028a600d5481565b6000546001600160a01b0316331461090f5760405162461bcd60e51b815260040161090690612e6f565b60405180910390fd5b6000811161091c57600080fd5b7f000000000000000000000000000000000000000000000000000000000000000081101561094957600080fd5b600754421061095757600080fd5b6012541561096457600080fd5b600655565b60026001540361098b5760405162461bcd60e51b815260040161090690612eb3565b60026001556011546003546109a09190612ed9565b8111156109ba576011546003546109b79190612ed9565b90505b600060075442118015610a4557507f0000000000000000000000000000000000000000000000000000000000000000600a541080610a1957507f0000000000000000000000000000000000000000000000000000000000000000600e54105b80610a4557506003547f0000000000000000000000000000000000000000000000000000000000000000115b9050600062278d00600754610a5a9190612ef0565b4211905060008311610a7e5760405162461bcd60e51b815260040161090690612f32565b8080610a875750815b610aa35760405162461bcd60e51b815260040161090690612f67565b600083601154610ab39190612ef0565b6011549091505b81811015610b9a57600060038281548110610ad757610ad7612f77565b60009182526020808320909101546001600160a01b0390811680845260029092526040909220805491935091610b3c917f00000000000000000000000000000000000000000000000000000000000000009091169084906001600160681b0316611860565b80546040517fa7dd277dca2a71c2100c1ed4323f417f6ca244c15a1ed1c0cd5f5fe621da4e3891610b7d9185916005916001600160681b0390911690613063565b60405180910390a150508080610b9290613092565b915050610aba565b506011819055610bd4610bcd7f0000000000000000000000000000000000000000000000000000000000000000866130ac565b83156118bb565b5050600180555050565b60038181548110610bee57600080fd5b6000918252602090912001546001600160a01b0316905081565b600260015403610c2a5760405162461bcd60e51b815260040161090690612eb3565b6002600155601154600354610c3f9190612ed9565b811115610c5957601154600354610c569190612ed9565b90505b600654600a541181610c7d5760405162461bcd60e51b815260040161090690612f32565b8015610cc65760035460125414610ca65760405162461bcd60e51b815260040161090690613111565b60095415610cc65760405162461bcd60e51b815260040161090690613155565b610cce61195d565b6000610cd8611a44565b5060145490915060009060ff1615610d1b57610d147f0000000000000000000000000000000000000000000000000000000000000000836130ac565b9050610d55565b610d457f0000000000000000000000000000000000000000000000000000000000000000836130ac565b600b54610d529190612ed9565b90505b600080600c5483600654610d699190612ed9565b1115610d8d57600c5483600654610d809190612ed9565b610d8a9190612ed9565b91505b600c54600b54600a54610da09190612ed9565b1115610dc657600c54600b54600a54610db99190612ed9565b610dc39190612ed9565b90505b60008087601154610dd79190612ef0565b6011549091505b8181101561106c57600060038281548110610dfb57610dfb612f77565b60009182526020808320909101546001600160a01b03168083526002909152604082208054919350916001600160681b03909116908b15610ff6578254600160f81b900460ff1615610ede5760145460ff1615610e91578254610e8a907f000000000000000000000000000000000000000000000000000000000000000090600160e81b900461ffff166130ac565b9150610f98565b8254610ec9907f000000000000000000000000000000000000000000000000000000000000000090600160e81b900461ffff166130ac565b8354610e8a91906001600160681b0316612ed9565b600e546008546006548554620186a0939291610f0991600160681b90046001600160401b03166130ac565b610f1391906130ac565b610f1d919061317b565b610f27919061317b565b83549092506001600160681b031682108015610f435750600088115b15610f8a578254600090610f619084906001600160681b0316612ed9565b905088610f6e828c6130ac565b610f78919061317b565b610f829084612ef0565b925050610f98565b82546001600160681b031691505b82546001600160681b0316821015610ff6578254610fc09083906001600160681b0316612ed9565b9050610ff66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168583611860565b6110008288612ef0565b83546040519198507f6cff12afcd2cd4cb26c8f26f1f0cb90b3e5a24c3fe0c28f20baca74142aa94f29161104d91879160059187918791600160681b90046001600160401b0316906131ad565b60405180910390a150505050808061106490613092565b915050610dde565b508060118190555081600d60008282546110869190612ef0565b909155506110e090506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084611860565b61111461110d7f00000000000000000000000000000000000000000000000000000000000000008a6130ac565b60016118bb565b505060018055505050505050565b600654600a54116111455760405162461bcd60e51b81526004016109069061321b565b600354601254146111685760405162461bcd60e51b815260040161090690613111565b60006009541161118a5760405162461bcd60e51b81526004016109069061325f565b60095460135460005b838110156113705760006002600060038888868181106111b5576111b5612f77565b90506020020160208101906111ca9190613284565b61ffff16815481106111de576111de612f77565b60009182526020808320909101546001600160a01b0316835282810193909352604091820190209051909250611216918591016132ab565b60405160208183030381529060405280519060200120925060006010548460001c61124191906132c0565b9050600061124e83611dd4565b8354909150600160f81b900460ff16801561127a57508254600160a81b90046001600160401b03168210155b80156112a25750825482906112a0908390600160a81b90046001600160401b0316612ef0565b115b6112be5760405162461bcd60e51b8152600401610906906132ff565b82546112f4907f0000000000000000000000000000000000000000000000000000000000000000906001600160681b031661317b565b8354600160e81b900461ffff16101561134a578254600160e81b900461ffff1683601d6113208361330f565b91906101000a81548161ffff021916908361ffff16021790555050858061134690613327565b9650505b8560000361135a57505050611370565b505050808061136890613092565b915050611193565b506009919091556013555050565b6000546001600160a01b031633146113a85760405162461bcd60e51b815260040161090690612e6f565b6113b26000611f30565b565b600580546113c190612fa3565b80601f01602080910402602001604051908101604052809291908181526020018280546113ed90612fa3565b801561143a5780601f1061140f5761010080835404028352916020019161143a565b820191906000526020600020905b81548152906001019060200180831161141d57829003601f168201915b505050505081565b6000546001600160a01b0316331461146c5760405162461bcd60e51b815260040161090690612e6f565b42811161147857600080fd5b6114a562278d007f0000000000000000000000000000000000000000000000000000000000000000612ef0565b81106114b057600080fd5b601254156114bd57600080fd5b600755565b6012546003546114d29190612ed9565b8111156114ec576012546003546114e99190612ed9565b90505b6000811161150c5760405162461bcd60e51b815260040161090690612f32565b600654600a541161152f5760405162461bcd60e51b81526004016109069061321b565b61153761195d565b600f5460105460125460009081908190611552908790612ef0565b6012549091505b818110156116b55760006003828154811061157657611576612f77565b60009182526020808320909101546001600160a01b03168083526002909152604090912080549192509060ff600160f81b90910416156116215780546001600160401b03808916600160a81b0267ffffffffffffffff60a81b19909216919091178083556115ed91600160681b9091041689612ef0565b97506115f881611dd4565b6116029088612ef0565b815490975061161a906001600160681b031687612ef0565b95506116a0565b600e546008546006548354600093620186a093909290916116529190600160681b90046001600160401b03166130ac565b61165c91906130ac565b611666919061317b565b611670919061317b565b82549091506001600160681b0316811115611692575080546001600160681b03165b61169c8187612ef0565b9550505b505080806116ad90613092565b915050611559565b50600f8590556010849055600b80548491906000906116d5908490612ef0565b9250508190555081600c60008282546116ee9190612ef0565b909155505060128190556003548114801561170b57506000600f54115b156117645760008061171b611a44565b60098290556014805460ff19168215151790556040519193509150611746904290449060200161333e565b60408051601f19818403018152919052805160209091012060135550505b505050505050565b600460205260009081526040902080546113c190612fa3565b6117958787878787873388611f80565b50505050505050565b6000546001600160a01b031633146117c85760405162461bcd60e51b815260040161090690612e6f565b620186a08111156117d857600080fd5b601254156117e557600080fd5b600855565b6117fa8888888888888888611f80565b5050505050505050565b6000546001600160a01b0316331461182e5760405162461bcd60e51b815260040161090690612e6f565b6001600160a01b0381166118545760405162461bcd60e51b8152600401610906906133a7565b61185d81611f30565b50565b6118b68363a9059cbb60e01b848460405160240161187f9291906133b7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612256565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836040516118f4906133d2565b60006040518083038185875af1925050503d8060008114611931576040519150601f19603f3d011682016040523d82523d6000602084013e611936565b606091505b5050905081156118b657806118b65760405162461bcd60e51b815260040161090690613406565b600754421161197e5760405162461bcd60e51b81526004016109069061343f565b7f0000000000000000000000000000000000000000000000000000000000000000600a5410156119c05760405162461bcd60e51b815260040161090690613483565b7f0000000000000000000000000000000000000000000000000000000000000000600e541015611a025760405162461bcd60e51b8152600401610906906134be565b6003547f000000000000000000000000000000000000000000000000000000000000000011156113b25760405162461bcd60e51b815260040161090690613502565b6000807f0000000000000000000000000000000000000000000000000000000000000000600003611a79575060009160019150565b6000600e54600f54620186a0600854600654611a9591906130ac565b611a9f919061317b565b611aa991906130ac565b611ab3919061317b565b9050600081600b54118015611ae65750620186a0600854600654611ad791906130ac565b611ae1919061317b565b600a54115b15611b7f57600082600b54611afb9190612ed9565b90506000620186a0600854600654611b1391906130ac565b611b1d919061317b565b600a54611b2a9190612ed9565b905080821115611b38578091505b8082620186a0600854620186a0611b4f9190612ed9565b600654611b5c91906130ac565b611b66919061317b565b611b7091906130ac565b611b7a919061317b565b925050505b7f0000000000000000000000000000000000000000000000000000000000000000611baa8284612ef0565b611bb49190612ef0565b6006541115611c04577f0000000000000000000000000000000000000000000000000000000000000000611be88284612ef0565b611bf2919061317b565b611bfd906001612ef0565b9350611c35565b7f0000000000000000000000000000000000000000000000000000000000000000600654611c32919061317b565b93505b611c5f7f0000000000000000000000000000000000000000000000000000000000000000856130ac565b600654611c6c9190612ed9565b600b54600a54611c7c9190612ed9565b1015611ccd577f0000000000000000000000000000000000000000000000000000000000000000600a54600b54600654611cb69190612ef0565b611cc09190612ed9565b611cca919061317b565b93505b7f0000000000000000000000000000000000000000000000000000000000000000600b54611cfb919061317b565b841115611d33577f0000000000000000000000000000000000000000000000000000000000000000600b54611d30919061317b565b93505b600b546002611d627f0000000000000000000000000000000000000000000000000000000000000000876130ac565b611d6d9060036130ac565b611d77919061317b565b11611d855760019250611dce565b600092507f0000000000000000000000000000000000000000000000000000000000000000611db481866130ac565b600b54611dc19190612ed9565b611dcb919061317b565b93505b50509091565b600080600e5483600001600d9054906101000a90046001600160401b03166001600160401b0316620186a0600854600654611e0f91906130ac565b611e19919061317b565b611e2391906130ac565b611e2d919061317b565b83549091506000906001600160681b031682108015611e6a5750620186a0600854600654611e5b91906130ac565b611e65919061317b565b600a54115b15611f0c578354600090611e889084906001600160681b0316612ed9565b90506000620186a0600854600654611ea091906130ac565b611eaa919061317b565b600a54611eb79190612ed9565b905080821115611ec5578091505b8082620186a0600854620186a0611edc9190612ed9565b600654611ee991906130ac565b611ef3919061317b565b611efd91906130ac565b611f07919061317b565b925050505b66038d7ea4c68000611f1e8284612ef0565b611f28919061317b565b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600260015403611fa25760405162461bcd60e51b815260040161090690612eb3565b600260018190556001600160a01b0383166000908152602091909152604090206007544210611fe35760405162461bcd60e51b81526004016109069061353c565b838015612010575060007f0000000000000000000000000000000000000000000000000000000000000000115b156120d95780546000907f0000000000000000000000000000000000000000000000000000000000000000906120509089906001600160681b031661354c565b6001600160681b0316612063919061317b565b90506000811180156120bb575081546120869088906001600160681b031661354c565b6001600160681b03166120b97f0000000000000000000000000000000000000000000000000000000000000000836130ac565b145b6120d75760405162461bcd60e51b8152600401610906906135cf565b505b80546000906120f29088906001600160681b031661354c565b6001600160681b0316116121185760405162461bcd60e51b81526004016109069061360b565b80546001600160681b03166000036121b9577f000000000000000000000000000000000000000000000000000000000000000034146121695760405162461bcd60e51b815260040161090690613644565b600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0385161790556121c4565b34156121c457600080fd5b601580549060006121d483613092565b91905055506121ef838a8a8a6001600160401b0316896122e5565b6121fc83888888886123b2565b80546040517fd3740a364db55c2f6b68c7f6d359ebf3e932f52b16b57d83c054bfc81a09ef229161223f9186916005918c916001600160681b0316908890613654565b60405180910390a150506001805550505050505050565b60006122ab826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125449092919063ffffffff16565b8051909150156118b657808060200190518101906122c991906136a8565b6118b65760405162461bcd60e51b815260040161090690613710565b600060058684846040516020016122ff94939291906137b3565b6040516020818303038152906040528051906020012090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661238c86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612386925086915061255d9050565b9061258d565b6001600160a01b0316146117645760405162461bcd60e51b81526004016109069061382b565b6001600160a01b0385166000908152600260205260409020805483906123e29086906001600160681b031661354c565b6001600160681b031611156124095760405162461bcd60e51b81526004016109069061386f565b8054600e8054600160681b9092046001600160401b03169160009061242f908490612ed9565b9091555050805467ffffffffffffffff60681b1916600160681b6001600160401b038716908102919091178255600e805460009061246e908490612ef0565b90915550506001600160681b038416156125225780548490829060009061249f9084906001600160681b031661354c565b92506101000a8154816001600160681b0302191690836001600160681b03160217905550836001600160681b0316600a60008282546124de9190612ef0565b9091555061252290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633306001600160681b0388166125b3565b8054911515600160f81b026001600160f81b0390921691909117905550505050565b606061255384846000856125da565b90505b9392505050565b600081604051602001612570919061387f565b604051602081830303815290604052805190602001209050919050565b600080600061259c8585612693565b915091506125a981612701565b5090505b92915050565b6125d4846323b872dd60e01b85858560405160240161187f939291906138b1565b50505050565b6060824710156125fc5760405162461bcd60e51b81526004016109069061391c565b843b61261a5760405162461bcd60e51b815260040161090690613960565b600080866001600160a01b031685876040516126369190613992565b60006040518083038185875af1925050503d8060008114612673576040519150601f19603f3d011682016040523d82523d6000602084013e612678565b606091505b50915091506126888282866127e1565b979650505050505050565b60008082516041036126c95760208301516040840151606085015160001a6126bd8782858561281a565b945094505050506126fa565b82516040036126f257602083015160408401516126e78683836128fa565b9350935050506126fa565b506000905060025b9250929050565b60008160048111156127155761271561399e565b0361271d5750565b60018160048111156127315761273161399e565b0361274e5760405162461bcd60e51b8152600401610906906139e8565b60028160048111156127625761276261399e565b0361277f5760405162461bcd60e51b815260040161090690613a2c565b60038160048111156127935761279361399e565b036127b05760405162461bcd60e51b815260040161090690613a7b565b60048160048111156127c4576127c461399e565b0361185d5760405162461bcd60e51b815260040161090690613aca565b606083156127f0575081612556565b8251156128005782518084602001fd5b8160405162461bcd60e51b81526004016109069190612aa5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561285157506000905060036128f1565b8460ff16601b1415801561286957508460ff16601c14155b1561287a57506000905060046128f1565b60006001878787876040516000815260200160405260405161289f9493929190613ae3565b6020604051602081039080840390855afa1580156128c1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166128ea576000600192509250506128f1565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161291b8782888561281a565b935093505050935093915050565b805b82525050565b602081016125ad8284612929565b805b811461185d57600080fd5b80356125ad8161293f565b60006020828403121561296c5761296c600080fd5b6000611f28848461294c565b60006001600160a01b0382166125ad565b61292b81612978565b602081016125ad8284612989565b60008083601f8401126129b5576129b5600080fd5b5081356001600160401b038111156129cf576129cf600080fd5b6020830191508360208202830111156126fa576126fa600080fd5b60008060208385031215612a0057612a00600080fd5b82356001600160401b03811115612a1957612a19600080fd5b612a25858286016129a0565b92509250509250929050565b80151561292b565b602081016125ad8284612a31565b60005b83811015612a62578181015183820152602001612a4a565b838111156125d45750506000910152565b6000612a7d825190565b808452602084019350612a94818560208601612a47565b601f01601f19169290920192915050565b602080825281016125568184612a73565b60006125ad6001600160a01b038316612acd565b90565b6001600160a01b031690565b60006125ad82612ab6565b60006125ad82612ad9565b61292b81612ae4565b6101408101612b07828d612aef565b612b14602083018c612929565b612b21604083018b612929565b612b2e606083018a612929565b612b3b6080830189612929565b612b4860a0830188612929565b612b5560c0830187612929565b612b6260e0830186612929565b612b70610100830185612929565b612b7e610120830184612929565b9b9a5050505050505050505050565b61294181612978565b80356125ad81612b8d565b600060208284031215612bb657612bb6600080fd5b6000611f288484612b96565b60008083601f840112612bd757612bd7600080fd5b5081356001600160401b03811115612bf157612bf1600080fd5b6020830191508360018202830111156126fa576126fa600080fd5b6001600160401b038116612941565b80356125ad81612c0c565b6001600160681b038116612941565b80356125ad81612c26565b801515612941565b80356125ad81612c40565b600080600080600080600060c0888a031215612c7157612c71600080fd5b87356001600160401b03811115612c8a57612c8a600080fd5b612c968a828b01612bc2565b97509750506020612ca98a828b01612c1b565b9550506040612cba8a828b01612c35565b9450506060612ccb8a828b0161294c565b9350506080612cdc8a828b01612c48565b92505060a0612ced8a828b01612b96565b91505092959891949750929550565b6001600160681b03811661292b565b6001600160401b03811661292b565b61ffff811661292b565b60a08101612d328288612cfc565b612d3f6020830187612d0b565b612d4c6040830186612d0b565b612d596060830185612d1a565b612d666080830184612a31565b9695505050505050565b602081016125ad8284612aef565b60008060008060008060008060e0898b031215612d9d57612d9d600080fd5b88356001600160401b03811115612db657612db6600080fd5b612dc28b828c01612bc2565b98509850506020612dd58b828c01612c1b565b9650506040612de68b828c01612c35565b9550506060612df78b828c0161294c565b9450506080612e088b828c01612c48565b93505060a0612e198b828c01612b96565b92505060c0612e2a8b828c01612b96565b9150509295985092959890939650565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260005b5060200190565b602080825281016125ad81612e3a565b601f81526000602082017f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081529150612e68565b602080825281016125ad81612e7f565b634e487b7160e01b600052601160045260246000fd5b600082821015612eeb57612eeb612ec3565b500390565b60008219821115612f0357612f03612ec3565b500190565b6013815260006020820172185b1b081d5cd95c9cc81c1c9bd8d95cdcd959606a1b81529150612e68565b602080825281016125ad81612f08565b600e81526000602082016d6e6f7420726566756e6461626c6560901b81529150612e68565b602080825281016125ad81612f42565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602260045260246000fd5b600281046001821680612fb757607f821691505b602082108103612fc957612fc9612f8d565b50919050565b60008154612fdc81612fa3565b808552602085019450600182168015612ffc576001811461300e5761303c565b60ff198316865260208601935061303c565b60008581526020902060005b838110156130365781548882015260019091019060200161301a565b87019450505b50505092915050565b60006125ad612aca6001600160681b03841681565b61292b81613045565b606081016130718286612989565b81810360208301526130838185612fcf565b9050611f28604083018461305a565b600060001982036130a5576130a5612ec3565b5060010190565b60008160001904831182151516156130c6576130c6612ec3565b500290565b602681526000602082017f66696e616c20636f6e747269627574696f6e20616d6f756e747320617265206e8152651bdd081cd95d60d21b602082015291505b5060400190565b602080825281016125ad816130cb565b601b81526000602082017f6c6f747465727920726573756c747320617265206e6f7420736574000000000081529150612e68565b602080825281016125ad81613121565b634e487b7160e01b600052601260045260246000fd5b60008261318a5761318a613165565b500490565b60006125ad612aca6001600160401b03841681565b61292b8161318f565b60a081016131bb8288612989565b81810360208301526131cd8187612fcf565b90506131dc6040830186612929565b6131e96060830185612929565b612d6660808301846131a4565b600e81526000602082016d1b9bdd081bdd995c999d5b99195960921b81529150612e68565b602080825281016125ad816131f6565b601a81526000602082017f616c6c207469636b65747320776572652070726f63657373656400000000000081529150612e68565b602080825281016125ad8161322b565b61ffff8116612941565b80356125ad8161326f565b60006020828403121561329957613299600080fd5b6000611f288484613279565b8061292b565b60006132b782846132a5565b50602001919050565b6000826132cf576132cf613165565b500690565b60148152600060208201731a5b99195e081a5cc81b9bdd0818dbdc9c9958dd60621b81529150612e68565b602080825281016125ad816132d4565b61ffff16600061fffe1982016130a5576130a5612ec3565b60008161333657613336612ec3565b506000190190565b600061334a82856132a5565b60208201915061335a82846132a5565b5060200192915050565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b6020820152915061310a565b602080825281016125ad81613364565b604081016133c58285612989565b6125566020830184612929565b60006125ad82612aca565b60128152600060208201710ccc2d2d8cac840e8de40e6cadcc840cae8d60731b81529150612e68565b602080825281016125ad816133dd565b60128152600060208201713932b3b4b9ba3930ba34b7b7399037b832b760711b81529150612e68565b602080825281016125ad81613416565b601e81526000602082017f6e6f7420656e6f75676820636f6e747269627574696f6e20616d6f756e74000081529150612e68565b602080825281016125ad8161344f565b60148152600060208201733737ba1032b737bab3b4103230b7903837bbb2b960611b81529150612e68565b602080825281016125ad81613493565b601881526000602082017f6e6f7420656e6f75676820726567697374726174696f6e73000000000000000081529150612e68565b602080825281016125ad816134ce565b60138152600060208201721c9959da5cdd1c985d1a5bdb8818db1bdcd959606a1b81529150612e68565b602080825281016125ad81613512565b60006001600160681b03821691506001600160681b0383169250826001600160681b0303821115612f0357612f03612ec3565b603381526000602082017f636f6e747269627574696f6e20616d6f756e74206d757374206265206d756c7481527269706c65206f66207469636b65742073697a6560681b6020820152915061310a565b602080825281016125ad8161357f565b60158152600060208201740c0818dbdb9d1c9a589d5d1a5bdb88185b5bdd5b9d605a1b81529150612e68565b602080825281016125ad816135df565b60128152600060208201716e6f7420656e6f756768206761732066656560701b81529150612e68565b602080825281016125ad8161361b565b60a081016136628288612989565b81810360208301526136748187612fcf565b90506136836040830186612d0b565b613690606083018561305a565b612d666080830184612989565b80516125ad81612c40565b6000602082840312156136bd576136bd600080fd5b6000611f28848461369d565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b6020820152915061310a565b602080825281016125ad816136c9565b6000815461372d81612fa3565b60018216801561374457600181146137555761303c565b60ff1983168652818601935061303c565b60008581526020902060005b8381101561377d57815488820152600190910190602001613761565b505050939093019392505050565b60006125ad8260601b90565b60006125ad8261378b565b61292b6137ae82612978565b613797565b60006137bf8287613720565b91506137cb82866137a2565b6014820191506137db82856132a5565b6020820191506137eb82846132a5565b50602001949350505050565b601d81526000602082017f7369676e617475726520766572696669636174696f6e206661696c656400000081529150612e68565b602080825281016125ad816137f7565b601c81526000602082017f636f6e747269627574696f6e20616d6f756e7420746f6f20686967680000000081529150612e68565b602080825281016125ad8161383b565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0160006132b782846132a5565b606081016138bf8286612989565b6138cc6020830185612989565b611f286040830184612929565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b6020820152915061310a565b602080825281016125ad816138d9565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529150612e68565b602080825281016125ad8161392c565b600061397a825190565b613988818560208601612a47565b9290920192915050565b60006125568284613970565b634e487b7160e01b600052602160045260246000fd5b601881526000602082017f45434453413a20696e76616c6964207369676e6174757265000000000000000081529150612e68565b602080825281016125ad816139b4565b601f81526000602082017f45434453413a20696e76616c6964207369676e6174757265206c656e6774680081529150612e68565b602080825281016125ad816139f8565b602281526000602082017f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b6020820152915061310a565b602080825281016125ad81613a3c565b602281526000602082017f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b6020820152915061310a565b602080825281016125ad81613a8b565b60ff811661292b565b60808101613af18287612929565b613afe6020830186613ada565b613b0b6040830185612929565b613b186060830184612929565b9594505050505056fea264697066735822122040c0c3d0ef91627d090160872e44e49996ade3a666af6c6091b9588058d1591164736f6c634300080e003300000000000000000000000000000000000000000000000000000000000001600000000000000000000000004d2d32d8652058bf98c772953e1df5c5c85d9f450000000000000000000000000281286b92faecc04e38a70fde45ba9d0575fa5e000000000000000000000000ac1f2e30138c41d9f1b4bd0990f629eda98209430000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000160ee25183114476800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068c540a0000000000000000000000000000000000000000000000000000110d9316ec000000000000000000000000000000000000000000000000000000000000000000a477055724271686d6b3600000000000000000000000000000000000000000000