diff --git a/build/ILiquidPledgingPlugin.sol.js b/build/ILiquidPledgingPlugin.sol.js index 383410e..300b1b4 100644 --- a/build/ILiquidPledgingPlugin.sol.js +++ b/build/ILiquidPledgingPlugin.sol.js @@ -1,6 +1,6 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"onTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0xd63558e8c3447ba049eb7dbd54f5183be48d41b6d21564642d7817cd5af81820" +exports._sha256 = "0x0b78eb5f7fc9ad0a36150ca9c8750a9d2e1fc98fa75dbf9627f3abdd201119c4" diff --git a/build/ILiquidPledgingPlugin_all.sol b/build/ILiquidPledgingPlugin_all.sol index 3b7e269..e315124 100644 --- a/build/ILiquidPledgingPlugin_all.sol +++ b/build/ILiquidPledgingPlugin_all.sol @@ -16,5 +16,6 @@ contract ILiquidPledgingPlugin { /// 258 -> Second delegate to /// ... /// 511 -> proposedProject to - function onTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); } diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index c52f781..4abe133 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -1,12 +1,12 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"onTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"notesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062003f3a833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000249565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200013c565b5b505050565b6200013991905b8082111562000135578054600160a860020a03191681556000620001076001830182620001ae565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000df565b5090565b90565b6200013991905b808211156200013557600080825560018201805467ffffffffffffffff19169055620001736002830182620001fa565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000143565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d65750620001f6565b601f016020900490600052602060002090810190620001f6919062000225565b5b50565b508054600082556003016004900490600052602060002090810190620001f6919062000225565b5b50565b6200013991905b808211156200013557600081556001016200022c565b5090565b90565b613ce180620002596000396000f300606060405236156101225763ffffffff60e060020a6000350416631e21564881146101275780632101a6ad146101935780632ee88808146101c65780633ca05eca146101ea578063433879831461027357806347c5ef43146102975780634fd9179a146102c857806357adafb61461035157806374653bcb146103a2578063796d5654146103c757806391090937146103e85780639398f5a2146104a25780639834bf2f146104f3578063b9d82bd7146105d6578063bde60ac914610652578063c40b51fd1461066e578063cb199fa414610693578063cb9123ff146106ff578063d639cd731461077d578063e9c211e2146107e7578063ef3766e41461080b578063f51847051461085c578063fbfa77cf1461088f578063ff04f7ac146108be575b600080fd5b341561013257600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610947915050565b005b341561019e57600080fd5b6101b26001604060020a0360043516610b09565b604051901515815260200160405180910390f35b34156101d157600080fd5b6101916001604060020a0360043516602435610bbb565b005b34156101f557600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610d01915050565b005b341561027e57600080fd5b6101916001604060020a0360043516602435610df5565b005b34156102a257600080fd5b6101916001604060020a036004358116906024358116906044359060643516610fc7565b005b34156102d357600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611495915050565b005b341561035c57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061158995505050505050565b005b34156103ad57600080fd5b6103b56115fc565b60405190815260200160405180910390f35b34156103d257600080fd5b6101916001604060020a0360043516611607565b005b34156103f357600080fd5b61040a6001604060020a036004351660243561165b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156104655780820151818401525b60200161044c565b50505050905090810190601f1680156104925780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156104ad57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061178295505050505050565b005b34156104fe57600080fd5b6105126001604060020a03600435166117f5565b6040518087600281111561052257fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156105965780820151818401525b60200161057d565b50505050905090810190601f1680156105c35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34156105e157600080fd5b61019160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506119009050565b005b6101916001604060020a0360043581169060243516611c7b565b005b341561067957600080fd5b6103b5611da2565b60405190815260200160405180910390f35b341561069e57600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611dad915050565b005b341561070a57600080fd5b61071e6001604060020a0360043516611f6f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561076357fe5b60ff16815260200197505050505050505060405180910390f35b341561078857600080fd5b610191600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250611fdc915050565b005b34156107f257600080fd5b6101916001604060020a0360043516602435612053565b005b341561081657600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b005b341561086757600080fd5b6101b26001604060020a03600435166121f0565b604051901515815260200160405180910390f35b341561089a57600080fd5b6108a26122a8565b604051600160a060020a03909116815260200160405180910390f35b34156108c957600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506122b7915050565b005b6001805480820161095883826138db565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff191660018360028111156109d157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610a1792916020019061390d565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b600080610b15836123ab565b905060005b815460ff166002811115610b2a57fe5b1415610b395760009150610bb5565b60025b815460ff166002811115610b4c57fe5b14610b5357fe5b6002810154608060020a900460ff1615610b705760019150610bb5565b6002810154604060020a90046001604060020a03161515610b945760009150610bb5565b6002810154610bb290604060020a90046001604060020a0316610b09565b91505b50919050565b600254600090819033600160a060020a03908116911614610bdb57600080fd5b610be4846123f6565b915060015b600383015460c060020a900460ff166002811115610c0357fe5b14610c0d57600080fd5b836001604060020a0316610c208561243f565b6001604060020a031614610c3357600080fd5b6001820154600283018054610cec926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610cc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610c835790505b505050506003860154600091508190608060020a90046001604060020a03166002612509565b9050610cf98482856127fb565b5b5b50505050565b6000610d0c866123ab565b905060005b815460ff166002811115610d2157fe5b14610d2b57600080fd5b805433600160a060020a039081166101009092041614610d4a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610d7d92916020019061390d565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000806000610e03856128b5565b9450610e0e856123f6565b925060005b600384015460c060020a900460ff166002811115610e2d57fe5b14610e3757600080fd5b6001830154610e4e906001604060020a03166123ab565b805490925033600160a060020a039081166101009092041614610e7057600080fd5b6001830154600284018054610f29926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f0357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610ec05790505b505050506003870154600091508190608060020a90046001604060020a03166001612509565b9050610f368582866127fb565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b1515610fab57600080fd5b6102c65a03f11515610fbc57600080fd5b5050505b5050505050565b6000806000806000610fd8886128b5565b9750610fe3886123f6565b9450610fee866123ab565b9350610ff9896123ab565b805490935033600160a060020a03908116610100909204161461101b57600080fd5b60005b600386015460c060020a900460ff16600281111561103857fe5b1461104257600080fd5b60018501546001604060020a038a8116911614156110df5760005b845460ff16600281111561106d57fe5b14156110835761107e888888612a81565b6110d7565b60025b845460ff16600281111561109657fe5b14156110ac5761107e888888612ad4565b6110d7565b60015b845460ff1660028111156110bf57fe5b14156110d55761107e888888612d20565b6110d7565bfe5b5b5b5b611489565b6112108560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156111a957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156111fc57fe5b600281111561120757fe5b9052508a612e54565b6001604060020a03908116925082146110d55760005b845460ff16600281111561123657fe5b141561126c5760018501546001604060020a0387811691161461125557fe5b6110d788888760020180549050612ebb565b611489565b60015b845460ff16600281111561127f57fe5b1415611446576113b68560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561134f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161130c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156113a257fe5b60028111156113ad57fe5b90525087612e54565b6001604060020a0390811691508114156113f1576113e1888860018589600201805490500303612ebb565b61107e888888612d20565b6110d7565b81811115611420576113e1888860018589600201805490500303612ebb565b61107e888888612d20565b6110d7565b8181116110d7576110d7888860018489600201805490500303612ebb565b5b5b5b611489565b60025b845460ff16600281111561145957fe5b14156110d557611476888860018589600201805490500303612ebb565b6110d7888888612fc1565b611489565b5bfe5b5b505050505050505050565b60006114a0866123ab565b905060015b815460ff1660028111156114b557fe5b146114bf57600080fd5b805433600160a060020a0390811661010090920416146114de57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161151192916020019061390d565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8351831015610cf9576001604060020a038484815181106115ab57fe5b90602001906020020151169150604060020a8484815181106115c957fe5b906020019060200201518115156115dc57fe5b0490506115e98282610df5565b5b60019092019161158e565b5b50505050565b600054600019015b90565b6000611612826123ab565b805490915033600160a060020a03908116610100909204161461163457600080fd5b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b600080611666613a0b565b600080611672876123f6565b9150816002016001870381548110151561168857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031694506116bd856123ab565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117715780601f1061174657610100808354040283529160200191611771565b820191906000526020600020905b81548152906001019060200180831161175457829003601f168201915b505050505092505b50509250925092565b600080805b8351831015610cf9576001604060020a038484815181106117a457fe5b90602001906020020151169150604060020a8484815181106117c257fe5b906020019060200201518115156117d557fe5b0490506117e28282610bbb565b5b600190920191611787565b5b50505050565b600080611800613a0b565b60008060008061180f886123ab565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156118c55780601f1061189a576101008083540402835291602001916118c5565b820191906000526020600020905b8154815290600101906020018083116118a857829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b60006001604060020a03841615611ab45761191a846123ab565b905060025b815460ff16600281111561192f57fe5b1461193957600080fd5b805433600160a060020a03908116610100909204161461195857600080fd5b6014611aaa8260e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613310565b10611ab457600080fd5b5b60018054808201611ac683826138db565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c90526001604060020a03808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115611b4057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611b8692916020019061390d565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600080600080611c8a866123ab565b935060005b845460ff166002811115611c9f57fe5b14611ca957600080fd5b835433600160a060020a039081166101009092041614611cc857600080fd5b34925060008311611cd857600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d0b57600080fd5b611d3b866000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9150611d46826123f6565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3610ded86838588610fc7565b5b505050505050565b600154600019015b90565b60018054808201611dbe83826138db565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115611e3757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e7d92916020019061390d565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b600080600080600080600080611f84896123f6565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015610ded576001604060020a03858481518110611ffe57fe5b90602001906020020151169150604060020a85848151811061201c57fe5b9060200190602002015181151561202f57fe5b04905061203e86838387610fc7565b5b600190920191611fe1565b5b505050505050565b600254600090819033600160a060020a0390811691161461207357600080fd5b61207c846123f6565b915060015b600383015460c060020a900460ff16600281111561209b57fe5b146120a557600080fd5b600182015460028301805461215d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561213857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116120f55790505b505050506003860154600091508190608060020a90046001604060020a031681612509565b9050610cec816128b5565b9050610cf98482856127fb565b5b5b50505050565b600080805b8351831015610cf9576001604060020a0384848151811061219f57fe5b90602001906020020151169150604060020a8484815181106121bd57fe5b906020019060200201518115156121d057fe5b0490506121dd8282612053565b5b600190920191612182565b5b50505050565b6000806121fc836123ab565b905060009150610bb5565b815460ff16600281111561221757fe5b14156122265760009150610bb5565b60025b815460ff16600281111561223957fe5b1461224057fe5b6002810154608060020a900460ff161561225d5760019150610bb5565b6002810154604060020a90046001604060020a031615156122815760009150610bb5565b6002810154610bb290604060020a90046001604060020a03166121f0565b91505b50919050565b600254600160a060020a031681565b60006122c2866123ab565b905060025b815460ff1660028111156122d757fe5b146122e157600080fd5b805433600160a060020a03908116610100909204161461230057600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161233392916020019061390d565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b6001546000906001604060020a038316106123c557600080fd5b600180546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a0383161061240e57600080fd5b600080546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080806001604060020a038416151561245c5760009250612502565b612465846123f6565b600181015490925061247f906001604060020a03166123ab565b905060005b815460ff16600281111561249457fe5b14156124a257839250612502565b60025b815460ff1660028111156124b557fe5b146124bc57fe5b60018201546124d3906001604060020a0316610b09565b15156124e157839250612502565b60038201546124ff90608060020a90046001604060020a031661243f565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156125575780820151818401525b60200161253e565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156125c457fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561262d578092506127ef565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a03831617905581549091906001810161266b8382613a1d565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156126dd57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612728929160200190613a4f565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156127e357fe5b02179055505050508092505b50509695505050505050565b600080600061280b8686866134af565b9250846001604060020a0316866001604060020a0316141561282c57610ded565b82151561283857610ded565b612841866123f6565b915061284c856123f6565b82549091508390101561285e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a35b505050505050565b6000806000806128c4856123f6565b925060005b600384015460c060020a900460ff1660028111156128e357fe5b146128f057849350612a79565b600383015460006001604060020a0390911611801561292957506003830154604060020a90046001604060020a03166129276134d4565b115b15612a475760018301546002840180546129e6926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129c157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161297e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b6003840154909250612a27906001604060020a03166000604051805910612a0a5750595b908082528060200260200182016040525b50600080866000612509565b9050612a38858285600001546127fb565b809450612a44856123f6565b92505b612a508561243f565b90506001604060020a0380821690861614612a7457612a74858285600001546127fb565b5b8093505b505050919050565b600080612a8d856123f6565b9150612abf836000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9050610fc08582866127fb565b5b5050505050565b6000806000612ae2866123f6565b92506014612c168460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b6d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0357fe5b6002811115612c0e57fe5b9052506134d9565b10612c2057600080fd5b6001830154600284018054612cd8926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129c157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161297e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b9150612d0a846000604051805910612a0a5750595b908082528060200260200182016040525b50600080866000612509565b9050610ded8682876127fb565b5b505050505050565b6000612d2a613a0b565b600080612d36876123f6565b600281015490945060149010612d4b57600080fd5b6002840154600101604051805910612d605750595b908082528060200260200182016040525b509250600091505b6002840154821015612dee5760028401805483908110612d9557fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612dcb57fe5b6001604060020a039092166020928302909101909101525b600190910190612d79565b60028401548590849081518110612e0157fe5b6001604060020a039283166020918202909201015260018501546003860154612e3d929182169186916000918291608060020a90041681612509565b9050612e4a8782886127fb565b5b50505050505050565b6000805b836040015151811015612ea957826001604060020a031684604001518281518110612e7f57fe5b906020019060200201516001604060020a03161415612ea057809150612eb4565b5b600101612e58565b6001604060020a0391505b5092915050565b6000612ec5613a0b565b600080612ed1876123f6565b6002810154909450859003604051805910612ee95750595b908082528060200260200182016040525b509250600091505b6002840154859003821015612f7a5760028401805483908110612f2157fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612f5757fe5b6001604060020a039092166020928302909101909101525b600190910190612f02565b60018401546003850154612e3d916001604060020a039081169186916000918291608060020a9091041681612509565b9050612e4a8782886127fb565b5b50505050505050565b600080612fcd856123f6565b915060146131018360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b6d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0357fe5b6002811115612c0e57fe5b9052506134d9565b1061310b57600080fd5b6001820154600283018054612abf926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561319e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161315b5790505b5050505050856132d48660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561326e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161322b5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156132c157fe5b60028111156132cc57fe5b905250613644565b6132dc6134d4565b6003880154910190608060020a90046001604060020a03166000612509565b9050610fc08582866127fb565b5b5050505050565b60008060025b8351600281111561332357fe5b1461332a57fe5b82608001516001604060020a031615156133475760019150610bb5565b61335483608001516123ab565b9050610bb28160e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613310565b91505b50919050565b806134bc848085846136d7565b90506134ca838585846136d7565b90505b9392505050565b425b90565b6000808260a001516001604060020a031615156134f95760009150610bb5565b6135068360a001516123f6565b90506136388160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b6d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0357fe5b6002811115612c0e57fe5b9052506134d9565b60010191505b50919050565b600080600061365684602001516123ab565b60028101546001604060020a031693509150600090505b8360400151518110156125025761369c8460400151828151811061368d57fe5b906020019060200201516123ab565b60028101549092506001604060020a0316839011156136c65760028201546001604060020a031692505b5b60010161366d565b5b5050919050565b600080600080866001604060020a0316886001604060020a0316146136fe57610100613701565b60005b61ffff169250849350613713886123f6565b6001810154909250613731906001604060020a0316888886886137f2565b9350600090505b60028201546001604060020a03821610156137ad576137a282600201826001604060020a031681548110151561376a57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168888848701600101886137f2565b93505b600101613738565b600382015460006001604060020a0390911611156137e65760038201546137e3906001604060020a0316888860ff8701886137f2565b93505b5b505050949350505050565b806000806137ff886123ab565b6003810154909250600160a060020a03161580159061381e5750600083115b156138cf576003820154600160a060020a031663a4947a7e898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b15156138a257600080fd5b6102c65a03f115156138b357600080fd5b5050506040518051915050828111156138cb57600080fd5b8092505b5b505095945050505050565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613b19565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061394e57805160ff191683800117855561397b565b8280016001018555821561397b579182015b8281111561397b578251825591602001919060010190613960565b5b50613988929150613b90565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061394e57805160ff191683800117855561397b565b8280016001018555821561397b579182015b8281111561397b578251825591602001919060010190613960565b5b50613988929150613b90565b5090565b60206040519081016040526000815290565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613bb1565b5b505050565b82805482825590600052602060002090600301600490048101928215613af75791602002820160005b83821115613ac257835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613a78565b8015613af55782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ac2565b505b50613988929150613c18565b5090565b60206040519081016040526000815290565b61160491905b8082111561398857805474ffffffffffffffffffffffffffffffffffffffffff191681556000613b526001830182613c44565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a0319169055600401613b1f565b5090565b90565b61160491905b808211156139885760008155600101613b96565b5090565b90565b61160491905b8082111561398857600080825560018201805467ffffffffffffffff19169055613be46002830182613c8c565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613bb7565b5090565b90565b61160491905b8082111561398857805467ffffffffffffffff19168155600101613c1e565b5090565b90565b50805460018160011615610100020316600290046000825580601f10613c6a5750613c88565b601f016020900490600052602060002090810190613c889190613b90565b5b50565b508054600082556003016004900490600052602060002090810190613c889190613b90565b5b505600a165627a7a7230582074fefaf82b1b2508bfc1972f37b1854735d60729386d8dca05de27716fe02af80029" +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062003fdd833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000249565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200013c565b5b505050565b6200013991905b8082111562000135578054600160a860020a03191681556000620001076001830182620001ae565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000df565b5090565b90565b6200013991905b808211156200013557600080825560018201805467ffffffffffffffff19169055620001736002830182620001fa565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000143565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d65750620001f6565b601f016020900490600052602060002090810190620001f6919062000225565b5b50565b508054600082556003016004900490600052602060002090810190620001f6919062000225565b5b50565b6200013991905b808211156200013557600081556001016200022c565b5090565b90565b613d8480620002596000396000f300606060405236156101225763ffffffff60e060020a6000350416631e21564881146101275780632101a6ad146101935780632ee88808146101c65780633ca05eca146101ea578063433879831461027357806347c5ef43146102975780634fd9179a146102c857806357adafb61461035157806374653bcb146103a2578063796d5654146103c757806391090937146103e85780639398f5a2146104a25780639834bf2f146104f3578063b9d82bd7146105d6578063bde60ac914610652578063c40b51fd1461066e578063cb199fa414610693578063cb9123ff146106ff578063d639cd731461077d578063e9c211e2146107e7578063ef3766e41461080b578063f51847051461085c578063fbfa77cf1461088f578063ff04f7ac146108be575b600080fd5b341561013257600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610947915050565b005b341561019e57600080fd5b6101b26001604060020a0360043516610b09565b604051901515815260200160405180910390f35b34156101d157600080fd5b6101916001604060020a0360043516602435610bbb565b005b34156101f557600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610d01915050565b005b341561027e57600080fd5b6101916001604060020a0360043516602435610df5565b005b34156102a257600080fd5b6101916001604060020a036004358116906024358116906044359060643516610fc7565b005b34156102d357600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611495915050565b005b341561035c57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061158995505050505050565b005b34156103ad57600080fd5b6103b56115fc565b60405190815260200160405180910390f35b34156103d257600080fd5b6101916001604060020a0360043516611607565b005b34156103f357600080fd5b61040a6001604060020a036004351660243561165b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156104655780820151818401525b60200161044c565b50505050905090810190601f1680156104925780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156104ad57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061178295505050505050565b005b34156104fe57600080fd5b6105126001604060020a03600435166117f5565b6040518087600281111561052257fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156105965780820151818401525b60200161057d565b50505050905090810190601f1680156105c35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34156105e157600080fd5b61019160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506119009050565b005b6101916001604060020a0360043581169060243516611c7b565b005b341561067957600080fd5b6103b5611da2565b60405190815260200160405180910390f35b341561069e57600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611dad915050565b005b341561070a57600080fd5b61071e6001604060020a0360043516611f6f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561076357fe5b60ff16815260200197505050505050505060405180910390f35b341561078857600080fd5b610191600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250611fdc915050565b005b34156107f257600080fd5b6101916001604060020a0360043516602435612053565b005b341561081657600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b005b341561086757600080fd5b6101b26001604060020a03600435166121f0565b604051901515815260200160405180910390f35b341561089a57600080fd5b6108a26122a8565b604051600160a060020a03909116815260200160405180910390f35b34156108c957600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506122b7915050565b005b60018054808201610958838261397e565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff191660018360028111156109d157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610a179291602001906139b0565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b600080610b15836123ab565b905060005b815460ff166002811115610b2a57fe5b1415610b395760009150610bb5565b60025b815460ff166002811115610b4c57fe5b14610b5357fe5b6002810154608060020a900460ff1615610b705760019150610bb5565b6002810154604060020a90046001604060020a03161515610b945760009150610bb5565b6002810154610bb290604060020a90046001604060020a0316610b09565b91505b50919050565b600254600090819033600160a060020a03908116911614610bdb57600080fd5b610be4846123f6565b915060015b600383015460c060020a900460ff166002811115610c0357fe5b14610c0d57600080fd5b836001604060020a0316610c208561243f565b6001604060020a031614610c3357600080fd5b6001820154600283018054610cec926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610cc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610c835790505b505050506003860154600091508190608060020a90046001604060020a03166002612509565b9050610cf98482856127fb565b5b5b50505050565b6000610d0c866123ab565b905060005b815460ff166002811115610d2157fe5b14610d2b57600080fd5b805433600160a060020a039081166101009092041614610d4a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610d7d9291602001906139b0565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000806000610e03856128c5565b9450610e0e856123f6565b925060005b600384015460c060020a900460ff166002811115610e2d57fe5b14610e3757600080fd5b6001830154610e4e906001604060020a03166123ab565b805490925033600160a060020a039081166101009092041614610e7057600080fd5b6001830154600284018054610f29926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f0357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610ec05790505b505050506003870154600091508190608060020a90046001604060020a03166001612509565b9050610f368582866127fb565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b1515610fab57600080fd5b6102c65a03f11515610fbc57600080fd5b5050505b5050505050565b6000806000806000610fd8886128c5565b9750610fe3886123f6565b9450610fee866123ab565b9350610ff9896123ab565b805490935033600160a060020a03908116610100909204161461101b57600080fd5b60005b600386015460c060020a900460ff16600281111561103857fe5b1461104257600080fd5b60018501546001604060020a038a8116911614156110df5760005b845460ff16600281111561106d57fe5b14156110835761107e888888612a91565b6110d7565b60025b845460ff16600281111561109657fe5b14156110ac5761107e888888612ad7565b6110d7565b60015b845460ff1660028111156110bf57fe5b14156110d55761107e888888612d23565b6110d7565bfe5b5b5b5b611489565b6112108560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156111a957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156111fc57fe5b600281111561120757fe5b9052508a612e57565b6001604060020a03908116925082146110d55760005b845460ff16600281111561123657fe5b141561126c5760018501546001604060020a0387811691161461125557fe5b6110d788888760020180549050612ebe565b611489565b60015b845460ff16600281111561127f57fe5b1415611446576113b68560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561134f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161130c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156113a257fe5b60028111156113ad57fe5b90525087612e57565b6001604060020a0390811691508114156113f1576113e1888860018589600201805490500303612ebe565b61107e888888612d23565b6110d7565b81811115611420576113e1888860018589600201805490500303612ebe565b61107e888888612d23565b6110d7565b8181116110d7576110d7888860018489600201805490500303612ebe565b5b5b5b611489565b60025b845460ff16600281111561145957fe5b14156110d557611476888860018589600201805490500303612ebe565b6110d7888888612fc4565b611489565b5bfe5b5b505050505050505050565b60006114a0866123ab565b905060015b815460ff1660028111156114b557fe5b146114bf57600080fd5b805433600160a060020a0390811661010090920416146114de57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516115119291602001906139b0565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8351831015610cf9576001604060020a038484815181106115ab57fe5b90602001906020020151169150604060020a8484815181106115c957fe5b906020019060200201518115156115dc57fe5b0490506115e98282610df5565b5b60019092019161158e565b5b50505050565b600054600019015b90565b6000611612826123ab565b805490915033600160a060020a03908116610100909204161461163457600080fd5b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b600080611666613aae565b600080611672876123f6565b9150816002016001870381548110151561168857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031694506116bd856123ab565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117715780601f1061174657610100808354040283529160200191611771565b820191906000526020600020905b81548152906001019060200180831161175457829003601f168201915b505050505092505b50509250925092565b600080805b8351831015610cf9576001604060020a038484815181106117a457fe5b90602001906020020151169150604060020a8484815181106117c257fe5b906020019060200201518115156117d557fe5b0490506117e28282610bbb565b5b600190920191611787565b5b50505050565b600080611800613aae565b60008060008061180f886123ab565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156118c55780601f1061189a576101008083540402835291602001916118c5565b820191906000526020600020905b8154815290600101906020018083116118a857829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b60006001604060020a03841615611ab45761191a846123ab565b905060025b815460ff16600281111561192f57fe5b1461193957600080fd5b805433600160a060020a03908116610100909204161461195857600080fd5b6014611aaa8260e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613313565b10611ab457600080fd5b5b60018054808201611ac6838261397e565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c90526001604060020a03808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115611b4057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611b869291602001906139b0565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600080600080611c8a866123ab565b935060005b845460ff166002811115611c9f57fe5b14611ca957600080fd5b835433600160a060020a039081166101009092041614611cc857600080fd5b34925060008311611cd857600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d0b57600080fd5b611d3b866000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9150611d46826123f6565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3610ded86838588610fc7565b5b505050505050565b600154600019015b90565b60018054808201611dbe838261397e565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115611e3757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e7d9291602001906139b0565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b600080600080600080600080611f84896123f6565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015610ded576001604060020a03858481518110611ffe57fe5b90602001906020020151169150604060020a85848151811061201c57fe5b9060200190602002015181151561202f57fe5b04905061203e86838387610fc7565b5b600190920191611fe1565b5b505050505050565b600254600090819033600160a060020a0390811691161461207357600080fd5b61207c846123f6565b915060015b600383015460c060020a900460ff16600281111561209b57fe5b146120a557600080fd5b600182015460028301805461215d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561213857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116120f55790505b505050506003860154600091508190608060020a90046001604060020a031681612509565b9050610cec816128c5565b9050610cf98482856127fb565b5b5b50505050565b600080805b8351831015610cf9576001604060020a0384848151811061219f57fe5b90602001906020020151169150604060020a8484815181106121bd57fe5b906020019060200201518115156121d057fe5b0490506121dd8282612053565b5b600190920191612182565b5b50505050565b6000806121fc836123ab565b905060009150610bb5565b815460ff16600281111561221757fe5b14156122265760009150610bb5565b60025b815460ff16600281111561223957fe5b1461224057fe5b6002810154608060020a900460ff161561225d5760019150610bb5565b6002810154604060020a90046001604060020a031615156122815760009150610bb5565b6002810154610bb290604060020a90046001604060020a03166121f0565b91505b50919050565b600254600160a060020a031681565b60006122c2866123ab565b905060025b815460ff1660028111156122d757fe5b146122e157600080fd5b805433600160a060020a03908116610100909204161461230057600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516123339291602001906139b0565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b6001546000906001604060020a038316106123c557600080fd5b600180546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a0383161061240e57600080fd5b600080546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080806001604060020a038416151561245c5760009250612502565b612465846123f6565b600181015490925061247f906001604060020a03166123ab565b905060005b815460ff16600281111561249457fe5b14156124a257839250612502565b60025b815460ff1660028111156124b557fe5b146124bc57fe5b60018201546124d3906001604060020a0316610b09565b15156124e157839250612502565b60038201546124ff90608060020a90046001604060020a031661243f565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156125575780820151818401525b60200161253e565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156125c457fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561262d578092506127ef565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a03831617905581549091906001810161266b8382613ac0565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156126dd57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612728929160200190613af2565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156127e357fe5b02179055505050508092505b50509695505050505050565b600080600061280d60018787876134b2565b9250846001604060020a0316866001604060020a0316141561282e57610ded565b82151561283a57610ded565b612843866123f6565b915061284e856123f6565b82549091508390101561286057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36128bb60008787866134b2565b505b505050505050565b6000806000806128d4856123f6565b925060005b600384015460c060020a900460ff1660028111156128f357fe5b1461290057849350612a89565b600383015460006001604060020a0390911611801561293957506003830154604060020a90046001604060020a03166129376134da565b115b15612a575760018301546002840180546129f6926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129d157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161298e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b6003840154909250612a37906001604060020a03166000604051805910612a1a5750595b908082528060200260200182016040525b50600080866000612509565b9050612a48858285600001546127fb565b809450612a54856123f6565b92505b612a608561243f565b90506001604060020a0380821690861614612a8457612a84858285600001546127fb565b5b8093505b505050919050565b6000610cec826000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9050610cf98482856127fb565b5b50505050565b6000806000612ae5866123f6565b92506014612c198460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b705790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0657fe5b6002811115612c1157fe5b9052506134df565b10612c2357600080fd5b6001830154600284018054612cdb926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129d157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161298e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b9150612d0d846000604051805910612a1a5750595b908082528060200260200182016040525b50600080866000612509565b9050610ded8682876127fb565b5b505050505050565b6000612d2d613aae565b600080612d39876123f6565b600281015490945060149010612d4e57600080fd5b6002840154600101604051805910612d635750595b908082528060200260200182016040525b509250600091505b6002840154821015612df15760028401805483908110612d9857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612dce57fe5b6001604060020a039092166020928302909101909101525b600190910190612d7c565b60028401548590849081518110612e0457fe5b6001604060020a039283166020918202909201015260018501546003860154612e40929182169186916000918291608060020a90041681612509565b90506128bb8782886127fb565b5b50505050505050565b6000805b836040015151811015612eac57826001604060020a031684604001518281518110612e8257fe5b906020019060200201516001604060020a03161415612ea357809150612eb7565b5b600101612e5b565b6001604060020a0391505b5092915050565b6000612ec8613aae565b600080612ed4876123f6565b6002810154909450859003604051805910612eec5750595b908082528060200260200182016040525b509250600091505b6002840154859003821015612f7d5760028401805483908110612f2457fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612f5a57fe5b6001604060020a039092166020928302909101909101525b600190910190612f05565b60018401546003850154612e40916001604060020a039081169186916000918291608060020a9091041681612509565b90506128bb8782886127fb565b5b50505050505050565b600080612fd0856123f6565b915060146131048360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b705790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0657fe5b6002811115612c1157fe5b9052506134df565b1061310e57600080fd5b60018201546002830180546132fe926001604060020a031691906020808202016040519081016040528092919081815260200182805480156131a157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161315e5790505b5050505050856132d78660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561327157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161322e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156132c457fe5b60028111156132cf57fe5b90525061364a565b6132df6134da565b6003880154910190608060020a90046001604060020a03166000612509565b9050610fc08582866127fb565b5b5050505050565b60008060025b8351600281111561332657fe5b1461332d57fe5b82608001516001604060020a0316151561334a5760019150610bb5565b61335783608001516123ab565b9050610bb28160e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613313565b91505b50919050565b806134c085858086856136dd565b90506134cf85848686856136dd565b90505b949350505050565b425b90565b6000808260a001516001604060020a031615156134ff5760009150610bb5565b61350c8360a001516123f6565b905061363e8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b705790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0657fe5b6002811115612c1157fe5b9052506134df565b60010191505b50919050565b600080600061365c84602001516123ab565b60028101546001604060020a031693509150600090505b836040015151811015612502576136a28460400151828151811061369357fe5b906020019060200201516123ab565b60028101549092506001604060020a0316839011156136cc5760028201546001604060020a031692505b5b600101613673565b5b5050919050565b600080600080866001604060020a0316886001604060020a03161461370457610100613707565b60005b61ffff169250849350613719886123f6565b6001810154909250613739908a906001604060020a0316898987896137fe565b9350600090505b60028201546001604060020a03821610156137b6576137ab8983600201836001604060020a031681548110151561377357fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168989858801600101896137fe565b93505b600101613740565b600382015460006001604060020a0390911611156137f15760038201546137ee908a906001604060020a0316898960ff8801896137fe565b93505b5b50505095945050505050565b8060008061380b886123ab565b6003810154909150600160a060020a03161580159061382a5750600083115b156127ef5788156138e5576003810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b15156138b457600080fd5b6102c65a03f115156138c557600080fd5b5050506040518051925050828211156138dd57600080fd5b8192506127ef565b6003810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b151561395b57600080fd5b6102c65a03f1151561396c57600080fd5b5050505b5b5b50509695505050505050565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613bbc565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139f157805160ff1916838001178555613a1e565b82800160010185558215613a1e579182015b82811115613a1e578251825591602001919060010190613a03565b5b50613a2b929150613c33565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139f157805160ff1916838001178555613a1e565b82800160010185558215613a1e579182015b82811115613a1e578251825591602001919060010190613a03565b5b50613a2b929150613c33565b5090565b60206040519081016040526000815290565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613c54565b5b505050565b82805482825590600052602060002090600301600490048101928215613b9a5791602002820160005b83821115613b6557835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613b1b565b8015613b985782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613b65565b505b50613a2b929150613cbb565b5090565b60206040519081016040526000815290565b61160491905b80821115613a2b57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613bf56001830182613ce7565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a0319169055600401613bc2565b5090565b90565b61160491905b80821115613a2b5760008155600101613c39565b5090565b90565b61160491905b80821115613a2b57600080825560018201805467ffffffffffffffff19169055613c876002830182613d2f565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613c5a565b5090565b90565b61160491905b80821115613a2b57805467ffffffffffffffff19168155600101613cc1565b5090565b90565b50805460018160011615610100020316600290046000825580601f10613d0d5750613d2b565b601f016020900490600052602060002090810190613d2b9190613c33565b5b50565b508054600082556003016004900490600052602060002090810190613d2b9190613c33565b5b505600a165627a7a723058206523678b49e8fbf95f9c348110aa9ae98c8d28c1f380114bf1f4ae588beb95610029" exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c09833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b480620002556000396000f300606060405236156100cd5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e21564881146100d25780632101a6ad1461013f5780633ca05eca146101735780634fd9179a146101fe57806374653bcb1461028957806391090937146102ae5780639834bf2f1461036a578063b9d82bd71461044f578063c40b51fd146104cc578063cb199fa4146104f1578063cb9123ff1461055e578063f5184705146105de578063fbfa77cf14610612578063ff04f7ac14610641575b600080fd5b34156100dd57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506106cc915050565b005b341561014a57600080fd5b61015f67ffffffffffffffff60043516610893565b604051901515815260200160405180910390f35b341561017e57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610951915050565b005b341561020957600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610a46915050565b005b341561029457600080fd5b61029c610b3b565b60405190815260200160405180910390f35b34156102b957600080fd5b6102d167ffffffffffffffff60043516602435610b46565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032d5780820151818401525b602001610314565b50505050905090810190601f16801561035a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037557600080fd5b61038a67ffffffffffffffff60043516610c6e565b6040518087600281111561039a57fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040f5780820151818401525b6020016103f6565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045a57600080fd5b61013d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d7f9050565b005b34156104d757600080fd5b61029c611106565b60405190815260200160405180910390f35b34156104fc57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611111915050565b005b341561056957600080fd5b61057e67ffffffffffffffff600435166112d8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156105c457fe5b60ff16815260200197505050505050505060405180910390f35b34156105e957600080fd5b61015f67ffffffffffffffff60043516611360565b604051901515815260200160405180910390f35b341561061d57600080fd5b610625611424565b604051600160a060020a03909116815260200160405180910390f35b341561064c57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611433915050565b005b600180548082016106dd8382611766565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561075757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161079d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b60008061089f83611528565b905060005b815460ff1660028111156108b457fe5b14156108c3576000915061094b565b60025b815460ff1660028111156108d657fe5b146108dd57fe5b6002810154608060020a900460ff16156108fa576001915061094b565b600281015468010000000000000000900467ffffffffffffffff161515610924576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16610893565b91505b50919050565b600061095c86611528565b905060005b815460ff16600281111561097157fe5b1461097b57600080fd5b805433600160a060020a03908116610100909204161461099a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516109cd929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000610a5186611528565b905060015b815460ff166002811115610a6657fe5b14610a7057600080fd5b805433600160a060020a039081166101009092041614610a8f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610ac2929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600054600019015b90565b600080610b51611896565b600080610b5d87611575565b91508160020160018703815481101515610b7357fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba985611528565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b505050505092505b50509250925092565b600080610c79611896565b600080600080610c8888611528565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b600067ffffffffffffffff841615610f3a57610d9a84611528565b905060025b815460ff166002811115610daf57fe5b14610db957600080fd5b805433600160a060020a039081166101009092041614610dd857600080fd5b6014610f308260e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b10610f3a57600080fd5b5b60018054808201610f4c8382611766565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c905267ffffffffffffffff808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115610fc757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161100d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600154600019015b90565b600180548082016111228382611766565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561119c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111e2929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b6000806000806000806000806112ed89611575565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061136c83611528565b90506000915061094b565b815460ff16600281111561138757fe5b1415611396576000915061094b565b60025b815460ff1660028111156113a957fe5b146113b057fe5b6002810154608060020a900460ff16156113cd576001915061094b565b600281015468010000000000000000900467ffffffffffffffff1615156113f7576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16611360565b91505b50919050565b600254600160a060020a031681565b600061143e86611528565b905060025b815460ff16600281111561145357fe5b1461145d57600080fd5b805433600160a060020a03908116610100909204161461147c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114af929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b60015460009067ffffffffffffffff83161061154357600080fd5b6001805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061158e57600080fd5b6000805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115d357fe5b146115da57fe5b826080015167ffffffffffffffff1615156115f8576001915061094b565b6116058360800151611528565b90506109488160e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b91505b50919050565b81548183558181151161088e5760040281600402836000526020600020918201910161088e91906118a8565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b60206040519081016040526000815290565b610b4391905b8082111561181357805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118e16001830182611940565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a03191690556004016118ae565b5090565b90565b610b4391905b808211156118135760008155600101611925565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119665750611984565b601f016020900490600052602060002090810190611984919061191f565b5b505600a165627a7a723058208ed55c3a1f7c90afbdf5cb8b85106b11f93c7bc82a73e5549ff3a4bec23aae060029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c09833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b480620002556000396000f300606060405236156100cd5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e21564881146100d25780632101a6ad1461013f5780633ca05eca146101735780634fd9179a146101fe57806374653bcb1461028957806391090937146102ae5780639834bf2f1461036a578063b9d82bd71461044f578063c40b51fd146104cc578063cb199fa4146104f1578063cb9123ff1461055e578063f5184705146105de578063fbfa77cf14610612578063ff04f7ac14610641575b600080fd5b34156100dd57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506106cc915050565b005b341561014a57600080fd5b61015f67ffffffffffffffff60043516610893565b604051901515815260200160405180910390f35b341561017e57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610951915050565b005b341561020957600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610a46915050565b005b341561029457600080fd5b61029c610b3b565b60405190815260200160405180910390f35b34156102b957600080fd5b6102d167ffffffffffffffff60043516602435610b46565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032d5780820151818401525b602001610314565b50505050905090810190601f16801561035a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037557600080fd5b61038a67ffffffffffffffff60043516610c6e565b6040518087600281111561039a57fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040f5780820151818401525b6020016103f6565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045a57600080fd5b61013d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d7f9050565b005b34156104d757600080fd5b61029c611106565b60405190815260200160405180910390f35b34156104fc57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611111915050565b005b341561056957600080fd5b61057e67ffffffffffffffff600435166112d8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156105c457fe5b60ff16815260200197505050505050505060405180910390f35b34156105e957600080fd5b61015f67ffffffffffffffff60043516611360565b604051901515815260200160405180910390f35b341561061d57600080fd5b610625611424565b604051600160a060020a03909116815260200160405180910390f35b341561064c57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611433915050565b005b600180548082016106dd8382611766565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561075757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161079d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b60008061089f83611528565b905060005b815460ff1660028111156108b457fe5b14156108c3576000915061094b565b60025b815460ff1660028111156108d657fe5b146108dd57fe5b6002810154608060020a900460ff16156108fa576001915061094b565b600281015468010000000000000000900467ffffffffffffffff161515610924576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16610893565b91505b50919050565b600061095c86611528565b905060005b815460ff16600281111561097157fe5b1461097b57600080fd5b805433600160a060020a03908116610100909204161461099a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516109cd929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000610a5186611528565b905060015b815460ff166002811115610a6657fe5b14610a7057600080fd5b805433600160a060020a039081166101009092041614610a8f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610ac2929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600054600019015b90565b600080610b51611896565b600080610b5d87611575565b91508160020160018703815481101515610b7357fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba985611528565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b505050505092505b50509250925092565b600080610c79611896565b600080600080610c8888611528565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b600067ffffffffffffffff841615610f3a57610d9a84611528565b905060025b815460ff166002811115610daf57fe5b14610db957600080fd5b805433600160a060020a039081166101009092041614610dd857600080fd5b6014610f308260e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b10610f3a57600080fd5b5b60018054808201610f4c8382611766565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c905267ffffffffffffffff808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115610fc757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161100d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600154600019015b90565b600180548082016111228382611766565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561119c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111e2929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b6000806000806000806000806112ed89611575565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061136c83611528565b90506000915061094b565b815460ff16600281111561138757fe5b1415611396576000915061094b565b60025b815460ff1660028111156113a957fe5b146113b057fe5b6002810154608060020a900460ff16156113cd576001915061094b565b600281015468010000000000000000900467ffffffffffffffff1615156113f7576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16611360565b91505b50919050565b600254600160a060020a031681565b600061143e86611528565b905060025b815460ff16600281111561145357fe5b1461145d57600080fd5b805433600160a060020a03908116610100909204161461147c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114af929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b60015460009067ffffffffffffffff83161061154357600080fd5b6001805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061158e57600080fd5b6000805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115d357fe5b146115da57fe5b826080015167ffffffffffffffff1615156115f8576001915061094b565b6116058360800151611528565b90506109488160e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b91505b50919050565b81548183558181151161088e5760040281600402836000526020600020918201910161088e91906118a8565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b60206040519081016040526000815290565b610b4391905b8082111561181357805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118e16001830182611940565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a03191690556004016118ae565b5090565b90565b610b4391905b808211156118135760008155600101611925565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119665750611984565b601f016020900490600052602060002090810190611984919061191f565b5b505600a165627a7a72305820477110ac6414bdb32888c7d5e36d7462d6f756a62c6392ef0f4b6214c6ebf8dd0029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0xf179736622417f9299b89eaf0bb900cb26387051a5a97e4bf78d42c202688ed7" +exports._sha256 = "0x77c892fb78f66f8eed551cd00868529c11b45740648c484403f3dba0a0198efd" diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js index 81f9e45..e8cef32 100644 --- a/build/LiquidPledgingBase.sol.js +++ b/build/LiquidPledgingBase.sol.js @@ -1,10 +1,10 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"onTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c09833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b480620002556000396000f300606060405236156100cd5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e21564881146100d25780632101a6ad1461013f5780633ca05eca146101735780634fd9179a146101fe57806374653bcb1461028957806391090937146102ae5780639834bf2f1461036a578063b9d82bd71461044f578063c40b51fd146104cc578063cb199fa4146104f1578063cb9123ff1461055e578063f5184705146105de578063fbfa77cf14610612578063ff04f7ac14610641575b600080fd5b34156100dd57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506106cc915050565b005b341561014a57600080fd5b61015f67ffffffffffffffff60043516610893565b604051901515815260200160405180910390f35b341561017e57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610951915050565b005b341561020957600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610a46915050565b005b341561029457600080fd5b61029c610b3b565b60405190815260200160405180910390f35b34156102b957600080fd5b6102d167ffffffffffffffff60043516602435610b46565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032d5780820151818401525b602001610314565b50505050905090810190601f16801561035a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037557600080fd5b61038a67ffffffffffffffff60043516610c6e565b6040518087600281111561039a57fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040f5780820151818401525b6020016103f6565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045a57600080fd5b61013d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d7f9050565b005b34156104d757600080fd5b61029c611106565b60405190815260200160405180910390f35b34156104fc57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611111915050565b005b341561056957600080fd5b61057e67ffffffffffffffff600435166112d8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156105c457fe5b60ff16815260200197505050505050505060405180910390f35b34156105e957600080fd5b61015f67ffffffffffffffff60043516611360565b604051901515815260200160405180910390f35b341561061d57600080fd5b610625611424565b604051600160a060020a03909116815260200160405180910390f35b341561064c57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611433915050565b005b600180548082016106dd8382611766565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561075757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161079d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b60008061089f83611528565b905060005b815460ff1660028111156108b457fe5b14156108c3576000915061094b565b60025b815460ff1660028111156108d657fe5b146108dd57fe5b6002810154608060020a900460ff16156108fa576001915061094b565b600281015468010000000000000000900467ffffffffffffffff161515610924576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16610893565b91505b50919050565b600061095c86611528565b905060005b815460ff16600281111561097157fe5b1461097b57600080fd5b805433600160a060020a03908116610100909204161461099a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516109cd929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000610a5186611528565b905060015b815460ff166002811115610a6657fe5b14610a7057600080fd5b805433600160a060020a039081166101009092041614610a8f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610ac2929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600054600019015b90565b600080610b51611896565b600080610b5d87611575565b91508160020160018703815481101515610b7357fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba985611528565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b505050505092505b50509250925092565b600080610c79611896565b600080600080610c8888611528565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b600067ffffffffffffffff841615610f3a57610d9a84611528565b905060025b815460ff166002811115610daf57fe5b14610db957600080fd5b805433600160a060020a039081166101009092041614610dd857600080fd5b6014610f308260e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b10610f3a57600080fd5b5b60018054808201610f4c8382611766565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c905267ffffffffffffffff808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115610fc757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161100d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600154600019015b90565b600180548082016111228382611766565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561119c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111e2929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b6000806000806000806000806112ed89611575565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061136c83611528565b90506000915061094b565b815460ff16600281111561138757fe5b1415611396576000915061094b565b60025b815460ff1660028111156113a957fe5b146113b057fe5b6002810154608060020a900460ff16156113cd576001915061094b565b600281015468010000000000000000900467ffffffffffffffff1615156113f7576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16611360565b91505b50919050565b600254600160a060020a031681565b600061143e86611528565b905060025b815460ff16600281111561145357fe5b1461145d57600080fd5b805433600160a060020a03908116610100909204161461147c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114af929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b60015460009067ffffffffffffffff83161061154357600080fd5b6001805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061158e57600080fd5b6000805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115d357fe5b146115da57fe5b826080015167ffffffffffffffff1615156115f8576001915061094b565b6116058360800151611528565b90506109488160e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b91505b50919050565b81548183558181151161088e5760040281600402836000526020600020918201910161088e91906118a8565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b60206040519081016040526000815290565b610b4391905b8082111561181357805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118e16001830182611940565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a03191690556004016118ae565b5090565b90565b610b4391905b808211156118135760008155600101611925565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119665750611984565b601f016020900490600052602060002090810190611984919061191f565b5b505600a165627a7a72305820240fcbfc6533fba916740024145d031c460cacefbb6223ab66f275105f3850950029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c09833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b480620002556000396000f300606060405236156100cd5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e21564881146100d25780632101a6ad1461013f5780633ca05eca146101735780634fd9179a146101fe57806374653bcb1461028957806391090937146102ae5780639834bf2f1461036a578063b9d82bd71461044f578063c40b51fd146104cc578063cb199fa4146104f1578063cb9123ff1461055e578063f5184705146105de578063fbfa77cf14610612578063ff04f7ac14610641575b600080fd5b34156100dd57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506106cc915050565b005b341561014a57600080fd5b61015f67ffffffffffffffff60043516610893565b604051901515815260200160405180910390f35b341561017e57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610951915050565b005b341561020957600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610a46915050565b005b341561029457600080fd5b61029c610b3b565b60405190815260200160405180910390f35b34156102b957600080fd5b6102d167ffffffffffffffff60043516602435610b46565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032d5780820151818401525b602001610314565b50505050905090810190601f16801561035a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037557600080fd5b61038a67ffffffffffffffff60043516610c6e565b6040518087600281111561039a57fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040f5780820151818401525b6020016103f6565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045a57600080fd5b61013d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d7f9050565b005b34156104d757600080fd5b61029c611106565b60405190815260200160405180910390f35b34156104fc57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611111915050565b005b341561056957600080fd5b61057e67ffffffffffffffff600435166112d8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156105c457fe5b60ff16815260200197505050505050505060405180910390f35b34156105e957600080fd5b61015f67ffffffffffffffff60043516611360565b604051901515815260200160405180910390f35b341561061d57600080fd5b610625611424565b604051600160a060020a03909116815260200160405180910390f35b341561064c57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611433915050565b005b600180548082016106dd8382611766565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561075757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161079d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b60008061089f83611528565b905060005b815460ff1660028111156108b457fe5b14156108c3576000915061094b565b60025b815460ff1660028111156108d657fe5b146108dd57fe5b6002810154608060020a900460ff16156108fa576001915061094b565b600281015468010000000000000000900467ffffffffffffffff161515610924576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16610893565b91505b50919050565b600061095c86611528565b905060005b815460ff16600281111561097157fe5b1461097b57600080fd5b805433600160a060020a03908116610100909204161461099a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516109cd929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000610a5186611528565b905060015b815460ff166002811115610a6657fe5b14610a7057600080fd5b805433600160a060020a039081166101009092041614610a8f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610ac2929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600054600019015b90565b600080610b51611896565b600080610b5d87611575565b91508160020160018703815481101515610b7357fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba985611528565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b505050505092505b50509250925092565b600080610c79611896565b600080600080610c8888611528565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b600067ffffffffffffffff841615610f3a57610d9a84611528565b905060025b815460ff166002811115610daf57fe5b14610db957600080fd5b805433600160a060020a039081166101009092041614610dd857600080fd5b6014610f308260e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b10610f3a57600080fd5b5b60018054808201610f4c8382611766565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c905267ffffffffffffffff808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115610fc757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161100d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600154600019015b90565b600180548082016111228382611766565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561119c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111e2929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b6000806000806000806000806112ed89611575565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061136c83611528565b90506000915061094b565b815460ff16600281111561138757fe5b1415611396576000915061094b565b60025b815460ff1660028111156113a957fe5b146113b057fe5b6002810154608060020a900460ff16156113cd576001915061094b565b600281015468010000000000000000900467ffffffffffffffff1615156113f7576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16611360565b91505b50919050565b600254600160a060020a031681565b600061143e86611528565b905060025b815460ff16600281111561145357fe5b1461145d57600080fd5b805433600160a060020a03908116610100909204161461147c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114af929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b60015460009067ffffffffffffffff83161061154357600080fd5b6001805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061158e57600080fd5b6000805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115d357fe5b146115da57fe5b826080015167ffffffffffffffff1615156115f8576001915061094b565b6116058360800151611528565b90506109488160e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b91505b50919050565b81548183558181151161088e5760040281600402836000526020600020918201910161088e91906118a8565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b60206040519081016040526000815290565b610b4391905b8082111561181357805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118e16001830182611940565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a03191690556004016118ae565b5090565b90565b610b4391905b808211156118135760008155600101611925565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119665750611984565b601f016020900490600052602060002090810190611984919061191f565b5b505600a165627a7a72305820359cd01684f9d5082301c3e4c91bac34ea0be5aea1fec19a35fa72474265ddec0029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0xc20453e0eb7da8a7c777bb9492267675f811dbb5d1113dee8807957465c79303" +exports._sha256 = "0x81bb1c1f2e069b73266cb9ef677e5b89f44884e7bc029faf42ad5954658f60fc" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol index 3731172..cccf513 100644 --- a/build/LiquidPledgingBase_all.sol +++ b/build/LiquidPledgingBase_all.sol @@ -16,7 +16,8 @@ contract ILiquidPledgingPlugin { /// 258 -> Second delegate to /// ... /// 511 -> proposedProject to - function onTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); } //File: ./contracts/LiquidPledgingBase.sol diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index ef61a63..d2e3cd5 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -1,14 +1,14 @@ /* This is an autogenerated file. DO NOT EDIT MANUALLY */ -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"onTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"notesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062003f3a833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000249565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200013c565b5b505050565b6200013991905b8082111562000135578054600160a860020a03191681556000620001076001830182620001ae565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000df565b5090565b90565b6200013991905b808211156200013557600080825560018201805467ffffffffffffffff19169055620001736002830182620001fa565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000143565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d65750620001f6565b601f016020900490600052602060002090810190620001f6919062000225565b5b50565b508054600082556003016004900490600052602060002090810190620001f6919062000225565b5b50565b6200013991905b808211156200013557600081556001016200022c565b5090565b90565b613ce180620002596000396000f300606060405236156101225763ffffffff60e060020a6000350416631e21564881146101275780632101a6ad146101935780632ee88808146101c65780633ca05eca146101ea578063433879831461027357806347c5ef43146102975780634fd9179a146102c857806357adafb61461035157806374653bcb146103a2578063796d5654146103c757806391090937146103e85780639398f5a2146104a25780639834bf2f146104f3578063b9d82bd7146105d6578063bde60ac914610652578063c40b51fd1461066e578063cb199fa414610693578063cb9123ff146106ff578063d639cd731461077d578063e9c211e2146107e7578063ef3766e41461080b578063f51847051461085c578063fbfa77cf1461088f578063ff04f7ac146108be575b600080fd5b341561013257600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610947915050565b005b341561019e57600080fd5b6101b26001604060020a0360043516610b09565b604051901515815260200160405180910390f35b34156101d157600080fd5b6101916001604060020a0360043516602435610bbb565b005b34156101f557600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610d01915050565b005b341561027e57600080fd5b6101916001604060020a0360043516602435610df5565b005b34156102a257600080fd5b6101916001604060020a036004358116906024358116906044359060643516610fc7565b005b34156102d357600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611495915050565b005b341561035c57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061158995505050505050565b005b34156103ad57600080fd5b6103b56115fc565b60405190815260200160405180910390f35b34156103d257600080fd5b6101916001604060020a0360043516611607565b005b34156103f357600080fd5b61040a6001604060020a036004351660243561165b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156104655780820151818401525b60200161044c565b50505050905090810190601f1680156104925780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156104ad57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061178295505050505050565b005b34156104fe57600080fd5b6105126001604060020a03600435166117f5565b6040518087600281111561052257fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156105965780820151818401525b60200161057d565b50505050905090810190601f1680156105c35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34156105e157600080fd5b61019160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506119009050565b005b6101916001604060020a0360043581169060243516611c7b565b005b341561067957600080fd5b6103b5611da2565b60405190815260200160405180910390f35b341561069e57600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611dad915050565b005b341561070a57600080fd5b61071e6001604060020a0360043516611f6f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561076357fe5b60ff16815260200197505050505050505060405180910390f35b341561078857600080fd5b610191600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250611fdc915050565b005b34156107f257600080fd5b6101916001604060020a0360043516602435612053565b005b341561081657600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b005b341561086757600080fd5b6101b26001604060020a03600435166121f0565b604051901515815260200160405180910390f35b341561089a57600080fd5b6108a26122a8565b604051600160a060020a03909116815260200160405180910390f35b34156108c957600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506122b7915050565b005b6001805480820161095883826138db565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff191660018360028111156109d157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610a1792916020019061390d565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b600080610b15836123ab565b905060005b815460ff166002811115610b2a57fe5b1415610b395760009150610bb5565b60025b815460ff166002811115610b4c57fe5b14610b5357fe5b6002810154608060020a900460ff1615610b705760019150610bb5565b6002810154604060020a90046001604060020a03161515610b945760009150610bb5565b6002810154610bb290604060020a90046001604060020a0316610b09565b91505b50919050565b600254600090819033600160a060020a03908116911614610bdb57600080fd5b610be4846123f6565b915060015b600383015460c060020a900460ff166002811115610c0357fe5b14610c0d57600080fd5b836001604060020a0316610c208561243f565b6001604060020a031614610c3357600080fd5b6001820154600283018054610cec926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610cc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610c835790505b505050506003860154600091508190608060020a90046001604060020a03166002612509565b9050610cf98482856127fb565b5b5b50505050565b6000610d0c866123ab565b905060005b815460ff166002811115610d2157fe5b14610d2b57600080fd5b805433600160a060020a039081166101009092041614610d4a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610d7d92916020019061390d565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000806000610e03856128b5565b9450610e0e856123f6565b925060005b600384015460c060020a900460ff166002811115610e2d57fe5b14610e3757600080fd5b6001830154610e4e906001604060020a03166123ab565b805490925033600160a060020a039081166101009092041614610e7057600080fd5b6001830154600284018054610f29926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f0357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610ec05790505b505050506003870154600091508190608060020a90046001604060020a03166001612509565b9050610f368582866127fb565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b1515610fab57600080fd5b6102c65a03f11515610fbc57600080fd5b5050505b5050505050565b6000806000806000610fd8886128b5565b9750610fe3886123f6565b9450610fee866123ab565b9350610ff9896123ab565b805490935033600160a060020a03908116610100909204161461101b57600080fd5b60005b600386015460c060020a900460ff16600281111561103857fe5b1461104257600080fd5b60018501546001604060020a038a8116911614156110df5760005b845460ff16600281111561106d57fe5b14156110835761107e888888612a81565b6110d7565b60025b845460ff16600281111561109657fe5b14156110ac5761107e888888612ad4565b6110d7565b60015b845460ff1660028111156110bf57fe5b14156110d55761107e888888612d20565b6110d7565bfe5b5b5b5b611489565b6112108560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156111a957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156111fc57fe5b600281111561120757fe5b9052508a612e54565b6001604060020a03908116925082146110d55760005b845460ff16600281111561123657fe5b141561126c5760018501546001604060020a0387811691161461125557fe5b6110d788888760020180549050612ebb565b611489565b60015b845460ff16600281111561127f57fe5b1415611446576113b68560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561134f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161130c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156113a257fe5b60028111156113ad57fe5b90525087612e54565b6001604060020a0390811691508114156113f1576113e1888860018589600201805490500303612ebb565b61107e888888612d20565b6110d7565b81811115611420576113e1888860018589600201805490500303612ebb565b61107e888888612d20565b6110d7565b8181116110d7576110d7888860018489600201805490500303612ebb565b5b5b5b611489565b60025b845460ff16600281111561145957fe5b14156110d557611476888860018589600201805490500303612ebb565b6110d7888888612fc1565b611489565b5bfe5b5b505050505050505050565b60006114a0866123ab565b905060015b815460ff1660028111156114b557fe5b146114bf57600080fd5b805433600160a060020a0390811661010090920416146114de57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161151192916020019061390d565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8351831015610cf9576001604060020a038484815181106115ab57fe5b90602001906020020151169150604060020a8484815181106115c957fe5b906020019060200201518115156115dc57fe5b0490506115e98282610df5565b5b60019092019161158e565b5b50505050565b600054600019015b90565b6000611612826123ab565b805490915033600160a060020a03908116610100909204161461163457600080fd5b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b600080611666613a0b565b600080611672876123f6565b9150816002016001870381548110151561168857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031694506116bd856123ab565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117715780601f1061174657610100808354040283529160200191611771565b820191906000526020600020905b81548152906001019060200180831161175457829003601f168201915b505050505092505b50509250925092565b600080805b8351831015610cf9576001604060020a038484815181106117a457fe5b90602001906020020151169150604060020a8484815181106117c257fe5b906020019060200201518115156117d557fe5b0490506117e28282610bbb565b5b600190920191611787565b5b50505050565b600080611800613a0b565b60008060008061180f886123ab565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156118c55780601f1061189a576101008083540402835291602001916118c5565b820191906000526020600020905b8154815290600101906020018083116118a857829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b60006001604060020a03841615611ab45761191a846123ab565b905060025b815460ff16600281111561192f57fe5b1461193957600080fd5b805433600160a060020a03908116610100909204161461195857600080fd5b6014611aaa8260e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613310565b10611ab457600080fd5b5b60018054808201611ac683826138db565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c90526001604060020a03808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115611b4057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611b8692916020019061390d565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600080600080611c8a866123ab565b935060005b845460ff166002811115611c9f57fe5b14611ca957600080fd5b835433600160a060020a039081166101009092041614611cc857600080fd5b34925060008311611cd857600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d0b57600080fd5b611d3b866000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9150611d46826123f6565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3610ded86838588610fc7565b5b505050505050565b600154600019015b90565b60018054808201611dbe83826138db565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115611e3757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e7d92916020019061390d565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b600080600080600080600080611f84896123f6565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015610ded576001604060020a03858481518110611ffe57fe5b90602001906020020151169150604060020a85848151811061201c57fe5b9060200190602002015181151561202f57fe5b04905061203e86838387610fc7565b5b600190920191611fe1565b5b505050505050565b600254600090819033600160a060020a0390811691161461207357600080fd5b61207c846123f6565b915060015b600383015460c060020a900460ff16600281111561209b57fe5b146120a557600080fd5b600182015460028301805461215d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561213857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116120f55790505b505050506003860154600091508190608060020a90046001604060020a031681612509565b9050610cec816128b5565b9050610cf98482856127fb565b5b5b50505050565b600080805b8351831015610cf9576001604060020a0384848151811061219f57fe5b90602001906020020151169150604060020a8484815181106121bd57fe5b906020019060200201518115156121d057fe5b0490506121dd8282612053565b5b600190920191612182565b5b50505050565b6000806121fc836123ab565b905060009150610bb5565b815460ff16600281111561221757fe5b14156122265760009150610bb5565b60025b815460ff16600281111561223957fe5b1461224057fe5b6002810154608060020a900460ff161561225d5760019150610bb5565b6002810154604060020a90046001604060020a031615156122815760009150610bb5565b6002810154610bb290604060020a90046001604060020a03166121f0565b91505b50919050565b600254600160a060020a031681565b60006122c2866123ab565b905060025b815460ff1660028111156122d757fe5b146122e157600080fd5b805433600160a060020a03908116610100909204161461230057600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161233392916020019061390d565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b6001546000906001604060020a038316106123c557600080fd5b600180546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a0383161061240e57600080fd5b600080546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080806001604060020a038416151561245c5760009250612502565b612465846123f6565b600181015490925061247f906001604060020a03166123ab565b905060005b815460ff16600281111561249457fe5b14156124a257839250612502565b60025b815460ff1660028111156124b557fe5b146124bc57fe5b60018201546124d3906001604060020a0316610b09565b15156124e157839250612502565b60038201546124ff90608060020a90046001604060020a031661243f565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156125575780820151818401525b60200161253e565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156125c457fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561262d578092506127ef565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a03831617905581549091906001810161266b8382613a1d565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156126dd57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612728929160200190613a4f565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156127e357fe5b02179055505050508092505b50509695505050505050565b600080600061280b8686866134af565b9250846001604060020a0316866001604060020a0316141561282c57610ded565b82151561283857610ded565b612841866123f6565b915061284c856123f6565b82549091508390101561285e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a35b505050505050565b6000806000806128c4856123f6565b925060005b600384015460c060020a900460ff1660028111156128e357fe5b146128f057849350612a79565b600383015460006001604060020a0390911611801561292957506003830154604060020a90046001604060020a03166129276134d4565b115b15612a475760018301546002840180546129e6926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129c157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161297e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b6003840154909250612a27906001604060020a03166000604051805910612a0a5750595b908082528060200260200182016040525b50600080866000612509565b9050612a38858285600001546127fb565b809450612a44856123f6565b92505b612a508561243f565b90506001604060020a0380821690861614612a7457612a74858285600001546127fb565b5b8093505b505050919050565b600080612a8d856123f6565b9150612abf836000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9050610fc08582866127fb565b5b5050505050565b6000806000612ae2866123f6565b92506014612c168460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b6d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0357fe5b6002811115612c0e57fe5b9052506134d9565b10612c2057600080fd5b6001830154600284018054612cd8926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129c157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161297e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b9150612d0a846000604051805910612a0a5750595b908082528060200260200182016040525b50600080866000612509565b9050610ded8682876127fb565b5b505050505050565b6000612d2a613a0b565b600080612d36876123f6565b600281015490945060149010612d4b57600080fd5b6002840154600101604051805910612d605750595b908082528060200260200182016040525b509250600091505b6002840154821015612dee5760028401805483908110612d9557fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612dcb57fe5b6001604060020a039092166020928302909101909101525b600190910190612d79565b60028401548590849081518110612e0157fe5b6001604060020a039283166020918202909201015260018501546003860154612e3d929182169186916000918291608060020a90041681612509565b9050612e4a8782886127fb565b5b50505050505050565b6000805b836040015151811015612ea957826001604060020a031684604001518281518110612e7f57fe5b906020019060200201516001604060020a03161415612ea057809150612eb4565b5b600101612e58565b6001604060020a0391505b5092915050565b6000612ec5613a0b565b600080612ed1876123f6565b6002810154909450859003604051805910612ee95750595b908082528060200260200182016040525b509250600091505b6002840154859003821015612f7a5760028401805483908110612f2157fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612f5757fe5b6001604060020a039092166020928302909101909101525b600190910190612f02565b60018401546003850154612e3d916001604060020a039081169186916000918291608060020a9091041681612509565b9050612e4a8782886127fb565b5b50505050505050565b600080612fcd856123f6565b915060146131018360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b6d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0357fe5b6002811115612c0e57fe5b9052506134d9565b1061310b57600080fd5b6001820154600283018054612abf926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561319e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161315b5790505b5050505050856132d48660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561326e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161322b5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156132c157fe5b60028111156132cc57fe5b905250613644565b6132dc6134d4565b6003880154910190608060020a90046001604060020a03166000612509565b9050610fc08582866127fb565b5b5050505050565b60008060025b8351600281111561332357fe5b1461332a57fe5b82608001516001604060020a031615156133475760019150610bb5565b61335483608001516123ab565b9050610bb28160e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613310565b91505b50919050565b806134bc848085846136d7565b90506134ca838585846136d7565b90505b9392505050565b425b90565b6000808260a001516001604060020a031615156134f95760009150610bb5565b6135068360a001516123f6565b90506136388160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b6d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0357fe5b6002811115612c0e57fe5b9052506134d9565b60010191505b50919050565b600080600061365684602001516123ab565b60028101546001604060020a031693509150600090505b8360400151518110156125025761369c8460400151828151811061368d57fe5b906020019060200201516123ab565b60028101549092506001604060020a0316839011156136c65760028201546001604060020a031692505b5b60010161366d565b5b5050919050565b600080600080866001604060020a0316886001604060020a0316146136fe57610100613701565b60005b61ffff169250849350613713886123f6565b6001810154909250613731906001604060020a0316888886886137f2565b9350600090505b60028201546001604060020a03821610156137ad576137a282600201826001604060020a031681548110151561376a57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168888848701600101886137f2565b93505b600101613738565b600382015460006001604060020a0390911611156137e65760038201546137e3906001604060020a0316888860ff8701886137f2565b93505b5b505050949350505050565b806000806137ff886123ab565b6003810154909250600160a060020a03161580159061381e5750600083115b156138cf576003820154600160a060020a031663a4947a7e898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b15156138a257600080fd5b6102c65a03f115156138b357600080fd5b5050506040518051915050828111156138cb57600080fd5b8092505b5b505095945050505050565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613b19565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061394e57805160ff191683800117855561397b565b8280016001018555821561397b579182015b8281111561397b578251825591602001919060010190613960565b5b50613988929150613b90565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061394e57805160ff191683800117855561397b565b8280016001018555821561397b579182015b8281111561397b578251825591602001919060010190613960565b5b50613988929150613b90565b5090565b60206040519081016040526000815290565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613bb1565b5b505050565b82805482825590600052602060002090600301600490048101928215613af75791602002820160005b83821115613ac257835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613a78565b8015613af55782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ac2565b505b50613988929150613c18565b5090565b60206040519081016040526000815290565b61160491905b8082111561398857805474ffffffffffffffffffffffffffffffffffffffffff191681556000613b526001830182613c44565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a0319169055600401613b1f565b5090565b90565b61160491905b808211156139885760008155600101613b96565b5090565b90565b61160491905b8082111561398857600080825560018201805467ffffffffffffffff19169055613be46002830182613c8c565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613bb7565b5090565b90565b61160491905b8082111561398857805467ffffffffffffffff19168155600101613c1e565b5090565b90565b50805460018160011615610100020316600290046000825580601f10613c6a5750613c88565b601f016020900490600052602060002090810190613c889190613b90565b5b50565b508054600082556003016004900490600052602060002090810190613c889190613b90565b5b505600a165627a7a723058203d018c88cec2d8b85d701e02b8b9d678e14d997afddc919bca53f1dd1a2042fd0029" +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062003fdd833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000249565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200013c565b5b505050565b6200013991905b8082111562000135578054600160a860020a03191681556000620001076001830182620001ae565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000df565b5090565b90565b6200013991905b808211156200013557600080825560018201805467ffffffffffffffff19169055620001736002830182620001fa565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000143565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d65750620001f6565b601f016020900490600052602060002090810190620001f6919062000225565b5b50565b508054600082556003016004900490600052602060002090810190620001f6919062000225565b5b50565b6200013991905b808211156200013557600081556001016200022c565b5090565b90565b613d8480620002596000396000f300606060405236156101225763ffffffff60e060020a6000350416631e21564881146101275780632101a6ad146101935780632ee88808146101c65780633ca05eca146101ea578063433879831461027357806347c5ef43146102975780634fd9179a146102c857806357adafb61461035157806374653bcb146103a2578063796d5654146103c757806391090937146103e85780639398f5a2146104a25780639834bf2f146104f3578063b9d82bd7146105d6578063bde60ac914610652578063c40b51fd1461066e578063cb199fa414610693578063cb9123ff146106ff578063d639cd731461077d578063e9c211e2146107e7578063ef3766e41461080b578063f51847051461085c578063fbfa77cf1461088f578063ff04f7ac146108be575b600080fd5b341561013257600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610947915050565b005b341561019e57600080fd5b6101b26001604060020a0360043516610b09565b604051901515815260200160405180910390f35b34156101d157600080fd5b6101916001604060020a0360043516602435610bbb565b005b34156101f557600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610d01915050565b005b341561027e57600080fd5b6101916001604060020a0360043516602435610df5565b005b34156102a257600080fd5b6101916001604060020a036004358116906024358116906044359060643516610fc7565b005b34156102d357600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611495915050565b005b341561035c57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061158995505050505050565b005b34156103ad57600080fd5b6103b56115fc565b60405190815260200160405180910390f35b34156103d257600080fd5b6101916001604060020a0360043516611607565b005b34156103f357600080fd5b61040a6001604060020a036004351660243561165b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156104655780820151818401525b60200161044c565b50505050905090810190601f1680156104925780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156104ad57600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061178295505050505050565b005b34156104fe57600080fd5b6105126001604060020a03600435166117f5565b6040518087600281111561052257fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156105965780820151818401525b60200161057d565b50505050905090810190601f1680156105c35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34156105e157600080fd5b61019160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506119009050565b005b6101916001604060020a0360043581169060243516611c7b565b005b341561067957600080fd5b6103b5611da2565b60405190815260200160405180910390f35b341561069e57600080fd5b61019160046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611dad915050565b005b341561070a57600080fd5b61071e6001604060020a0360043516611f6f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561076357fe5b60ff16815260200197505050505050505060405180910390f35b341561078857600080fd5b610191600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250611fdc915050565b005b34156107f257600080fd5b6101916001604060020a0360043516602435612053565b005b341561081657600080fd5b610191600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b005b341561086757600080fd5b6101b26001604060020a03600435166121f0565b604051901515815260200160405180910390f35b341561089a57600080fd5b6108a26122a8565b604051600160a060020a03909116815260200160405180910390f35b34156108c957600080fd5b610191600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506122b7915050565b005b60018054808201610958838261397e565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff191660018360028111156109d157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610a179291602001906139b0565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b600080610b15836123ab565b905060005b815460ff166002811115610b2a57fe5b1415610b395760009150610bb5565b60025b815460ff166002811115610b4c57fe5b14610b5357fe5b6002810154608060020a900460ff1615610b705760019150610bb5565b6002810154604060020a90046001604060020a03161515610b945760009150610bb5565b6002810154610bb290604060020a90046001604060020a0316610b09565b91505b50919050565b600254600090819033600160a060020a03908116911614610bdb57600080fd5b610be4846123f6565b915060015b600383015460c060020a900460ff166002811115610c0357fe5b14610c0d57600080fd5b836001604060020a0316610c208561243f565b6001604060020a031614610c3357600080fd5b6001820154600283018054610cec926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610cc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610c835790505b505050506003860154600091508190608060020a90046001604060020a03166002612509565b9050610cf98482856127fb565b5b5b50505050565b6000610d0c866123ab565b905060005b815460ff166002811115610d2157fe5b14610d2b57600080fd5b805433600160a060020a039081166101009092041614610d4a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610d7d9291602001906139b0565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000806000610e03856128c5565b9450610e0e856123f6565b925060005b600384015460c060020a900460ff166002811115610e2d57fe5b14610e3757600080fd5b6001830154610e4e906001604060020a03166123ab565b805490925033600160a060020a039081166101009092041614610e7057600080fd5b6001830154600284018054610f29926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f0357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610ec05790505b505050506003870154600091508190608060020a90046001604060020a03166001612509565b9050610f368582866127fb565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b1515610fab57600080fd5b6102c65a03f11515610fbc57600080fd5b5050505b5050505050565b6000806000806000610fd8886128c5565b9750610fe3886123f6565b9450610fee866123ab565b9350610ff9896123ab565b805490935033600160a060020a03908116610100909204161461101b57600080fd5b60005b600386015460c060020a900460ff16600281111561103857fe5b1461104257600080fd5b60018501546001604060020a038a8116911614156110df5760005b845460ff16600281111561106d57fe5b14156110835761107e888888612a91565b6110d7565b60025b845460ff16600281111561109657fe5b14156110ac5761107e888888612ad7565b6110d7565b60015b845460ff1660028111156110bf57fe5b14156110d55761107e888888612d23565b6110d7565bfe5b5b5b5b611489565b6112108560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156111a957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111665790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156111fc57fe5b600281111561120757fe5b9052508a612e57565b6001604060020a03908116925082146110d55760005b845460ff16600281111561123657fe5b141561126c5760018501546001604060020a0387811691161461125557fe5b6110d788888760020180549050612ebe565b611489565b60015b845460ff16600281111561127f57fe5b1415611446576113b68560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561134f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161130c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156113a257fe5b60028111156113ad57fe5b90525087612e57565b6001604060020a0390811691508114156113f1576113e1888860018589600201805490500303612ebe565b61107e888888612d23565b6110d7565b81811115611420576113e1888860018589600201805490500303612ebe565b61107e888888612d23565b6110d7565b8181116110d7576110d7888860018489600201805490500303612ebe565b5b5b5b611489565b60025b845460ff16600281111561145957fe5b14156110d557611476888860018589600201805490500303612ebe565b6110d7888888612fc4565b611489565b5bfe5b5b505050505050505050565b60006114a0866123ab565b905060015b815460ff1660028111156114b557fe5b146114bf57600080fd5b805433600160a060020a0390811661010090920416146114de57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516115119291602001906139b0565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8351831015610cf9576001604060020a038484815181106115ab57fe5b90602001906020020151169150604060020a8484815181106115c957fe5b906020019060200201518115156115dc57fe5b0490506115e98282610df5565b5b60019092019161158e565b5b50505050565b600054600019015b90565b6000611612826123ab565b805490915033600160a060020a03908116610100909204161461163457600080fd5b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b600080611666613aae565b600080611672876123f6565b9150816002016001870381548110151561168857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031694506116bd856123ab565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117715780601f1061174657610100808354040283529160200191611771565b820191906000526020600020905b81548152906001019060200180831161175457829003601f168201915b505050505092505b50509250925092565b600080805b8351831015610cf9576001604060020a038484815181106117a457fe5b90602001906020020151169150604060020a8484815181106117c257fe5b906020019060200201518115156117d557fe5b0490506117e28282610bbb565b5b600190920191611787565b5b50505050565b600080611800613aae565b60008060008061180f886123ab565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156118c55780601f1061189a576101008083540402835291602001916118c5565b820191906000526020600020905b8154815290600101906020018083116118a857829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b60006001604060020a03841615611ab45761191a846123ab565b905060025b815460ff16600281111561192f57fe5b1461193957600080fd5b805433600160a060020a03908116610100909204161461195857600080fd5b6014611aaa8260e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613313565b10611ab457600080fd5b5b60018054808201611ac6838261397e565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c90526001604060020a03808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115611b4057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611b869291602001906139b0565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600080600080611c8a866123ab565b935060005b845460ff166002811115611c9f57fe5b14611ca957600080fd5b835433600160a060020a039081166101009092041614611cc857600080fd5b34925060008311611cd857600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d0b57600080fd5b611d3b866000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9150611d46826123f6565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3610ded86838588610fc7565b5b505050505050565b600154600019015b90565b60018054808201611dbe838261397e565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115611e3757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e7d9291602001906139b0565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b600080600080600080600080611f84896123f6565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015610ded576001604060020a03858481518110611ffe57fe5b90602001906020020151169150604060020a85848151811061201c57fe5b9060200190602002015181151561202f57fe5b04905061203e86838387610fc7565b5b600190920191611fe1565b5b505050505050565b600254600090819033600160a060020a0390811691161461207357600080fd5b61207c846123f6565b915060015b600383015460c060020a900460ff16600281111561209b57fe5b146120a557600080fd5b600182015460028301805461215d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561213857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116120f55790505b505050506003860154600091508190608060020a90046001604060020a031681612509565b9050610cec816128c5565b9050610cf98482856127fb565b5b5b50505050565b600080805b8351831015610cf9576001604060020a0384848151811061219f57fe5b90602001906020020151169150604060020a8484815181106121bd57fe5b906020019060200201518115156121d057fe5b0490506121dd8282612053565b5b600190920191612182565b5b50505050565b6000806121fc836123ab565b905060009150610bb5565b815460ff16600281111561221757fe5b14156122265760009150610bb5565b60025b815460ff16600281111561223957fe5b1461224057fe5b6002810154608060020a900460ff161561225d5760019150610bb5565b6002810154604060020a90046001604060020a031615156122815760009150610bb5565b6002810154610bb290604060020a90046001604060020a03166121f0565b91505b50919050565b600254600160a060020a031681565b60006122c2866123ab565b905060025b815460ff1660028111156122d757fe5b146122e157600080fd5b805433600160a060020a03908116610100909204161461230057600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516123339291602001906139b0565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b6001546000906001604060020a038316106123c557600080fd5b600180546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a0383161061240e57600080fd5b600080546001604060020a0384169081106123dc57fe5b906000526020600020906004020160005b5090505b919050565b600080806001604060020a038416151561245c5760009250612502565b612465846123f6565b600181015490925061247f906001604060020a03166123ab565b905060005b815460ff16600281111561249457fe5b14156124a257839250612502565b60025b815460ff1660028111156124b557fe5b146124bc57fe5b60018201546124d3906001604060020a0316610b09565b15156124e157839250612502565b60038201546124ff90608060020a90046001604060020a031661243f565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156125575780820151818401525b60200161253e565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156125c457fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561262d578092506127ef565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a03831617905581549091906001810161266b8382613ac0565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156126dd57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612728929160200190613af2565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156127e357fe5b02179055505050508092505b50509695505050505050565b600080600061280d60018787876134b2565b9250846001604060020a0316866001604060020a0316141561282e57610ded565b82151561283a57610ded565b612843866123f6565b915061284e856123f6565b82549091508390101561286057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36128bb60008787866134b2565b505b505050505050565b6000806000806128d4856123f6565b925060005b600384015460c060020a900460ff1660028111156128f357fe5b1461290057849350612a89565b600383015460006001604060020a0390911611801561293957506003830154604060020a90046001604060020a03166129376134da565b115b15612a575760018301546002840180546129f6926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129d157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161298e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b6003840154909250612a37906001604060020a03166000604051805910612a1a5750595b908082528060200260200182016040525b50600080866000612509565b9050612a48858285600001546127fb565b809450612a54856123f6565b92505b612a608561243f565b90506001604060020a0380821690861614612a8457612a84858285600001546127fb565b5b8093505b505050919050565b6000610cec826000604051805910611d1e5750595b908082528060200260200182016040525b50600080600080612509565b9050610cf98482856127fb565b5b50505050565b6000806000612ae5866123f6565b92506014612c198460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b705790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0657fe5b6002811115612c1157fe5b9052506134df565b10612c2357600080fd5b6001830154600284018054612cdb926001604060020a031691906020808202016040519081016040528092919081815260200182805480156129d157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161298e5790505b505050506003870154600091508190608060020a90046001604060020a031681612509565b9150612d0d846000604051805910612a1a5750595b908082528060200260200182016040525b50600080866000612509565b9050610ded8682876127fb565b5b505050505050565b6000612d2d613aae565b600080612d39876123f6565b600281015490945060149010612d4e57600080fd5b6002840154600101604051805910612d635750595b908082528060200260200182016040525b509250600091505b6002840154821015612df15760028401805483908110612d9857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612dce57fe5b6001604060020a039092166020928302909101909101525b600190910190612d7c565b60028401548590849081518110612e0457fe5b6001604060020a039283166020918202909201015260018501546003860154612e40929182169186916000918291608060020a90041681612509565b90506128bb8782886127fb565b5b50505050505050565b6000805b836040015151811015612eac57826001604060020a031684604001518281518110612e8257fe5b906020019060200201516001604060020a03161415612ea357809150612eb7565b5b600101612e5b565b6001604060020a0391505b5092915050565b6000612ec8613aae565b600080612ed4876123f6565b6002810154909450859003604051805910612eec5750595b908082528060200260200182016040525b509250600091505b6002840154859003821015612f7d5760028401805483908110612f2457fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612f5a57fe5b6001604060020a039092166020928302909101909101525b600190910190612f05565b60018401546003850154612e40916001604060020a039081169186916000918291608060020a9091041681612509565b90506128bb8782886127fb565b5b50505050505050565b600080612fd0856123f6565b915060146131048360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b705790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0657fe5b6002811115612c1157fe5b9052506134df565b1061310e57600080fd5b60018201546002830180546132fe926001604060020a031691906020808202016040519081016040528092919081815260200182805480156131a157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161315e5790505b5050505050856132d78660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561327157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161322e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156132c457fe5b60028111156132cf57fe5b90525061364a565b6132df6134da565b6003880154910190608060020a90046001604060020a03166000612509565b9050610fc08582866127fb565b5b5050505050565b60008060025b8351600281111561332657fe5b1461332d57fe5b82608001516001604060020a0316151561334a5760019150610bb5565b61335783608001516123ab565b9050610bb28160e06040519081016040528154909190829060ff16600281111561197e57fe5b600281111561198957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a555780601f10611a2a57610100808354040283529160200191611a55565b820191906000526020600020905b815481529060010190602001808311611a3857829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613313565b91505b50919050565b806134c085858086856136dd565b90506134cf85848686856136dd565b90505b949350505050565b425b90565b6000808260a001516001604060020a031615156134ff5760009150610bb5565b61350c8360a001516123f6565b905061363e8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612bb357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b705790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c0657fe5b6002811115612c1157fe5b9052506134df565b60010191505b50919050565b600080600061365c84602001516123ab565b60028101546001604060020a031693509150600090505b836040015151811015612502576136a28460400151828151811061369357fe5b906020019060200201516123ab565b60028101549092506001604060020a0316839011156136cc5760028201546001604060020a031692505b5b600101613673565b5b5050919050565b600080600080866001604060020a0316886001604060020a03161461370457610100613707565b60005b61ffff169250849350613719886123f6565b6001810154909250613739908a906001604060020a0316898987896137fe565b9350600090505b60028201546001604060020a03821610156137b6576137ab8983600201836001604060020a031681548110151561377357fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168989858801600101896137fe565b93505b600101613740565b600382015460006001604060020a0390911611156137f15760038201546137ee908a906001604060020a0316898960ff8801896137fe565b93505b5b50505095945050505050565b8060008061380b886123ab565b6003810154909150600160a060020a03161580159061382a5750600083115b156127ef5788156138e5576003810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b15156138b457600080fd5b6102c65a03f115156138c557600080fd5b5050506040518051925050828211156138dd57600080fd5b8192506127ef565b6003810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b151561395b57600080fd5b6102c65a03f1151561396c57600080fd5b5050505b5b5b50509695505050505050565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613bbc565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139f157805160ff1916838001178555613a1e565b82800160010185558215613a1e579182015b82811115613a1e578251825591602001919060010190613a03565b5b50613a2b929150613c33565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139f157805160ff1916838001178555613a1e565b82800160010185558215613a1e579182015b82811115613a1e578251825591602001919060010190613a03565b5b50613a2b929150613c33565b5090565b60206040519081016040526000815290565b815481835581811511610b0457600402816004028360005260206000209182019101610b049190613c54565b5b505050565b82805482825590600052602060002090600301600490048101928215613b9a5791602002820160005b83821115613b6557835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613b1b565b8015613b985782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613b65565b505b50613a2b929150613cbb565b5090565b60206040519081016040526000815290565b61160491905b80821115613a2b57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613bf56001830182613ce7565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a0319169055600401613bc2565b5090565b90565b61160491905b80821115613a2b5760008155600101613c39565b5090565b90565b61160491905b80821115613a2b57600080825560018201805467ffffffffffffffff19169055613c876002830182613d2f565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613c5a565b5090565b90565b61160491905b80821115613a2b57805467ffffffffffffffff19168155600101613cc1565b5090565b90565b50805460018160011615610100020316600290046000825580601f10613d0d5750613d2b565b601f016020900490600052602060002090810190613d2b9190613c33565b5b50565b508054600082556003016004900490600052602060002090810190613d2b9190613c33565b5b505600a165627a7a72305820d055ca1ca358b5674f85db3c08caac9384f8f41323acfb4a83de8a69ef4076850029" exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c09833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b480620002556000396000f300606060405236156100cd5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e21564881146100d25780632101a6ad1461013f5780633ca05eca146101735780634fd9179a146101fe57806374653bcb1461028957806391090937146102ae5780639834bf2f1461036a578063b9d82bd71461044f578063c40b51fd146104cc578063cb199fa4146104f1578063cb9123ff1461055e578063f5184705146105de578063fbfa77cf14610612578063ff04f7ac14610641575b600080fd5b34156100dd57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506106cc915050565b005b341561014a57600080fd5b61015f67ffffffffffffffff60043516610893565b604051901515815260200160405180910390f35b341561017e57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610951915050565b005b341561020957600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610a46915050565b005b341561029457600080fd5b61029c610b3b565b60405190815260200160405180910390f35b34156102b957600080fd5b6102d167ffffffffffffffff60043516602435610b46565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032d5780820151818401525b602001610314565b50505050905090810190601f16801561035a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037557600080fd5b61038a67ffffffffffffffff60043516610c6e565b6040518087600281111561039a57fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040f5780820151818401525b6020016103f6565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045a57600080fd5b61013d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d7f9050565b005b34156104d757600080fd5b61029c611106565b60405190815260200160405180910390f35b34156104fc57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611111915050565b005b341561056957600080fd5b61057e67ffffffffffffffff600435166112d8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156105c457fe5b60ff16815260200197505050505050505060405180910390f35b34156105e957600080fd5b61015f67ffffffffffffffff60043516611360565b604051901515815260200160405180910390f35b341561061d57600080fd5b610625611424565b604051600160a060020a03909116815260200160405180910390f35b341561064c57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611433915050565b005b600180548082016106dd8382611766565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561075757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161079d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b60008061089f83611528565b905060005b815460ff1660028111156108b457fe5b14156108c3576000915061094b565b60025b815460ff1660028111156108d657fe5b146108dd57fe5b6002810154608060020a900460ff16156108fa576001915061094b565b600281015468010000000000000000900467ffffffffffffffff161515610924576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16610893565b91505b50919050565b600061095c86611528565b905060005b815460ff16600281111561097157fe5b1461097b57600080fd5b805433600160a060020a03908116610100909204161461099a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516109cd929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000610a5186611528565b905060015b815460ff166002811115610a6657fe5b14610a7057600080fd5b805433600160a060020a039081166101009092041614610a8f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610ac2929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600054600019015b90565b600080610b51611896565b600080610b5d87611575565b91508160020160018703815481101515610b7357fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba985611528565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b505050505092505b50509250925092565b600080610c79611896565b600080600080610c8888611528565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b600067ffffffffffffffff841615610f3a57610d9a84611528565b905060025b815460ff166002811115610daf57fe5b14610db957600080fd5b805433600160a060020a039081166101009092041614610dd857600080fd5b6014610f308260e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b10610f3a57600080fd5b5b60018054808201610f4c8382611766565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c905267ffffffffffffffff808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115610fc757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161100d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600154600019015b90565b600180548082016111228382611766565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561119c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111e2929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b6000806000806000806000806112ed89611575565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061136c83611528565b90506000915061094b565b815460ff16600281111561138757fe5b1415611396576000915061094b565b60025b815460ff1660028111156113a957fe5b146113b057fe5b6002810154608060020a900460ff16156113cd576001915061094b565b600281015468010000000000000000900467ffffffffffffffff1615156113f7576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16611360565b91505b50919050565b600254600160a060020a031681565b600061143e86611528565b905060025b815460ff16600281111561145357fe5b1461145d57600080fd5b805433600160a060020a03908116610100909204161461147c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114af929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b60015460009067ffffffffffffffff83161061154357600080fd5b6001805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061158e57600080fd5b6000805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115d357fe5b146115da57fe5b826080015167ffffffffffffffff1615156115f8576001915061094b565b6116058360800151611528565b90506109488160e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b91505b50919050565b81548183558181151161088e5760040281600402836000526020600020918201910161088e91906118a8565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b60206040519081016040526000815290565b610b4391905b8082111561181357805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118e16001830182611940565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a03191690556004016118ae565b5090565b90565b610b4391905b808211156118135760008155600101611925565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119665750611984565b601f016020900490600052602060002090810190611984919061191f565b5b505600a165627a7a72305820dc52b5bc604e63eb202a537ad9492bb897655f443be38ea0efdab739e31f16090029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c09833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b480620002556000396000f300606060405236156100cd5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e21564881146100d25780632101a6ad1461013f5780633ca05eca146101735780634fd9179a146101fe57806374653bcb1461028957806391090937146102ae5780639834bf2f1461036a578063b9d82bd71461044f578063c40b51fd146104cc578063cb199fa4146104f1578063cb9123ff1461055e578063f5184705146105de578063fbfa77cf14610612578063ff04f7ac14610641575b600080fd5b34156100dd57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506106cc915050565b005b341561014a57600080fd5b61015f67ffffffffffffffff60043516610893565b604051901515815260200160405180910390f35b341561017e57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610951915050565b005b341561020957600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610a46915050565b005b341561029457600080fd5b61029c610b3b565b60405190815260200160405180910390f35b34156102b957600080fd5b6102d167ffffffffffffffff60043516602435610b46565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032d5780820151818401525b602001610314565b50505050905090810190601f16801561035a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037557600080fd5b61038a67ffffffffffffffff60043516610c6e565b6040518087600281111561039a57fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040f5780820151818401525b6020016103f6565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045a57600080fd5b61013d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610d7f9050565b005b34156104d757600080fd5b61029c611106565b60405190815260200160405180910390f35b34156104fc57600080fd5b61013d60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611111915050565b005b341561056957600080fd5b61057e67ffffffffffffffff600435166112d8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156105c457fe5b60ff16815260200197505050505050505060405180910390f35b34156105e957600080fd5b61015f67ffffffffffffffff60043516611360565b604051901515815260200160405180910390f35b341561061d57600080fd5b610625611424565b604051600160a060020a03909116815260200160405180910390f35b341561064c57600080fd5b61013d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611433915050565b005b600180548082016106dd8382611766565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561075757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161079d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b60008061089f83611528565b905060005b815460ff1660028111156108b457fe5b14156108c3576000915061094b565b60025b815460ff1660028111156108d657fe5b146108dd57fe5b6002810154608060020a900460ff16156108fa576001915061094b565b600281015468010000000000000000900467ffffffffffffffff161515610924576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16610893565b91505b50919050565b600061095c86611528565b905060005b815460ff16600281111561097157fe5b1461097b57600080fd5b805433600160a060020a03908116610100909204161461099a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516109cd929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000610a5186611528565b905060015b815460ff166002811115610a6657fe5b14610a7057600080fd5b805433600160a060020a039081166101009092041614610a8f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610ac2929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600054600019015b90565b600080610b51611896565b600080610b5d87611575565b91508160020160018703815481101515610b7357fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba985611528565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b505050505092505b50509250925092565b600080610c79611896565b600080600080610c8888611528565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3e5780601f10610d1357610100808354040283529160200191610d3e565b820191906000526020600020905b815481529060010190602001808311610d2157829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b600067ffffffffffffffff841615610f3a57610d9a84611528565b905060025b815460ff166002811115610daf57fe5b14610db957600080fd5b805433600160a060020a039081166101009092041614610dd857600080fd5b6014610f308260e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b10610f3a57600080fd5b5b60018054808201610f4c8382611766565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c905267ffffffffffffffff808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115610fc757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161100d929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600154600019015b90565b600180548082016111228382611766565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a0333811660208301526040820189905267ffffffffffffffff8816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff1916600183600281111561119c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111e2929160200190611798565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a0390921691909117905550506001546000190167ffffffffffffffff167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b6000806000806000806000806112ed89611575565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061136c83611528565b90506000915061094b565b815460ff16600281111561138757fe5b1415611396576000915061094b565b60025b815460ff1660028111156113a957fe5b146113b057fe5b6002810154608060020a900460ff16156113cd576001915061094b565b600281015468010000000000000000900467ffffffffffffffff1615156113f7576000915061094b565b60028101546109489068010000000000000000900467ffffffffffffffff16611360565b91505b50919050565b600254600160a060020a031681565b600061143e86611528565b905060025b815460ff16600281111561145357fe5b1461145d57600080fd5b805433600160a060020a03908116610100909204161461147c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516114af929160200190611798565b5060028101805467ffffffffffffffff191667ffffffffffffffff85811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b60015460009067ffffffffffffffff83161061154357600080fd5b6001805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061158e57600080fd5b6000805467ffffffffffffffff841690811061155b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115d357fe5b146115da57fe5b826080015167ffffffffffffffff1615156115f8576001915061094b565b6116058360800151611528565b90506109488160e06040519081016040528154909190829060ff166002811115610dfe57fe5b6002811115610e0957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed55780601f10610eaa57610100808354040283529160200191610ed5565b820191906000526020600020905b815481529060010190602001808311610eb857829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115c0565b91505b50919050565b81548183558181151161088e5760040281600402836000526020600020918201910161088e91906118a8565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117d957805160ff1916838001178555611806565b82800160010185558215611806579182015b828111156118065782518255916020019190600101906117eb565b5b5061181392915061191f565b5090565b60206040519081016040526000815290565b610b4391905b8082111561181357805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118e16001830182611940565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a03191690556004016118ae565b5090565b90565b610b4391905b808211156118135760008155600101611925565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119665750611984565b601f016020900490600052602060002090810190611984919061191f565b5b505600a165627a7a72305820b3dad80d7ad8b3b5fcad6ee36c60cff5113b06e2109355532c386401b6c216250029" exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"notesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"},{"name":"newPlugin","type":"address"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b60405160208062003fa6833981016040528080519150505b805b805b60016200003a818062000076565b5060016200004a600082620000ab565b5060028054600160a060020a031916600160a060020a0383161790555b505b50426004555b5062000251565b815481835581811511620000a557600402816004028360005260206000209182019101620000a59190620000e0565b5b505050565b815481835581811511620000a557600402816004028360005260206000209182019101620000a5919062000144565b5b505050565b6200014191905b808211156200013d578054600160a860020a031916815560006200010f6001830182620001b6565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000e7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b600283018262000202565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001de5750620001fe565b601f016020900490600052602060002090810190620001fe91906200022d565b5b50565b508054600082556003016004900490600052602060002090810190620001fe91906200022d565b5b50565b6200014191905b808211156200013d576000815560010162000234565b5090565b90565b613d4580620002616000396000f300606060405236156101385763ffffffff60e060020a6000350416631e215648811461013d5780632101a6ad146101a95780632ee88808146101dc5780633ca05eca14610200578063433879831461028957806347c5ef43146102ad5780634fd9179a146102de57806357adafb61461036757806374653bcb146103b8578063796d5654146103dd57806391090937146103fe5780639398f5a2146104b85780639834bf2f146105095780639da47a6b146105ec578063ab8be23114610611578063b9d82bd714610629578063bde60ac9146106a5578063c40b51fd146106c1578063cb199fa4146106e6578063cb9123ff14610752578063d639cd73146107d0578063e9c211e21461083a578063ef3766e41461085e578063f5184705146108af578063fbfa77cf146108e2578063ff04f7ac14610911575b600080fd5b341561014857600080fd5b6101a760046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061099a915050565b005b34156101b457600080fd5b6101c86001604060020a0360043516610b5c565b604051901515815260200160405180910390f35b34156101e757600080fd5b6101a76001604060020a0360043516602435610c0e565b005b341561020b57600080fd5b6101a7600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610d54915050565b005b341561029457600080fd5b6101a76001604060020a0360043516602435610e48565b005b34156102b857600080fd5b6101a76001604060020a03600435811690602435811690604435906064351661101a565b005b34156102e957600080fd5b6101a7600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114e8915050565b005b341561037257600080fd5b6101a760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506115dc95505050505050565b005b34156103c357600080fd5b6103cb61164f565b60405190815260200160405180910390f35b34156103e857600080fd5b6101a76001604060020a036004351661165a565b005b341561040957600080fd5b6104206001604060020a03600435166024356116ae565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561047b5780820151818401525b602001610462565b50505050905090810190601f1680156104a85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156104c357600080fd5b6101a760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506117d595505050505050565b005b341561051457600080fd5b6105286001604060020a0360043516611848565b6040518087600281111561053857fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156105ac5780820151818401525b602001610593565b50505050905090810190601f1680156105d95780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34156105f757600080fd5b6103cb611953565b60405190815260200160405180910390f35b341561061c57600080fd5b6101a7600435611959565b005b341561063457600080fd5b6101a760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506119629050565b005b6101a76001604060020a0360043581169060243516611cdd565b005b34156106cc57600080fd5b6103cb611e04565b60405190815260200160405180910390f35b34156106f157600080fd5b6101a760046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0f915050565b005b341561075d57600080fd5b6107716001604060020a0360043516611fd1565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156107b657fe5b60ff16815260200197505050505050505060405180910390f35b34156107db57600080fd5b6101a7600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a0316925061203e915050565b005b341561084557600080fd5b6101a76001604060020a03600435166024356120b5565b005b341561086957600080fd5b6101a760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506121df95505050505050565b005b34156108ba57600080fd5b6101c86001604060020a0360043516612252565b604051901515815260200160405180910390f35b34156108ed57600080fd5b6108f561230a565b604051600160a060020a03909116815260200160405180910390f35b341561091c57600080fd5b6101a7600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612319915050565b005b600180548082016109ab838261393f565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115610a2457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610a6a929160200190613971565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b600080610b688361240d565b905060005b815460ff166002811115610b7d57fe5b1415610b8c5760009150610c08565b60025b815460ff166002811115610b9f57fe5b14610ba657fe5b6002810154608060020a900460ff1615610bc35760019150610c08565b6002810154604060020a90046001604060020a03161515610be75760009150610c08565b6002810154610c0590604060020a90046001604060020a0316610b5c565b91505b50919050565b600254600090819033600160a060020a03908116911614610c2e57600080fd5b610c3784612458565b915060015b600383015460c060020a900460ff166002811115610c5657fe5b14610c6057600080fd5b836001604060020a0316610c73856124a1565b6001604060020a031614610c8657600080fd5b6001820154600283018054610d3f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610d1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610cd65790505b505050506003860154600091508190608060020a90046001604060020a0316600261256b565b9050610d4c84828561285d565b5b5b50505050565b6000610d5f8661240d565b905060005b815460ff166002811115610d7457fe5b14610d7e57600080fd5b805433600160a060020a039081166101009092041614610d9d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610dd0929160200190613971565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000806000610e5685612917565b9450610e6185612458565b925060005b600384015460c060020a900460ff166002811115610e8057fe5b14610e8a57600080fd5b6001830154610ea1906001604060020a031661240d565b805490925033600160a060020a039081166101009092041614610ec357600080fd5b6001830154600284018054610f7c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f5657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610f135790505b505050506003870154600091508190608060020a90046001604060020a0316600161256b565b9050610f8985828661285d565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b1515610ffe57600080fd5b6102c65a03f1151561100f57600080fd5b5050505b5050505050565b600080600080600061102b88612917565b975061103688612458565b94506110418661240d565b935061104c8961240d565b805490935033600160a060020a03908116610100909204161461106e57600080fd5b60005b600386015460c060020a900460ff16600281111561108b57fe5b1461109557600080fd5b60018501546001604060020a038a8116911614156111325760005b845460ff1660028111156110c057fe5b14156110d6576110d1888888612ae3565b61112a565b60025b845460ff1660028111156110e957fe5b14156110ff576110d1888888612b36565b61112a565b60015b845460ff16600281111561111257fe5b1415611128576110d1888888612d82565b61112a565bfe5b5b5b5b6114dc565b6112638560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156111fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111b95790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561124f57fe5b600281111561125a57fe5b9052508a612eb6565b6001604060020a03908116925082146111285760005b845460ff16600281111561128957fe5b14156112bf5760018501546001604060020a038781169116146112a857fe5b61112a88888760020180549050612f1d565b6114dc565b60015b845460ff1660028111156112d257fe5b1415611499576114098560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156113a257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161135f5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156113f557fe5b600281111561140057fe5b90525087612eb6565b6001604060020a03908116915081141561144457611434888860018589600201805490500303612f1d565b6110d1888888612d82565b61112a565b8181111561147357611434888860018589600201805490500303612f1d565b6110d1888888612d82565b61112a565b81811161112a5761112a888860018489600201805490500303612f1d565b5b5b5b6114dc565b60025b845460ff1660028111156114ac57fe5b1415611128576114c9888860018589600201805490500303612f1d565b61112a888888613023565b6114dc565b5bfe5b5b505050505050505050565b60006114f38661240d565b905060015b815460ff16600281111561150857fe5b1461151257600080fd5b805433600160a060020a03908116610100909204161461153157600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611564929160200190613971565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8351831015610d4c576001604060020a038484815181106115fe57fe5b90602001906020020151169150604060020a84848151811061161c57fe5b9060200190602002015181151561162f57fe5b04905061163c8282610e48565b5b6001909201916115e1565b5b50505050565b600054600019015b90565b60006116658261240d565b805490915033600160a060020a03908116610100909204161461168757600080fd5b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b6000806116b9613a6f565b6000806116c587612458565b915081600201600187038154811015156116db57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031694506117108561240d565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117c45780601f10611799576101008083540402835291602001916117c4565b820191906000526020600020905b8154815290600101906020018083116117a757829003601f168201915b505050505092505b50509250925092565b600080805b8351831015610d4c576001604060020a038484815181106117f757fe5b90602001906020020151169150604060020a84848151811061181557fe5b9060200190602002015181151561182857fe5b0490506118358282610c0e565b5b6001909201916117da565b5b50505050565b600080611853613a6f565b6000806000806118628861240d565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156119185780601f106118ed57610100808354040283529160200191611918565b820191906000526020600020905b8154815290600101906020018083116118fb57829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b60045481565b60048190555b50565b60006001604060020a03841615611b165761197c8461240d565b905060025b815460ff16600281111561199157fe5b1461199b57600080fd5b805433600160a060020a0390811661010090920416146119ba57600080fd5b6014611b0c8260e06040519081016040528154909190829060ff1660028111156119e057fe5b60028111156119eb57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ab75780601f10611a8c57610100808354040283529160200191611ab7565b820191906000526020600020905b815481529060010190602001808311611a9a57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613372565b10611b1657600080fd5b5b60018054808201611b28838261393f565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c90526001604060020a03808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115611ba257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611be8929160200190613971565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600080600080611cec8661240d565b935060005b845460ff166002811115611d0157fe5b14611d0b57600080fd5b835433600160a060020a039081166101009092041614611d2a57600080fd5b34925060008311611d3a57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d6d57600080fd5b611d9d866000604051805910611d805750595b908082528060200260200182016040525b5060008060008061256b565b9150611da882612458565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3610e408683858861101a565b5b505050505050565b600154600019015b90565b60018054808201611e20838261393f565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115611e9957fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611edf929160200190613971565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b600080600080600080600080611fe689612458565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015610e40576001604060020a0385848151811061206057fe5b90602001906020020151169150604060020a85848151811061207e57fe5b9060200190602002015181151561209157fe5b0490506120a08683838761101a565b5b600190920191612043565b5b505050505050565b600254600090819033600160a060020a039081169116146120d557600080fd5b6120de84612458565b915060015b600383015460c060020a900460ff1660028111156120fd57fe5b1461210757600080fd5b60018201546002830180546121bf926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561219a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116121575790505b505050506003860154600091508190608060020a90046001604060020a03168161256b565b9050610d3f81612917565b9050610d4c84828561285d565b5b5b50505050565b600080805b8351831015610d4c576001604060020a0384848151811061220157fe5b90602001906020020151169150604060020a84848151811061221f57fe5b9060200190602002015181151561223257fe5b04905061223f82826120b5565b5b6001909201916121e4565b5b50505050565b60008061225e8361240d565b905060009150610c08565b815460ff16600281111561227957fe5b14156122885760009150610c08565b60025b815460ff16600281111561229b57fe5b146122a257fe5b6002810154608060020a900460ff16156122bf5760019150610c08565b6002810154604060020a90046001604060020a031615156122e35760009150610c08565b6002810154610c0590604060020a90046001604060020a0316612252565b91505b50919050565b600254600160a060020a031681565b60006123248661240d565b905060025b815460ff16600281111561233957fe5b1461234357600080fd5b805433600160a060020a03908116610100909204161461236257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612395929160200190613971565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b6001546000906001604060020a0383161061242757600080fd5b600180546001604060020a03841690811061243e57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a0383161061247057600080fd5b600080546001604060020a03841690811061243e57fe5b906000526020600020906004020160005b5090505b919050565b600080806001604060020a03841615156124be5760009250612564565b6124c784612458565b60018101549092506124e1906001604060020a031661240d565b905060005b815460ff1660028111156124f657fe5b141561250457839250612564565b60025b815460ff16600281111561251757fe5b1461251e57fe5b6001820154612535906001604060020a0316610b5c565b151561254357839250612564565b600382015461256190608060020a90046001604060020a03166124a1565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156125b95780820151818401525b6020016125a0565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a02815260080182600281111561262657fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561268f57809250612851565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a0383161790558154909190600181016126cd8382613a81565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a0316815260200188600281111561273f57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a039290921691909117905560408201518160020190805161278a929160200190613ab3565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561284557fe5b02179055505050508092505b50509695505050505050565b600080600061286d868686613511565b9250846001604060020a0316866001604060020a0316141561288e57610e40565b82151561289a57610e40565b6128a386612458565b91506128ae85612458565b8254909150839010156128c057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a35b505050505050565b60008060008061292685612458565b925060005b600384015460c060020a900460ff16600281111561294557fe5b1461295257849350612adb565b600383015460006001604060020a0390911611801561298b57506003830154604060020a90046001604060020a0316612989613536565b115b15612aa9576001830154600284018054612a48926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612a2357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116129e05790505b505050506003870154600091508190608060020a90046001604060020a03168161256b565b6003840154909250612a89906001604060020a03166000604051805910612a6c5750595b908082528060200260200182016040525b5060008086600061256b565b9050612a9a8582856000015461285d565b809450612aa685612458565b92505b612ab2856124a1565b90506001604060020a0380821690861614612ad657612ad68582856000015461285d565b5b8093505b505050919050565b600080612aef85612458565b9150612b21836000604051805910611d805750595b908082528060200260200182016040525b5060008060008061256b565b905061101385828661285d565b5b5050505050565b6000806000612b4486612458565b92506014612c788460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612c1257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bcf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c6557fe5b6002811115612c7057fe5b90525061353d565b10612c8257600080fd5b6001830154600284018054612d3a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612a2357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116129e05790505b505050506003870154600091508190608060020a90046001604060020a03168161256b565b9150612d6c846000604051805910612a6c5750595b908082528060200260200182016040525b5060008086600061256b565b9050610e4086828761285d565b5b505050505050565b6000612d8c613a6f565b600080612d9887612458565b600281015490945060149010612dad57600080fd5b6002840154600101604051805910612dc25750595b908082528060200260200182016040525b509250600091505b6002840154821015612e505760028401805483908110612df757fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612e2d57fe5b6001604060020a039092166020928302909101909101525b600190910190612ddb565b60028401548590849081518110612e6357fe5b6001604060020a039283166020918202909201015260018501546003860154612e9f929182169186916000918291608060020a9004168161256b565b9050612eac87828861285d565b5b50505050505050565b6000805b836040015151811015612f0b57826001604060020a031684604001518281518110612ee157fe5b906020019060200201516001604060020a03161415612f0257809150612f16565b5b600101612eba565b6001604060020a0391505b5092915050565b6000612f27613a6f565b600080612f3387612458565b6002810154909450859003604051805910612f4b5750595b908082528060200260200182016040525b509250600091505b6002840154859003821015612fdc5760028401805483908110612f8357fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612fb957fe5b6001604060020a039092166020928302909101909101525b600190910190612f64565b60018401546003850154612e9f916001604060020a039081169186916000918291608060020a909104168161256b565b9050612eac87828861285d565b5b50505050505050565b60008061302f85612458565b915060146131638360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612c1257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bcf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c6557fe5b6002811115612c7057fe5b90525061353d565b1061316d57600080fd5b6001820154600283018054612b21926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561320057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131bd5790505b5050505050856133368660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156132d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161328d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561332357fe5b600281111561332e57fe5b9052506136a8565b61333e613536565b6003880154910190608060020a90046001604060020a0316600061256b565b905061101385828661285d565b5b5050505050565b60008060025b8351600281111561338557fe5b1461338c57fe5b82608001516001604060020a031615156133a95760019150610c08565b6133b6836080015161240d565b9050610c058160e06040519081016040528154909190829060ff1660028111156119e057fe5b60028111156119eb57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ab75780601f10611a8c57610100808354040283529160200191611ab7565b820191906000526020600020905b815481529060010190602001808311611a9a57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613372565b91505b50919050565b8061351e8480858461373b565b905061352c8385858461373b565b90505b9392505050565b6004545b90565b6000808260a001516001604060020a0316151561355d5760009150610c08565b61356a8360a00151612458565b905061369c8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612c1257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bcf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c6557fe5b6002811115612c7057fe5b90525061353d565b60010191505b50919050565b60008060006136ba846020015161240d565b60028101546001604060020a031693509150600090505b83604001515181101561256457613700846040015182815181106136f157fe5b9060200190602002015161240d565b60028101549092506001604060020a03168390111561372a5760028201546001604060020a031692505b5b6001016136d1565b5b5050919050565b600080600080866001604060020a0316886001604060020a03161461376257610100613765565b60005b61ffff16925084935061377788612458565b6001810154909250613795906001604060020a031688888688613856565b9350600090505b60028201546001604060020a03821610156138115761380682600201826001604060020a03168154811015156137ce57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316888884870160010188613856565b93505b60010161379c565b600382015460006001604060020a03909116111561384a576003820154613847906001604060020a0316888860ff870188613856565b93505b5b505050949350505050565b806000806138638861240d565b6003810154909250600160a060020a0316158015906138825750600083115b15613933576003820154600160a060020a031663a4947a7e898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561390657600080fd5b6102c65a03f1151561391757600080fd5b50505060405180519150508281111561392f57600080fd5b8092505b5b505095945050505050565b815481835581811511610b5757600402816004028360005260206000209182019101610b579190613b7d565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139b257805160ff19168380011785556139df565b828001600101855582156139df579182015b828111156139df5782518255916020019190600101906139c4565b5b506139ec929150613bf4565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139b257805160ff19168380011785556139df565b828001600101855582156139df579182015b828111156139df5782518255916020019190600101906139c4565b5b506139ec929150613bf4565b5090565b60206040519081016040526000815290565b815481835581811511610b5757600402816004028360005260206000209182019101610b579190613c15565b5b505050565b82805482825590600052602060002090600301600490048101928215613b5b5791602002820160005b83821115613b2657835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613adc565b8015613b595782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613b26565b505b506139ec929150613c7c565b5090565b60206040519081016040526000815290565b61165791905b808211156139ec57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613bb66001830182613ca8565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a0319169055600401613b83565b5090565b90565b61165791905b808211156139ec5760008155600101613bfa565b5090565b90565b61165791905b808211156139ec57600080825560018201805467ffffffffffffffff19169055613c486002830182613cf0565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613c1b565b5090565b90565b61165791905b808211156139ec57805467ffffffffffffffff19168155600101613c82565b5090565b90565b50805460018160011615610100020316600290046000825580601f10613cce575061195f565b601f01602090049060005260206000209081019061195f9190613bf4565b5b50565b50805460008255600301600490049060005260206000209081019061195f9190613bf4565b5b505600a165627a7a72305820556dbe47c201a0e810aa3b102bdb2e0de2aa5ef700531938ec34322724a581650029" +exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b60405160208062004049833981016040528080519150505b805b805b60016200003a818062000076565b5060016200004a600082620000ab565b5060028054600160a060020a031916600160a060020a0383161790555b505b50426004555b5062000251565b815481835581811511620000a557600402816004028360005260206000209182019101620000a59190620000e0565b5b505050565b815481835581811511620000a557600402816004028360005260206000209182019101620000a5919062000144565b5b505050565b6200014191905b808211156200013d578054600160a860020a031916815560006200010f6001830182620001b6565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000e7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b600283018262000202565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001de5750620001fe565b601f016020900490600052602060002090810190620001fe91906200022d565b5b50565b508054600082556003016004900490600052602060002090810190620001fe91906200022d565b5b50565b6200014191905b808211156200013d576000815560010162000234565b5090565b90565b613de880620002616000396000f300606060405236156101385763ffffffff60e060020a6000350416631e215648811461013d5780632101a6ad146101a95780632ee88808146101dc5780633ca05eca14610200578063433879831461028957806347c5ef43146102ad5780634fd9179a146102de57806357adafb61461036757806374653bcb146103b8578063796d5654146103dd57806391090937146103fe5780639398f5a2146104b85780639834bf2f146105095780639da47a6b146105ec578063ab8be23114610611578063b9d82bd714610629578063bde60ac9146106a5578063c40b51fd146106c1578063cb199fa4146106e6578063cb9123ff14610752578063d639cd73146107d0578063e9c211e21461083a578063ef3766e41461085e578063f5184705146108af578063fbfa77cf146108e2578063ff04f7ac14610911575b600080fd5b341561014857600080fd5b6101a760046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061099a915050565b005b34156101b457600080fd5b6101c86001604060020a0360043516610b5c565b604051901515815260200160405180910390f35b34156101e757600080fd5b6101a76001604060020a0360043516602435610c0e565b005b341561020b57600080fd5b6101a7600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610d54915050565b005b341561029457600080fd5b6101a76001604060020a0360043516602435610e48565b005b34156102b857600080fd5b6101a76001604060020a03600435811690602435811690604435906064351661101a565b005b34156102e957600080fd5b6101a7600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114e8915050565b005b341561037257600080fd5b6101a760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506115dc95505050505050565b005b34156103c357600080fd5b6103cb61164f565b60405190815260200160405180910390f35b34156103e857600080fd5b6101a76001604060020a036004351661165a565b005b341561040957600080fd5b6104206001604060020a03600435166024356116ae565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561047b5780820151818401525b602001610462565b50505050905090810190601f1680156104a85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156104c357600080fd5b6101a760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506117d595505050505050565b005b341561051457600080fd5b6105286001604060020a0360043516611848565b6040518087600281111561053857fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156105ac5780820151818401525b602001610593565b50505050905090810190601f1680156105d95780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34156105f757600080fd5b6103cb611953565b60405190815260200160405180910390f35b341561061c57600080fd5b6101a7600435611959565b005b341561063457600080fd5b6101a760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506119629050565b005b6101a76001604060020a0360043581169060243516611cdd565b005b34156106cc57600080fd5b6103cb611e04565b60405190815260200160405180910390f35b34156106f157600080fd5b6101a760046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0f915050565b005b341561075d57600080fd5b6107716001604060020a0360043516611fd1565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156107b657fe5b60ff16815260200197505050505050505060405180910390f35b34156107db57600080fd5b6101a7600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a0316925061203e915050565b005b341561084557600080fd5b6101a76001604060020a03600435166024356120b5565b005b341561086957600080fd5b6101a760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506121df95505050505050565b005b34156108ba57600080fd5b6101c86001604060020a0360043516612252565b604051901515815260200160405180910390f35b34156108ed57600080fd5b6108f561230a565b604051600160a060020a03909116815260200160405180910390f35b341561091c57600080fd5b6101a7600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612319915050565b005b600180548082016109ab83826139e2565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115610a2457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610a6a929160200190613a14565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b505050565b600080610b688361240d565b905060005b815460ff166002811115610b7d57fe5b1415610b8c5760009150610c08565b60025b815460ff166002811115610b9f57fe5b14610ba657fe5b6002810154608060020a900460ff1615610bc35760019150610c08565b6002810154604060020a90046001604060020a03161515610be75760009150610c08565b6002810154610c0590604060020a90046001604060020a0316610b5c565b91505b50919050565b600254600090819033600160a060020a03908116911614610c2e57600080fd5b610c3784612458565b915060015b600383015460c060020a900460ff166002811115610c5657fe5b14610c6057600080fd5b836001604060020a0316610c73856124a1565b6001604060020a031614610c8657600080fd5b6001820154600283018054610d3f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610d1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610cd65790505b505050506003860154600091508190608060020a90046001604060020a0316600261256b565b9050610d4c84828561285d565b5b5b50505050565b6000610d5f8661240d565b905060005b815460ff166002811115610d7457fe5b14610d7e57600080fd5b805433600160a060020a039081166101009092041614610d9d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051610dd0929160200190613a14565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b505050505050565b6000806000610e5685612927565b9450610e6185612458565b925060005b600384015460c060020a900460ff166002811115610e8057fe5b14610e8a57600080fd5b6001830154610ea1906001604060020a031661240d565b805490925033600160a060020a039081166101009092041614610ec357600080fd5b6001830154600284018054610f7c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610f5657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610f135790505b505050506003870154600091508190608060020a90046001604060020a0316600161256b565b9050610f8985828661285d565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b1515610ffe57600080fd5b6102c65a03f1151561100f57600080fd5b5050505b5050505050565b600080600080600061102b88612927565b975061103688612458565b94506110418661240d565b935061104c8961240d565b805490935033600160a060020a03908116610100909204161461106e57600080fd5b60005b600386015460c060020a900460ff16600281111561108b57fe5b1461109557600080fd5b60018501546001604060020a038a8116911614156111325760005b845460ff1660028111156110c057fe5b14156110d6576110d1888888612af3565b61112a565b60025b845460ff1660028111156110e957fe5b14156110ff576110d1888888612b39565b61112a565b60015b845460ff16600281111561111257fe5b1415611128576110d1888888612d85565b61112a565bfe5b5b5b5b6114dc565b6112638560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156111fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111b95790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561124f57fe5b600281111561125a57fe5b9052508a612eb9565b6001604060020a03908116925082146111285760005b845460ff16600281111561128957fe5b14156112bf5760018501546001604060020a038781169116146112a857fe5b61112a88888760020180549050612f20565b6114dc565b60015b845460ff1660028111156112d257fe5b1415611499576114098560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156113a257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161135f5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156113f557fe5b600281111561140057fe5b90525087612eb9565b6001604060020a03908116915081141561144457611434888860018589600201805490500303612f20565b6110d1888888612d85565b61112a565b8181111561147357611434888860018589600201805490500303612f20565b6110d1888888612d85565b61112a565b81811161112a5761112a888860018489600201805490500303612f20565b5b5b5b6114dc565b60025b845460ff1660028111156114ac57fe5b1415611128576114c9888860018589600201805490500303612f20565b61112a888888613026565b6114dc565b5bfe5b5b505050505050505050565b60006114f38661240d565b905060015b815460ff16600281111561150857fe5b1461151257600080fd5b805433600160a060020a03908116610100909204161461153157600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611564929160200190613a14565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b505050505050565b600080805b8351831015610d4c576001604060020a038484815181106115fe57fe5b90602001906020020151169150604060020a84848151811061161c57fe5b9060200190602002015181151561162f57fe5b04905061163c8282610e48565b5b6001909201916115e1565b5b50505050565b600054600019015b90565b60006116658261240d565b805490915033600160a060020a03908116610100909204161461168757600080fd5b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b6000806116b9613b12565b6000806116c587612458565b915081600201600187038154811015156116db57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031694506117108561240d565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117c45780601f10611799576101008083540402835291602001916117c4565b820191906000526020600020905b8154815290600101906020018083116117a757829003601f168201915b505050505092505b50509250925092565b600080805b8351831015610d4c576001604060020a038484815181106117f757fe5b90602001906020020151169150604060020a84848151811061181557fe5b9060200190602002015181151561182857fe5b0490506118358282610c0e565b5b6001909201916117da565b5b50505050565b600080611853613b12565b6000806000806118628861240d565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156119185780601f106118ed57610100808354040283529160200191611918565b820191906000526020600020905b8154815290600101906020018083116118fb57829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b60045481565b60048190555b50565b60006001604060020a03841615611b165761197c8461240d565b905060025b815460ff16600281111561199157fe5b1461199b57600080fd5b805433600160a060020a0390811661010090920416146119ba57600080fd5b6014611b0c8260e06040519081016040528154909190829060ff1660028111156119e057fe5b60028111156119eb57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ab75780601f10611a8c57610100808354040283529160200191611ab7565b820191906000526020600020905b815481529060010190602001808311611a9a57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613375565b10611b1657600080fd5b5b60018054808201611b2883826139e2565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808b166020830152604082018c90526001604060020a03808a1660608401528a166080830152600060a0830152871660c09091015291905081518154829060ff19166001836002811115611ba257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611be8929160200190613a14565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b505050505050565b600080600080611cec8661240d565b935060005b845460ff166002811115611d0157fe5b14611d0b57600080fd5b835433600160a060020a039081166101009092041614611d2a57600080fd5b34925060008311611d3a57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d6d57600080fd5b611d9d866000604051805910611d805750595b908082528060200260200182016040525b5060008060008061256b565b9150611da882612458565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3610e408683858861101a565b5b505050505050565b600154600019015b90565b60018054808201611e2083826139e2565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018990526001604060020a038816606083015260006080830181905260a0830152861660c09091015291905081518154829060ff19166001836002811115611e9957fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611edf929160200190613a14565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c08201516003919091018054600160a060020a031916600160a060020a039092169190911790555050600154600019016001604060020a03167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b505050565b600080600080600080600080611fe689612458565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015610e40576001604060020a0385848151811061206057fe5b90602001906020020151169150604060020a85848151811061207e57fe5b9060200190602002015181151561209157fe5b0490506120a08683838761101a565b5b600190920191612043565b5b505050505050565b600254600090819033600160a060020a039081169116146120d557600080fd5b6120de84612458565b915060015b600383015460c060020a900460ff1660028111156120fd57fe5b1461210757600080fd5b60018201546002830180546121bf926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561219a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116121575790505b505050506003860154600091508190608060020a90046001604060020a03168161256b565b9050610d3f81612927565b9050610d4c84828561285d565b5b5b50505050565b600080805b8351831015610d4c576001604060020a0384848151811061220157fe5b90602001906020020151169150604060020a84848151811061221f57fe5b9060200190602002015181151561223257fe5b04905061223f82826120b5565b5b6001909201916121e4565b5b50505050565b60008061225e8361240d565b905060009150610c08565b815460ff16600281111561227957fe5b14156122885760009150610c08565b60025b815460ff16600281111561229b57fe5b146122a257fe5b6002810154608060020a900460ff16156122bf5760019150610c08565b6002810154604060020a90046001604060020a031615156122e35760009150610c08565b6002810154610c0590604060020a90046001604060020a0316612252565b91505b50919050565b600254600160a060020a031681565b60006123248661240d565b905060025b815460ff16600281111561233957fe5b1461234357600080fd5b805433600160a060020a03908116610100909204161461236257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612395929160200190613a14565b5060028101805467ffffffffffffffff19166001604060020a0385811691909117909155600382018054600160a060020a031916600160a060020a03851617905586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b505050505050565b6001546000906001604060020a0383161061242757600080fd5b600180546001604060020a03841690811061243e57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a0383161061247057600080fd5b600080546001604060020a03841690811061243e57fe5b906000526020600020906004020160005b5090505b919050565b600080806001604060020a03841615156124be5760009250612564565b6124c784612458565b60018101549092506124e1906001604060020a031661240d565b905060005b815460ff1660028111156124f657fe5b141561250457839250612564565b60025b815460ff16600281111561251757fe5b1461251e57fe5b6001820154612535906001604060020a0316610b5c565b151561254357839250612564565b600382015461256190608060020a90046001604060020a03166124a1565b92505b5050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156125b95780820151818401525b6020016125a0565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a02815260080182600281111561262657fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a03909116915081111561268f57809250612851565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a0383161790558154909190600181016126cd8382613b24565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a0316815260200188600281111561273f57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a039290921691909117905560408201518160020190805161278a929160200190613b56565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561284557fe5b02179055505050508092505b50509695505050505050565b600080600061286f6001878787613514565b9250846001604060020a0316866001604060020a0316141561289057610e40565b82151561289c57610e40565b6128a586612458565b91506128b085612458565b8254909150839010156128c257600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361291d6000878786613514565b505b505050505050565b60008060008061293685612458565b925060005b600384015460c060020a900460ff16600281111561295557fe5b1461296257849350612aeb565b600383015460006001604060020a0390911611801561299b57506003830154604060020a90046001604060020a031661299961353c565b115b15612ab9576001830154600284018054612a58926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116129f05790505b505050506003870154600091508190608060020a90046001604060020a03168161256b565b6003840154909250612a99906001604060020a03166000604051805910612a7c5750595b908082528060200260200182016040525b5060008086600061256b565b9050612aaa8582856000015461285d565b809450612ab685612458565b92505b612ac2856124a1565b90506001604060020a0380821690861614612ae657612ae68582856000015461285d565b5b8093505b505050919050565b6000610d3f826000604051805910611d805750595b908082528060200260200182016040525b5060008060008061256b565b9050610d4c84828561285d565b5b50505050565b6000806000612b4786612458565b92506014612c7b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612c1557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bd25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c6857fe5b6002811115612c7357fe5b905250613543565b10612c8557600080fd5b6001830154600284018054612d3d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116129f05790505b505050506003870154600091508190608060020a90046001604060020a03168161256b565b9150612d6f846000604051805910612a7c5750595b908082528060200260200182016040525b5060008086600061256b565b9050610e4086828761285d565b5b505050505050565b6000612d8f613b12565b600080612d9b87612458565b600281015490945060149010612db057600080fd5b6002840154600101604051805910612dc55750595b908082528060200260200182016040525b509250600091505b6002840154821015612e535760028401805483908110612dfa57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612e3057fe5b6001604060020a039092166020928302909101909101525b600190910190612dde565b60028401548590849081518110612e6657fe5b6001604060020a039283166020918202909201015260018501546003860154612ea2929182169186916000918291608060020a9004168161256b565b905061291d87828861285d565b5b50505050505050565b6000805b836040015151811015612f0e57826001604060020a031684604001518281518110612ee457fe5b906020019060200201516001604060020a03161415612f0557809150612f19565b5b600101612ebd565b6001604060020a0391505b5092915050565b6000612f2a613b12565b600080612f3687612458565b6002810154909450859003604051805910612f4e5750595b908082528060200260200182016040525b509250600091505b6002840154859003821015612fdf5760028401805483908110612f8657fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316838381518110612fbc57fe5b6001604060020a039092166020928302909101909101525b600190910190612f67565b60018401546003850154612ea2916001604060020a039081169186916000918291608060020a909104168161256b565b905061291d87828861285d565b5b50505050505050565b60008061303285612458565b915060146131668360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612c1557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bd25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c6857fe5b6002811115612c7357fe5b905250613543565b1061317057600080fd5b6001820154600283018054613360926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561320357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131c05790505b5050505050856133398660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156132d357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116132905790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561332657fe5b600281111561333157fe5b9052506136ae565b61334161353c565b6003880154910190608060020a90046001604060020a0316600061256b565b905061101385828661285d565b5b5050505050565b60008060025b8351600281111561338857fe5b1461338f57fe5b82608001516001604060020a031615156133ac5760019150610c08565b6133b9836080015161240d565b9050610c058160e06040519081016040528154909190829060ff1660028111156119e057fe5b60028111156119eb57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ab75780601f10611a8c57610100808354040283529160200191611ab7565b820191906000526020600020905b815481529060010190602001808311611a9a57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613375565b91505b50919050565b806135228585808685613741565b90506135318584868685613741565b90505b949350505050565b6004545b90565b6000808260a001516001604060020a031615156135635760009150610c08565b6135708360a00151612458565b90506136a28160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015612c1557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bd25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115612c6857fe5b6002811115612c7357fe5b905250613543565b60010191505b50919050565b60008060006136c0846020015161240d565b60028101546001604060020a031693509150600090505b83604001515181101561256457613706846040015182815181106136f757fe5b9060200190602002015161240d565b60028101549092506001604060020a0316839011156137305760028201546001604060020a031692505b5b6001016136d7565b5b5050919050565b600080600080866001604060020a0316886001604060020a0316146137685761010061376b565b60005b61ffff16925084935061377d88612458565b600181015490925061379d908a906001604060020a031689898789613862565b9350600090505b60028201546001604060020a038216101561381a5761380f8983600201836001604060020a03168154811015156137d757fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316898985880160010189613862565b93505b6001016137a4565b600382015460006001604060020a039091161115613855576003820154613852908a906001604060020a0316898960ff880189613862565b93505b5b50505095945050505050565b8060008061386f8861240d565b6003810154909150600160a060020a03161580159061388e5750600083115b15612851578815613949576003810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561391857600080fd5b6102c65a03f1151561392957600080fd5b50505060405180519250508282111561394157600080fd5b819250612851565b6003810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156139bf57600080fd5b6102c65a03f115156139d057600080fd5b5050505b5b5b50509695505050505050565b815481835581811511610b5757600402816004028360005260206000209182019101610b579190613c20565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a5557805160ff1916838001178555613a82565b82800160010185558215613a82579182015b82811115613a82578251825591602001919060010190613a67565b5b50613a8f929150613c97565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a5557805160ff1916838001178555613a82565b82800160010185558215613a82579182015b82811115613a82578251825591602001919060010190613a67565b5b50613a8f929150613c97565b5090565b60206040519081016040526000815290565b815481835581811511610b5757600402816004028360005260206000209182019101610b579190613cb8565b5b505050565b82805482825590600052602060002090600301600490048101928215613bfe5791602002820160005b83821115613bc957835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613b7f565b8015613bfc5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613bc9565b505b50613a8f929150613d1f565b5090565b60206040519081016040526000815290565b61165791905b80821115613a8f57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613c596001830182613d4b565b5060028101805470ffffffffffffffffffffffffffffffffff19169055600381018054600160a060020a0319169055600401613c26565b5090565b90565b61165791905b80821115613a8f5760008155600101613c9d565b5090565b90565b61165791905b80821115613a8f57600080825560018201805467ffffffffffffffff19169055613ceb6002830182613d93565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613cbe565b5090565b90565b61165791905b80821115613a8f57805467ffffffffffffffff19168155600101613d25565b5090565b90565b50805460018160011615610100020316600290046000825580601f10613d71575061195f565b601f01602090049060005260206000209081019061195f9190613c97565b5b50565b50805460008255600301600490049060005260206000209081019061195f9190613c97565b5b505600a165627a7a7230582034db80aaad764fb9cda2a32e267ccf471c86c66d09ec7e9a2b56bc26ed2398690029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0x8736b8ef7618a0ccfc1155329661c9eac082254b8991d9c03f91b597a69fddae" +exports._sha256 = "0x67cbd6ac513ef1cbd06304f4c6ea3e72565b3cffbe2e2d2d22082e42def4e7d4" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index 389ce70..97e69ad 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -16,7 +16,8 @@ contract ILiquidPledgingPlugin { /// 258 -> Second delegate to /// ... /// 511 -> proposedProject to - function onTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); } //File: contracts/LiquidPledgingBase.sol @@ -660,8 +661,6 @@ contract LiquidPledging is LiquidPledgingBase { } function transferOwnershipToDonor(uint64 idNote, uint amount, uint64 idReceiver) internal { - Note storage n = findNote(idNote); - uint64 toNote = findNote( idReceiver, new uint64[](0), @@ -728,7 +727,7 @@ contract LiquidPledging is LiquidPledgingBase { } function doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = callPlugins(from, to, _amount); + uint amount = callPlugins(true, from, to, _amount); if (from == to) return; if (amount == 0) return; Note storage nFrom = findNote(from); @@ -738,6 +737,7 @@ contract LiquidPledging is LiquidPledgingBase { nTo.amount += amount; Transfer(from, to, amount); + callPlugins(false, from, to, amount); } // This function does 2 things, #1: it checks to make sure that the pledges are correct @@ -785,37 +785,42 @@ contract LiquidPledging is LiquidPledgingBase { // Plugins ///////////// - function callPlugin(uint64 managerId, uint64 fromNote, uint64 toNote, uint64 context, uint amount) internal returns (uint allowedAmount) { + function callPlugin(bool before, uint64 managerId, uint64 fromNote, uint64 toNote, uint64 context, uint amount) internal returns (uint allowedAmount) { + uint newAmount; allowedAmount = amount; NoteManager storage manager = findManager(managerId); if ((address(manager.plugin) != 0) && (allowedAmount > 0)) { - uint newAmount = manager.plugin.onTransfer(managerId, fromNote, toNote, context, amount); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; + if (before) { + newAmount = manager.plugin.beforeTransfer(managerId, fromNote, toNote, context, amount); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + manager.plugin.afterTransfer(managerId, fromNote, toNote, context, amount); + } } } - function callPluginsNote(uint64 idNote, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { + function callPluginsNote(bool before, uint64 idNote, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { uint64 offset = idNote == fromNote ? 0 : 256; allowedAmount = amount; Note storage n = findNote(idNote); - allowedAmount = callPlugin(n.owner, fromNote, toNote, offset, allowedAmount); + allowedAmount = callPlugin(before, n.owner, fromNote, toNote, offset, allowedAmount); for (uint64 i=0; i 0) { - allowedAmount = callPlugin(n.proposedProject, fromNote, toNote, offset + 255, allowedAmount); + allowedAmount = callPlugin(before, n.proposedProject, fromNote, toNote, offset + 255, allowedAmount); } } - function callPlugins(uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { + function callPlugins(bool before, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { allowedAmount = amount; - allowedAmount = callPluginsNote(fromNote, fromNote, toNote, allowedAmount); - allowedAmount = callPluginsNote(toNote, fromNote, toNote, allowedAmount); + allowedAmount = callPluginsNote(before, fromNote, fromNote, toNote, allowedAmount); + allowedAmount = callPluginsNote(before, toNote, fromNote, toNote, allowedAmount); } ///////////// diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index c519943..073e72d 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -16,7 +16,8 @@ contract ILiquidPledgingPlugin { /// 258 -> Second delegate to /// ... /// 511 -> proposedProject to - function onTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); } //File: contracts/LiquidPledgingBase.sol @@ -660,8 +661,6 @@ contract LiquidPledging is LiquidPledgingBase { } function transferOwnershipToDonor(uint64 idNote, uint amount, uint64 idReceiver) internal { - Note storage n = findNote(idNote); - uint64 toNote = findNote( idReceiver, new uint64[](0), @@ -728,7 +727,7 @@ contract LiquidPledging is LiquidPledgingBase { } function doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = callPlugins(from, to, _amount); + uint amount = callPlugins(true, from, to, _amount); if (from == to) return; if (amount == 0) return; Note storage nFrom = findNote(from); @@ -738,6 +737,7 @@ contract LiquidPledging is LiquidPledgingBase { nTo.amount += amount; Transfer(from, to, amount); + callPlugins(false, from, to, amount); } // This function does 2 things, #1: it checks to make sure that the pledges are correct @@ -785,37 +785,42 @@ contract LiquidPledging is LiquidPledgingBase { // Plugins ///////////// - function callPlugin(uint64 managerId, uint64 fromNote, uint64 toNote, uint64 context, uint amount) internal returns (uint allowedAmount) { + function callPlugin(bool before, uint64 managerId, uint64 fromNote, uint64 toNote, uint64 context, uint amount) internal returns (uint allowedAmount) { + uint newAmount; allowedAmount = amount; NoteManager storage manager = findManager(managerId); if ((address(manager.plugin) != 0) && (allowedAmount > 0)) { - uint newAmount = manager.plugin.onTransfer(managerId, fromNote, toNote, context, amount); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; + if (before) { + newAmount = manager.plugin.beforeTransfer(managerId, fromNote, toNote, context, amount); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + manager.plugin.afterTransfer(managerId, fromNote, toNote, context, amount); + } } } - function callPluginsNote(uint64 idNote, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { + function callPluginsNote(bool before, uint64 idNote, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { uint64 offset = idNote == fromNote ? 0 : 256; allowedAmount = amount; Note storage n = findNote(idNote); - allowedAmount = callPlugin(n.owner, fromNote, toNote, offset, allowedAmount); + allowedAmount = callPlugin(before, n.owner, fromNote, toNote, offset, allowedAmount); for (uint64 i=0; i 0) { - allowedAmount = callPlugin(n.proposedProject, fromNote, toNote, offset + 255, allowedAmount); + allowedAmount = callPlugin(before, n.proposedProject, fromNote, toNote, offset + 255, allowedAmount); } } - function callPlugins(uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { + function callPlugins(bool before, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { allowedAmount = amount; - allowedAmount = callPluginsNote(fromNote, fromNote, toNote, allowedAmount); - allowedAmount = callPluginsNote(toNote, fromNote, toNote, allowedAmount); + allowedAmount = callPluginsNote(before, fromNote, fromNote, toNote, allowedAmount); + allowedAmount = callPluginsNote(before, toNote, fromNote, toNote, allowedAmount); } ///////////// diff --git a/contracts/ILiquidPledgingPlugin.sol b/contracts/ILiquidPledgingPlugin.sol index e5f8f1f..f217cfe 100644 --- a/contracts/ILiquidPledgingPlugin.sol +++ b/contracts/ILiquidPledgingPlugin.sol @@ -14,5 +14,6 @@ contract ILiquidPledgingPlugin { /// 258 -> Second delegate to /// ... /// 511 -> proposedProject to - function onTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); + function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 2429358..136ad46 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -290,8 +290,6 @@ contract LiquidPledging is LiquidPledgingBase { } function transferOwnershipToDonor(uint64 idNote, uint amount, uint64 idReceiver) internal { - Note storage n = findNote(idNote); - uint64 toNote = findNote( idReceiver, new uint64[](0), @@ -358,7 +356,7 @@ contract LiquidPledging is LiquidPledgingBase { } function doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = callPlugins(from, to, _amount); + uint amount = callPlugins(true, from, to, _amount); if (from == to) return; if (amount == 0) return; Note storage nFrom = findNote(from); @@ -368,6 +366,7 @@ contract LiquidPledging is LiquidPledgingBase { nTo.amount += amount; Transfer(from, to, amount); + callPlugins(false, from, to, amount); } // This function does 2 things, #1: it checks to make sure that the pledges are correct @@ -415,37 +414,42 @@ contract LiquidPledging is LiquidPledgingBase { // Plugins ///////////// - function callPlugin(uint64 managerId, uint64 fromNote, uint64 toNote, uint64 context, uint amount) internal returns (uint allowedAmount) { + function callPlugin(bool before, uint64 managerId, uint64 fromNote, uint64 toNote, uint64 context, uint amount) internal returns (uint allowedAmount) { + uint newAmount; allowedAmount = amount; NoteManager storage manager = findManager(managerId); if ((address(manager.plugin) != 0) && (allowedAmount > 0)) { - uint newAmount = manager.plugin.onTransfer(managerId, fromNote, toNote, context, amount); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; + if (before) { + newAmount = manager.plugin.beforeTransfer(managerId, fromNote, toNote, context, amount); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + manager.plugin.afterTransfer(managerId, fromNote, toNote, context, amount); + } } } - function callPluginsNote(uint64 idNote, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { + function callPluginsNote(bool before, uint64 idNote, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { uint64 offset = idNote == fromNote ? 0 : 256; allowedAmount = amount; Note storage n = findNote(idNote); - allowedAmount = callPlugin(n.owner, fromNote, toNote, offset, allowedAmount); + allowedAmount = callPlugin(before, n.owner, fromNote, toNote, offset, allowedAmount); for (uint64 i=0; i 0) { - allowedAmount = callPlugin(n.proposedProject, fromNote, toNote, offset + 255, allowedAmount); + allowedAmount = callPlugin(before, n.proposedProject, fromNote, toNote, offset + 255, allowedAmount); } } - function callPlugins(uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { + function callPlugins(bool before, uint64 fromNote, uint64 toNote, uint amount) internal returns (uint allowedAmount) { allowedAmount = amount; - allowedAmount = callPluginsNote(fromNote, fromNote, toNote, allowedAmount); - allowedAmount = callPluginsNote(toNote, fromNote, toNote, allowedAmount); + allowedAmount = callPluginsNote(before, fromNote, fromNote, toNote, allowedAmount); + allowedAmount = callPluginsNote(before, toNote, fromNote, toNote, allowedAmount); } ///////////// diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 8fd9b45..4942fa1 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -26,15 +26,15 @@ const printBalances = async(liquidPledging) => { }; const readTest = async(liquidPledging) => { - t1 = await liquidPledging.test1(); - t2 = await liquidPledging.test2(); - t3 = await liquidPledging.test3(); - t4 = await liquidPledging.test4(); - console.log("t1: ", t1.toNumber()); - console.log("t2: ", t2.toNumber()); - console.log("t3: ", t3.toNumber()); - console.log("t4: ", t4.toNumber()); -} + const t1 = await liquidPledging.test1(); + const t2 = await liquidPledging.test2(); + const t3 = await liquidPledging.test3(); + const t4 = await liquidPledging.test4(); + console.log('t1: ', t1.toNumber()); + console.log('t2: ', t2.toNumber()); + console.log('t3: ', t3.toNumber()); + console.log('t4: ', t4.toNumber()); +}; describe('LiquidPledging test', () => { let web3;