0 txs
601 calls
constructor
constructor(address _main)
functions
BUYERS
viewfunction BUYERS(uint256 projectId, address buyer) view returns (uint256 bDepo, uint256 tAlloc, bool claimed, bool refunded)
CfProjects
viewfunction CfProjects() view returns (uint256)
Cfs
viewfunction Cfs(uint256) view returns (address tAdr, tuple u1, tuple b1, tuple pAlloc, string tokenName, address cfOwner)
equal
purefunction equal(string a, string b) pure returns (bool)
getBuyerCf
viewfunction getBuyerCf(uint256 _cf) view returns (address[])
getBuyLimit
viewfunction getBuyLimit(uint256 _cf, address _buyer) view returns (uint256 limit)
getCfByParticipant
viewfunction getCfByParticipant() view returns (uint256[] cfId, string[] cfName, uint256[] endDate, uint256[] bDepo, uint256[] status)
getMain
viewfunction getMain() view returns (address)
getProjectOwnedByAddress
viewfunction getProjectOwnedByAddress() view returns (uint256[])
getStatusCf
viewfunction getStatusCf(uint256 _cf) view returns (uint256)
isFFAActive
viewfunction isFFAActive(uint256 projectId) view returns (bool isFFA)
isProjectOwner
viewfunction isProjectOwner(address _user, uint256 _cf) view returns (bool)
main
viewfunction main() view returns (address)
owner
viewfunction owner() view returns (address)
addCf
nonpayablefunction addCf(string tokenName, address tAdr, address cfOwner, uint256 sc, uint256 hc, uint256 wlDuration, uint256 sTime, uint256 eTime, tuple pAlloc) returns (uint256 projectId)
buyCf
nonpayablefunction buyCf(uint256 _cf, address _buyer, uint256 _amount)
cancel
nonpayablefunction cancel(uint256 _cf)
finalize
nonpayablefunction finalize(uint256 _cf)
refundCf
nonpayablefunction refundCf(uint256 _cf, address _buyer)
renounceOwnership
nonpayablefunction renounceOwnership()
setFFA
nonpayablefunction setFFA(uint256 _cf, bool isActive)
setMain
nonpayablefunction setMain(address _main)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(address _beneficiary)
withdrawToken
nonpayablefunction withdrawToken(address _beneficiary, address _token)
events
CfAdded
event CfAdded(uint256 projectId)
CfBought
event CfBought(uint256 projectId, address buyer, uint256 amount)
CfCancelled
event CfCancelled(uint256 projectId, bool status)
CfClaimed
event CfClaimed(uint256 projectId, address buyer, uint256 amount)
CfFinalized
event CfFinalized(uint256 projectId, bool status)
CfRefunded
event CfRefunded(uint256 projectId, address buyer, uint256 amount)
MainSet
event MainSet(address _main)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
FailedToWithdrawEth
error FailedToWithdrawEth(address owner, address target, uint256 value)
NothingToWithdraw
error NothingToWithdraw()
creation bytecode
0x60806040523480156200001157600080fd5b506040516200348738038062003487833981016040819052620000349162000110565b6200003f33620000c0565b6001600160a01b0381166200009a5760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d61696e2061646472657373000000000000000000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b039290921691909117905562000142565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200012357600080fd5b81516001600160a01b03811681146200013b57600080fd5b9392505050565b61333580620001526000396000f3fe60806040526004361061012a5760003560e01c806305261aea1461013657806307ed452c1461015857806325e65b9b1461018357806330a61e25146101b157806339ff2b34146101d15780633aeac4e11461020357806340e58ee514610223578063459a3bb91461024357806346bdca9a146102595780634dec95fc1461028957806351cff8d9146102b0578063535d9e9f146102d05780636b129b1b146102f6578063715018a614610316578063801161b01461032b57806382fd98181461034b5780638da5cb5b146103c65780639d29f699146103db578063b8735d4b14610408578063c1ff9f9214610428578063d3abefd014610448578063d857ed7914610486578063dffeadd0146104a6578063eee3325c146104c6578063f2fde38b146104f657600080fd5b3661013157005b600080fd5b34801561014257600080fd5b5061015661015136600461293c565b610516565b005b34801561016457600080fd5b5061016d61068e565b60405161017a9190612990565b60405180910390f35b34801561018f57600080fd5b506101a361019e36600461293c565b61079f565b60405190815260200161017a565b3480156101bd57600080fd5b506101566101cc3660046129b1565b61092a565b3480156101dd57600080fd5b506101f16101ec36600461293c565b610a8f565b60405161017a96959493929190612a31565b34801561020f57600080fd5b5061015661021e366004612af4565b610bdc565b34801561022f57600080fd5b5061015661023e36600461293c565b610c90565b34801561024f57600080fd5b506101a360065481565b34801561026557600080fd5b50610279610274366004612c2f565b610d3d565b604051901515815260200161017a565b34801561029557600080fd5b506001546001600160a01b03165b60405161017a9190612c92565b3480156102bc57600080fd5b506101566102cb366004612ca6565b610d97565b3480156102dc57600080fd5b506102e5610e3c565b60405161017a959493929190612cc3565b34801561030257600080fd5b506101a3610311366004612d72565b611229565b34801561032257600080fd5b5061015661151e565b34801561033757600080fd5b50610156610346366004612ca6565b611532565b34801561035757600080fd5b5061039e610366366004612e43565b600360209081526000928352604080842090915290825290208054600182015460029092015490919060ff8082169161010090041684565b604080519485526020850193909352901515918301919091521515606082015260800161017a565b3480156103d257600080fd5b506102a36115d2565b3480156103e757600080fd5b506103fb6103f636600461293c565b6115e1565b60405161017a9190612e68565b34801561041457600080fd5b506101a3610423366004612e43565b61169d565b34801561043457600080fd5b50610156610443366004612e43565b611b36565b34801561045457600080fd5b50610279610463366004612eb5565b6000908152600260205260409020600c01546001600160a01b0391821691161490565b34801561049257600080fd5b506101566104a1366004612ee1565b611e9d565b3480156104b257600080fd5b506001546102a3906001600160a01b031681565b3480156104d257600080fd5b506102796104e136600461293c565b60056020526000908152604090205460ff1681565b34801561050257600080fd5b50610156610511366004612ca6565b6122fc565b6001546001600160a01b031633146105495760405162461bcd60e51b815260040161054090612f19565b60405180910390fd5b600081815260026020526040902060036105628361079f565b1061057f5760405162461bcd60e51b815260040161054090612f3e565b6007810154610100900460ff16156105cd5760405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e48199a5b985b1a5e9959607a1b6044820152606401610540565b60018101546006820154101561061c5760405162461bcd60e51b815260206004820152601460248201527314dbd99d0818d85c081b9bdd081c995858da195960621b6044820152606401610540565b60078101805461ff001916610100179055600c81015460068201548254610651926001600160a01b0391821692911690612375565b60408051838152600160208201527f39d24518b211ff905dd384e1cc34294290007018064db88fa8e9d539b852f403910160405180910390a15050565b60606000805b6006548110156106e1576000818152600260205260409020600c0154336001600160a01b03909116036106cf57816106cb81612f87565b9250505b806106d981612f87565b915050610694565b50600080826001600160401b038111156106fd576106fd612b22565b604051908082528060200260200182016040528015610726578160200160208202803683370190505b50905060005b600654811015610797576000818152600260205260409020600c0154336001600160a01b0390911603610785578082848151811061076c5761076c612fa0565b60209081029190910101528261078181612f87565b9350505b8061078f81612f87565b91505061072c565b509392505050565b600081815260026020818152604080842081518083018352600782015460ff80821615158352610100909104161515818501908152878752858552835160c08101855260018401548152958301549486019490945260038201549285019290925260048101546060850152600581015460808501526006015460a0840152905190919015610831575060049392505050565b60008481526005602052604090205460ff161515600114801561086457506000848152600260205260409020600a015415155b15610873575060019392505050565b81518061089f575042816080015110801561089f57506000848152600260205260409020600601548151115b156108ae575060039392505050565b6000848152600260209081526040909120600601549082015114806108d65750428160800151105b156108e5575060029392505050565b4281606001511080156108fb5750428160800151115b1561090a575060019392505050565b4281606001511115610920575060009392505050565b5060ff9392505050565b6001546001600160a01b031633146109545760405162461bcd60e51b815260040161054090612f19565b600361095f8361079f565b1061097c5760405162461bcd60e51b815260040161054090612f3e565b6000828152600260205260409020811515600103610a6e57600a81015460098201546008830154600092916109b091612fb6565b6109ba9190612fb6565b90504282600101600401541080156109d25750600081115b610a355760405162461bcd60e51b815260206004820152602e60248201527f4e6f20636170206c656674206f7220686173206e6f742070617373656420696e60448201526d697469616c20656e642074696d6560901b6064820152608401610540565b60098201546008830154600a840154610a599291610a5391906123d8565b906123d8565b600a8301555060006008820181905560098201555b50600091825260056020526040909120805460ff1916911515919091179055565b6002602081815260009283526040928390208054845160c081018652600183015481529382015484840152600382015484860152600482015460608086019190915260058301546080860152600683015460a086015285518087018752600784015460ff80821615158352610100909104161515818601528651918201875260088401548252600984015494820194909452600a83015495810195909552600b820180546001600160a01b03909216959291610b4a90612fc9565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7690612fc9565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b505050600c90930154919250506001600160a01b031686565b610be46123eb565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610c13903090600401612c92565b602060405180830381865afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c549190613003565b905080600003610c7757604051630686827b60e51b815260040160405180910390fd5b610c8b6001600160a01b0383168483612375565b505050565b6001546001600160a01b03163314610cba5760405162461bcd60e51b815260040161054090612f19565b6003610cc58261079f565b10610ce25760405162461bcd60e51b815260040161054090612f3e565b600081815260026020908152604091829020600701805460ff191660019081179091558251848152918201527f36885125df1517a32064278e184f4614f490e90ae354562a0852d60a65b3fca291015b60405180910390a150565b600081604051602001610d50919061301c565b6040516020818303038152906040528051906020012083604051602001610d77919061301c565b604051602081830303815290604052805190602001201490505b92915050565b610d9f6123eb565b476000819003610dc257604051630686827b60e51b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e0f576040519150601f19603f3d011682016040523d82523d6000602084013e610e14565b606091505b5050905080610c8b57338383604051639d11f56360e01b815260040161054093929190613038565b60608060608060606006546001600160401b03811115610e5e57610e5e612b22565b604051908082528060200260200182016040528015610e87578160200160208202803683370190505b5094506006546001600160401b03811115610ea457610ea4612b22565b604051908082528060200260200182016040528015610ed757816020015b6060815260200190600190039081610ec25790505b5093506006546001600160401b03811115610ef457610ef4612b22565b604051908082528060200260200182016040528015610f1d578160200160208202803683370190505b5092506006546001600160401b03811115610f3a57610f3a612b22565b604051908082528060200260200182016040528015610f63578160200160208202803683370190505b5091506006546001600160401b03811115610f8057610f80612b22565b604051908082528060200260200182016040528015610fa9578160200160208202803683370190505b5090506000805b600654811015611220576000818152600360209081526040808320338452909152902054801561120d576000828152600260208181526040808420815160c0808201845282546001600160a01b031682528351908101845260018301548152948201548585015260038201548584015260048201546060808701919091526005830154608080880191909152600684015460a08801528286019690965283518085018552600784015460ff8082161515835261010090910416151581870152828501528351808201855260088401548152600984015495810195909552600a8301549385019390935291820192909252600b8201805491938401916110b490612fc9565b80601f01602080910402602001604051908101604052809291908181526020018280546110e090612fc9565b801561112d5780601f106111025761010080835404028352916020019161112d565b820191906000526020600020905b81548152906001019060200180831161111057829003601f168201915b5050509183525050600c91909101546001600160a01b0316602090910152895190915083908a908690811061116457611164612fa0565b602002602001018181525050806080015188858151811061118757611187612fa0565b60200260200101819052508060200151608001518785815181106111ad576111ad612fa0565b602002602001018181525050818685815181106111cc576111cc612fa0565b6020026020010181815250506111e18361079f565b8585815181106111f3576111f3612fa0565b60209081029190910101528361120881612f87565b945050505b508061121881612f87565b915050610fb0565b50509091929394565b6001546000906001600160a01b031633146112565760405162461bcd60e51b815260040161054090612f19565b6001600160a01b03891661129e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610540565b6001600160a01b0388166112ee5760405162461bcd60e51b8152602060048201526017602482015276496e76616c69642063664f776e6572206164647265737360481b6044820152606401610540565b6040805160c08101825288815260208082018990528183018890526060820187905260808201869052600060a08301819052835180850190945280845290830152906113398261244a565b6040518060c001604052808c6001600160a01b031681526020018381526020018281526020018581526020018d81526020018b6001600160a01b031681525060026000600654815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550602082015181600101600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050155505060408201518160070160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555050506060820151816008016000820151816000015560208201518160010155604082015181600201555050608082015181600b01908161148a91906130aa565b5060a09190910151600c90910180546001600160a01b0319166001600160a01b039092169190911790556006546040519081527fa19f7434261a8fe9efcb08194d581f4377bfb8c930416547c18d3c2cd5a38e629060200160405180910390a1600680549060006114fa83612f87565b9190505550600160065461150e9190613169565b9c9b505050505050505050505050565b6115266123eb565b61153060006125b0565b565b61153a6123eb565b6001600160a01b0381166115875760405162461bcd60e51b8152602060048201526014602482015273496e76616c6964206d61696e206164647265737360601b6044820152606401610540565b600180546001600160a01b0319166001600160a01b0383161790556040517fce2a95399de015bbfc63256cba86786b0b37a1f4637af4076398ec7219bbbef690610d32908390612c92565b6000546001600160a01b031690565b60008181526004602052604081206060916115fb82612600565b90506000816001600160401b0381111561161757611617612b22565b604051908082528060200260200182016040528015611640578160200160208202803683370190505b50905060005b8281101561169457611658848261260a565b82828151811061166a5761166a612fa0565b6001600160a01b03909216602092830291909101909101528061168c81612f87565b915050611646565b50949350505050565b6000828152600260208181526040808420815160c0808201845282546001600160a01b031682528351908101845260018301548152948201548585015260038201548584015260048201546060808701919091526005830154608080880191909152600684015460a08801528286019690965283518085018552600784015460ff8082161515835261010090910416151581870152828501528351808201855260088401548152600984015495810195909552600a8301549385019390935291820192909252600b8201805485949293928401919061177b90612fc9565b80601f01602080910402602001604051908101604052809291908181526020018280546117a790612fc9565b80156117f45780601f106117c9576101008083540402835291602001916117f4565b820191906000526020600020905b8154815290600101906020018083116117d757829003601f168201915b5050509183525050600c91909101546001600160a01b0390811660209283015290820151606083015160015460405163b594b0c760e01b815294955091939092600092169063b594b0c79061184d908990600401612c92565b600060405180830381865afa15801561186a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611892919081019061317c565b805160008981526003602090815260408083206001600160a01b038c1684529091528120546080840151939450919290916118cd9190612616565b90506118d88961079f565b6001146119155760405162461bcd60e51b815260206004820152600b60248201526a24b730b1ba34bb329021b360a91b6044820152606401610540565b61193e82604051806040016040528060078152602001664e6f2052616e6b60c81b815250610d3d565b156119805760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e74207374616b6560701b6044820152606401610540565b60008981526005602052604090205460ff1615156001036119ac57505050604001519250610d91915050565b846040015185606001516119c09190612fb6565b421015611b0f5760006119f083604051806040016040528060058152602001645768616c6560d81b815250610d3d565b600154604051634e15266760e11b81529192506000916001600160a01b0390911690639c2a4cce90611a26908d90600401612c92565b602060405180830381865afa158015611a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a679190613257565b905080158015611a75575081155b15611a8b57600098505050505050505050610d91565b808015611a955750815b15611ad157855160208701518491611aad91906123d8565b1015611ac85785516020870151611ac3916123d8565b611aca565b825b9850611b08565b8015611ae7578551831115611ac8578551611aca565b8115611b08578286602001511015611b03578560200151611b05565b825b98505b5050611b2a565b8084604001511015611b25578360400151611b27565b805b96505b50505050505092915050565b6001546001600160a01b03163314611b605760405162461bcd60e51b815260040161054090612f19565b6001600160a01b038116611b865760405162461bcd60e51b815260040161054090613274565b6000828152600260208181526040808420815160c0808201845282546001600160a01b031682528351908101845260018301548152948201548585015260038201548584015260048201546060808701919091526005830154608080880191909152600684015460a08801528286019690965283518085018552600784015460ff8082161515835261010090910416151581870152828501528351808201855260088401548152600984015495810195909552600a8301549385019390935291820192909252600b820180549193840191611c6090612fc9565b80601f0160208091040260200160405190810160405280929190818152602001828054611c8c90612fc9565b8015611cd95780601f10611cae57610100808354040283529160200191611cd9565b820191906000526020600020905b815481529060010190602001808311611cbc57829003601f168201915b5050509183525050600c91909101546001600160a01b03166020909101529050611d028361079f565b600314611d475760405162461bcd60e51b815260206004820152601360248201527210d9881a5cc81b9bdd0818d85b98d95b1b1959606a1b6044820152606401610540565b60008381526003602090815260408083206001600160a01b0386168452909152902060020154610100900460ff1615611db55760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481c99599d5b99195960821b6044820152606401610540565b60008381526003602090815260408083206001600160a01b038616845290915290205480611e135760405162461bcd60e51b815260206004820152600b60248201526a4e6f20707572636861736560a81b6044820152606401610540565b8151611e29906001600160a01b03168483612375565b60008481526003602090815260408083206001600160a01b038716845290915290819020600201805461ff001916610100179055517fb2c38100e10e676dc04644b522ab73f039bcb5b0104b25f59e27f68e9918649f90611e8f908690869085906132a3565b60405180910390a150505050565b6001546001600160a01b03163314611ec75760405162461bcd60e51b815260040161054090612f19565b6001600160a01b038216611eed5760405162461bcd60e51b815260040161054090613274565b600083815260026020526040808220600154915163b594b0c760e01b81529092916001600160a01b03169063b594b0c790611f2c908790600401612c92565b600060405180830381865afa158015611f49573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f71919081019061317c565b60038301546004840154919250611f8791612fb6565b4210611fc95760098201546008830154611fa19190612fb6565b600a83018054600090611fb5908490612fb6565b909155505060006008830181905560098301555b6000611fd5868661169d565b9050838110156120235760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b232b210313abcb2b91030b63637b1b0ba34b7b760391b6044820152606401610540565b606082015160008781526003602090815260408083206001600160a01b038a1684529091529020546120559086612fb6565b10156120a05760405162461bcd60e51b815260206004820152601a602482015279135a5b9a5b5d5b48185b1b1bd8d85d1a5bdb881b9bdd081b595d60321b6044820152606401610540565b600383015460048401546120b49190612fb6565b4210156122195760006120e88360000151604051806040016040528060058152602001645768616c6560d81b815250610d3d565b600154604051634e15266760e11b81529192506000916001600160a01b0390911690639c2a4cce9061211e908a90600401612c92565b602060405180830381865afa15801561213b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215f9190613257565b905080801561216b5750815b156121d25760088501548611156121b057600885015461218b9087613169565b60098601805460009061219f908490613169565b909155505060006008860155612212565b858560080160000160008282546121c79190613169565b909155506122129050565b80156121ef57858560080160000160008282546121c79190613169565b8115612212578585600801600101600082825461220c9190613169565b90915550505b5050612236565b838360080160020160008282546122309190613169565b90915550505b60008681526003602090815260408083206001600160a01b038916845290915281208054869290612268908490612fb6565b9091555050600683018054859190600090612284908490612fb6565b909155505060008681526004602052604090206122a19086612622565b5082546122b9906001600160a01b0316863087612637565b7fc896b6b300eaa712f1fd70c7b5f5c8eb104474c1dbae418c2c120030ddc4d84f8686866040516122ec939291906132a3565b60405180910390a1505050505050565b6123046123eb565b6001600160a01b0381166123695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610540565b612372816125b0565b50565b6040516001600160a01b038316602482015260448101829052610c8b90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261265e565b60006123e48284612fb6565b9392505050565b336123f46115d2565b6001600160a01b0316146115305760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610540565b80516124875760405162461bcd60e51b815260206004820152600c60248201526b125b9d985b1a590814dbd99d60a21b6044820152606401610540565b60008160200151116124ce5760405162461bcd60e51b815260206004820152601060248201526f0496e76616c69642048617264204361760841b6044820152606401610540565b602081015181511061251e5760405162461bcd60e51b81526020600482015260196024820152780496e76616c696420536f667420616e6420486172642043617603c1b6044820152606401610540565b428160600151116125665760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642073746172742074696d6560701b6044820152606401610540565b428160800151116125895760405162461bcd60e51b8152600401610540906132c2565b80606001518160800151116123725760405162461bcd60e51b8152600401610540906132c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610d91825490565b60006123e48383612733565b60006123e48284613169565b60006123e4836001600160a01b03841661275d565b612658846323b872dd60e01b8585856040516024016123a193929190613038565b50505050565b60006126b3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127ac9092919063ffffffff16565b90508051600014806126d45750808060200190518101906126d49190613257565b610c8b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610540565b600082600001828154811061274a5761274a612fa0565b9060005260206000200154905092915050565b60008181526001830160205260408120546127a457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d91565b506000610d91565b60606127bb84846000856127c3565b949350505050565b6060824710156128245760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610540565b600080866001600160a01b03168587604051612840919061301c565b60006040518083038185875af1925050503d806000811461287d576040519150601f19603f3d011682016040523d82523d6000602084013e612882565b606091505b50915091506128938783838761289e565b979650505050505050565b6060831561290d578251600003612906576001600160a01b0385163b6129065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610540565b50816127bb565b6127bb83838151156129225781518083602001fd5b8060405162461bcd60e51b815260040161054091906132ec565b60006020828403121561294e57600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561298557815187529582019590820190600101612969565b509495945050505050565b6020815260006123e46020830184612955565b801515811461237257600080fd5b600080604083850312156129c457600080fd5b8235915060208301356129d6816129a3565b809150509250929050565b60005b838110156129fc5781810151838201526020016129e4565b50506000910152565b60008151808452612a1d8160208601602086016129e1565b601f01601f19169290920160200192915050565b60006101c060018060a01b038916835287516020840152602088015160408401526040880151606084015260608801516080840152608088015160a084015260a088015160c0840152612a9560e08401888051151582526020908101511515910152565b85516101208401526020860151610140840152604086015161016084015280610180840152612ac681840186612a05565b9150506128936101a08301846001600160a01b03169052565b6001600160a01b038116811461237257600080fd5b60008060408385031215612b0757600080fd5b8235612b1281612adf565b915060208301356129d681612adf565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715612b5a57612b5a612b22565b60405290565b60405160c081016001600160401b0381118282101715612b5a57612b5a612b22565b604051601f8201601f191681016001600160401b0381118282101715612baa57612baa612b22565b604052919050565b60006001600160401b03821115612bcb57612bcb612b22565b50601f01601f191660200190565b600082601f830112612bea57600080fd5b8135612bfd612bf882612bb2565b612b82565b818152846020838601011115612c1257600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215612c4257600080fd5b82356001600160401b0380821115612c5957600080fd5b612c6586838701612bd9565b93506020850135915080821115612c7b57600080fd5b50612c8885828601612bd9565b9150509250929050565b6001600160a01b0391909116815260200190565b600060208284031215612cb857600080fd5b81356123e481612adf565b60a081526000612cd660a0830188612955565b6020838203818501528188518084528284019150828160051b850101838b0160005b83811015612d2657601f19878403018552612d14838351612a05565b94860194925090850190600101612cf8565b50508681036040880152612d3a818b612955565b9450505050508281036060840152612d528186612955565b90508281036080840152612d668185612955565b98975050505050505050565b6000806000806000806000806000898b03610160811215612d9257600080fd5b8a356001600160401b03811115612da857600080fd5b612db48d828e01612bd9565b9a505060208b0135612dc581612adf565b985060408b0135612dd581612adf565b975060608b810135975060808c0135965060a08c0135955060c08c0135945060e08c0135935060ff1982011215612e0b57600080fd5b50612e14612b38565b6101008b013581526101208b013560208201526101408b01356040820152809150509295985092959850929598565b60008060408385031215612e5657600080fd5b8235915060208301356129d681612adf565b6020808252825182820181905260009190848201906040850190845b81811015612ea95783516001600160a01b031683529284019291840191600101612e84565b50909695505050505050565b60008060408385031215612ec857600080fd5b8235612ed381612adf565b946020939093013593505050565b600080600060608486031215612ef657600080fd5b833592506020840135612f0881612adf565b929592945050506040919091013590565b6020808252600b908201526a6e6f74206d61696e20434160a81b604082015260600190565b602080825260199082015278125cc818d85b98d95b1b1959081bdc88199a5b985b1a5e9959603a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201612f9957612f99612f71565b5060010190565b634e487b7160e01b600052603260045260246000fd5b80820180821115610d9157610d91612f71565b600181811c90821680612fdd57607f821691505b602082108103612ffd57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561301557600080fd5b5051919050565b6000825161302e8184602087016129e1565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b601f821115610c8b57600081815260208120601f850160051c810160208610156130835750805b601f850160051c820191505b818110156130a25782815560010161308f565b505050505050565b81516001600160401b038111156130c3576130c3612b22565b6130d7816130d18454612fc9565b8461305c565b602080601f83116001811461310c57600084156130f45750858301515b600019600386901b1c1916600185901b1785556130a2565b600085815260208120601f198616915b8281101561313b5788860151825594840194600190910190840161311c565b50858210156131595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610d9157610d91612f71565b6000602080838503121561318f57600080fd5b82516001600160401b03808211156131a657600080fd5b9084019060c082870312156131ba57600080fd5b6131c2612b60565b8251828111156131d157600080fd5b83019150601f820187136131e457600080fd5b81516131f2612bf882612bb2565b818152888683860101111561320657600080fd5b613215828783018887016129e1565b8083525050838301518482015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528094505050505092915050565b60006020828403121561326957600080fd5b81516123e4816129a3565b602080825260159082015274496e76616c6964206275796572206164647265737360581b604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b60208082526010908201526f496e76616c696420656e642074696d6560801b604082015260600190565b6020815260006123e46020830184612a0556fea264697066735822122030c16300ec3f4ed977815de1f6f62f904495a69e406879c40b0d8ed58b1b651864736f6c634300081300330000000000000000000000003b371cdc1a456aaeb5ee0786de166fe703111795