diff --git a/.soliumignore b/.soliumignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.soliumignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.soliumrc.json b/.soliumrc.json new file mode 100644 index 0000000..09bb174 --- /dev/null +++ b/.soliumrc.json @@ -0,0 +1,22 @@ +{ + "custom-rules-filename": null, + "rules": { + "imports-on-top": true, + "variable-declarations": true, + "array-declarations": true, + "operator-whitespace": true, + "lbrace": true, + "mixedcase": true, + "camelcase": true, + "uppercase": true, + "no-with": true, + "no-empty-blocks": true, + "no-unused-vars": true, + "double-quotes": true, + "blank-lines": true, + "indentation": true, + "whitespace": true, + "deprecated-suicide": true, + "pragma-on-top": true + } +} \ No newline at end of file diff --git a/README.md b/README.md index cdb71c1..9d2aa82 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Liquid Pledging +![Liquid Pledging](readme-header.png) > Ethereum contract to delegate donations to projects. diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index 0b5931a..b7463cc 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -6,11 +6,11 @@ exports.ILiquidPledgingPluginRuntimeByteCode = "0x" exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.LPVaultByteCode = "0x" exports.LPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","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":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200432583398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140da806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061230295505050505050565b6102726001604060020a036004358116906024351661234d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124b7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125a2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061260f915050565b34156108d657600080fd5b6102726001604060020a03600435166024356126fa565b34156108f857600080fd5b61090c6001604060020a036004351661280e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129d395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a3e915050565b3415610b5857600080fd5b610b60612b29565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d7a565b600080610b9387612b38565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b7c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b7c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b38565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bc2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612c88565b9050610e99848285612f78565b50505050565b600080600080600080600080610eb489612b38565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b38565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b7c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613041565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612c88565b9050611217858286612f78565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b38565b94506112ce86612b7c565b93506112d989612b7c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b141561136657611361888888613088565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130b8565b6001845460ff16600281111561139b57fe5b14156113c0576113b3888887600201805490506132e1565b97506113618888886133e6565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61350d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e888887600201805490506132e1565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761350d565b6001604060020a0390811691508114156116c8576113b38888600185896002018054905003036132e1565b818111156116e7576113b38888600185896002018054905003036132e1565b8181116113c25761154e8888600184896002018054905003036132e1565b6002845460ff16600281111561171757fe5b14156113c0576117348888600185896002018054905003036132e1565b97506113c2888888613573565b505050505050505050565b60008060008061175b85612b38565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd613896565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612c88565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612c88565b90506118cd85828560000154612f78565b8094506118d985612b38565b92505b6118e585612bc2565b90506001604060020a03808216908616146119095761190985828560000154612f78565b8093505b505050919050565b6001805490818082016119288382613d8c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613dbd565b50606082015181600201908051611a08929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b7c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261389a565b10611db057600080fd5b60018054925082808201611dc48382613d8c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613dbd565b50606082015181600201908051611ea5929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b7c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613d8c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613dbd565b50606082015181600201908051612124929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b38565b60018101549092506122ba906001604060020a0316612b7c565b90506122e1816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f78565b600080805b8351821015612346576001604060020a0384838151811061232457fe5b9060200190602002015116905061233a8161174c565b50600190910190612307565b5050919050565b60008080806001604060020a0386161515612393576123906020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b61239c86612b7c565b93506123c3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123d557fe5b146123df57600080fd5b349250600083116123ef57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561242257600080fd5b6124518660006040518059106124355750595b9080825280602002602001820160405250600080600080612c88565b915061245c82612b38565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124af868385886112a7565b505050505050565b60006124c286612b7c565b90506001815460ff1660028111156124d657fe5b146124e057600080fd5b805433600160a060020a0390811661010090920416146124ff57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612532929160200190613dbd565b5060028101838051612548929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124af576001604060020a038584815181106125c457fe5b90602001906020020151169150604060020a8584815181106125e257fe5b906020019060200201518115156125f557fe5b049050612604868383876112a7565b6001909201916125a7565b600061261a86612b7c565b90506000815460ff16600281111561262e57fe5b1461263857600080fd5b805433600160a060020a03908116610100909204161461265757600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161268a929160200190613dbd565b50600281018380516126a0929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461271a57600080fd5b61272384612b38565b91506001600383015460c060020a900460ff16600281111561274157fe5b1461274b57600080fd5b6001820154600283018054612803926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127de57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161279b5790505b505050506003860154600091508190608060020a90046001604060020a031681612c88565b9050610e8c8161174c565b600080612819613d7a565b612821613d7a565b60008060008060006128328a612b7c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156128e85780601f106128bd576101008083540402835291602001916128e8565b820191906000526020600020905b8154815290600101906020018083116128cb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129875780601f1061295c57610100808354040283529160200191612987565b820191906000526020600020905b81548152906001019060200180831161296a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a038484815181106129f557fe5b90602001906020020151169150604060020a848481518110612a1357fe5b90602001906020020151811515612a2657fe5b049050612a3382826126fa565b6001909201916129d8565b6000612a4986612b7c565b90506002815460ff166002811115612a5d57fe5b14612a6757600080fd5b805433600160a060020a039081166101009092041614612a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ab9929160200190613dbd565b5060028101838051612acf929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b5057600080fd5b600080546001604060020a038416908110612b6757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612b9657600080fd5b600180546001604060020a038416908110612bad57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bdf5760009250612346565b612be884612b38565b6001810154909250612c02906001604060020a0316612b7c565b90506000815460ff166002811115612c1657fe5b1415612c2457839250612346565b6002815460ff166002811115612c3657fe5b14612c3d57fe5b6001820154612c54906001604060020a0316610ca1565b1515612c6257839250612346565b6003820154612c8090608060020a90046001604060020a0316612bc2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cd5578082015183820152602001612cbd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d4257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dab57809250612f6c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612de98382613e3b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e5a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ea5929160200190613e67565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f6057fe5b02179055505050508092505b50509695505050505050565b6000806000612f8a6001878787613904565b9250846001604060020a0316866001604060020a03161415612fab576124af565b821515612fb7576124af565b612fc086612b38565b9150612fcb85612b38565b825490915083901015612fdd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130386000878786613904565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061307a57508060e00151600160a060020a031633600160a060020a0316145b151561308557600080fd5b50565b6000610e8c8260006040518059106124355750599080825280602002602001820160405250600080600080612c88565b60008060006130c686612b38565b925060146131fa8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131515790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b60028111156131f257fe5b90525061392a565b1061320457600080fd5b61320d84610ca1565b1561321757600080fd5b60018301546002840180546132a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612c88565b91506132d48460006040518059106118a05750599080825280602002602001820160405250600080866000612c88565b90506124af868287612f78565b6000806132ec613d7a565b6000806132f888612b38565b60028101549094508690036040518059106133105750595b90808252806020026020018201604052509250600091505b600284015486900382101561339e576002840180548390811061334757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061337c57fe5b6001604060020a03909216602092830290910190910152600190910190613328565b600184015460038501546133ce916001604060020a039081169186916000918291608060020a9091041681612c88565b90506133db888289612f78565b979650505050505050565b60006133f0613d7a565b6000806133fc87612b38565b60028101549094506014901061341157600080fd5b60028401546001016040518059106134265750595b90808252806020026020018201604052509250600091505b60028401548210156134b1576002840180548390811061345a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061348f57fe5b6001604060020a0390921660209283029091019091015260019091019061343e565b600284015485908490815181106134c457fe5b6001604060020a039283166020918202909201015260018501546003860154613500929182169186916000918291608060020a90041681612c88565b9050613038878288612f78565b6000805b83604001515181101561356157826001604060020a03168460400151828151811061353857fe5b906020019060200201516001604060020a031614156135595780915061356c565b600101613511565b6001604060020a0391505b5092915050565b60008061357f85612b38565b915060146136758360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b1061367f57600080fd5b61368883610ca1565b1561369257600080fd5b6001820154600283018054613882926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561372557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136e25790505b50505050508561385b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156137f557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137b25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561384857fe5b600281111561385357fe5b905250613a55565b613863613896565b6003880154910190608060020a90046001604060020a03166000612c88565b905061388f858286612f78565b5050505050565b4290565b6000806002835160028111156138ac57fe5b146138b357fe5b8260a001516001604060020a031615156138d05760019150610d4b565b6138dd8360a00151612b7c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139128585808685613adf565b90506139218584868685613adf565b95945050505050565b6000808260a001516001604060020a0316151561394a5760009150610d4b565b6139578360a00151612b38565b9050613a4b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b6001019392505050565b6000806000613a678460200151612b7c565b60038101546001604060020a031693509150600090505b83604001515181101561234657613aad84604001518281518110613a9e57fe5b90602001906020020151612b7c565b60038101549092506001604060020a031683901115613ad75760038201546001604060020a031692505b600101613a7e565b600080600080866001604060020a0316886001604060020a031614613b0657610100613b09565b60005b61ffff169250849350613b1b88612b38565b6001810154909250613b3b908a906001604060020a031689898789613bfd565b9350600090505b60028201546001604060020a0382161015613bb657613bac8983600201836001604060020a0316815481101515613b7557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613bfd565b9350600101613b42565b600382015460006001604060020a039091161115613bf1576003820154613bee908a906001604060020a0316898960ff880189613bfd565b93505b50505095945050505050565b80600080613c0a88612b7c565b6004810154909150600160a060020a031615801590613c295750600083115b15612f6c578815613ce4576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cb357600080fd5b6102c65a03f11515613cc457600080fd5b505050604051805192505082821115613cdc57600080fd5b819250612f6c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d5a57600080fd5b6102c65a03f11515613d6b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613db857600502816005028360005260206000209182019101613db89190613f1b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613dfe57805160ff1916838001178555613e2b565b82800160010185558215613e2b579182015b82811115613e2b578251825591602001919060010190613e10565b50613e37929150613fa6565b5090565b815481835581811511613db857600402816004028360005260206000209182019101613db89190613fc0565b82805482825590600052602060002090600301600490048101928215613f0f5791602002820160005b83821115613eda57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e90565b8015613f0d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613eda565b505b50613e37929150614020565b610d5991905b80821115613e3757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f546001830182614045565b613f62600283016000614045565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f21565b610d5991905b80821115613e375760008155600101613fac565b610d5991905b80821115613e3757600080825560018201805467ffffffffffffffff19169055613ff36002830182614089565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fc6565b610d5991905b80821115613e3757805467ffffffffffffffff19168155600101614026565b50805460018160011615610100020316600290046000825580601f1061406b5750613085565b601f0160209004906000526020600020908101906130859190613fa6565b5080546000825560030160049004906000526020600020908101906130859190613fa65600a165627a7a72305820b7e4762d3d29183e2b3ff0fa894718f417f1b4e9cd156b774a679dad3afacf670029" -exports.LiquidPledgingRuntimeByteCode = "0x60606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061230295505050505050565b6102726001604060020a036004358116906024351661234d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124b7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125a2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061260f915050565b34156108d657600080fd5b6102726001604060020a03600435166024356126fa565b34156108f857600080fd5b61090c6001604060020a036004351661280e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129d395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a3e915050565b3415610b5857600080fd5b610b60612b29565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d7a565b600080610b9387612b38565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b7c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b7c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b38565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bc2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612c88565b9050610e99848285612f78565b50505050565b600080600080600080600080610eb489612b38565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b38565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b7c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613041565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612c88565b9050611217858286612f78565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b38565b94506112ce86612b7c565b93506112d989612b7c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b141561136657611361888888613088565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130b8565b6001845460ff16600281111561139b57fe5b14156113c0576113b3888887600201805490506132e1565b97506113618888886133e6565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61350d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e888887600201805490506132e1565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761350d565b6001604060020a0390811691508114156116c8576113b38888600185896002018054905003036132e1565b818111156116e7576113b38888600185896002018054905003036132e1565b8181116113c25761154e8888600184896002018054905003036132e1565b6002845460ff16600281111561171757fe5b14156113c0576117348888600185896002018054905003036132e1565b97506113c2888888613573565b505050505050505050565b60008060008061175b85612b38565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd613896565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612c88565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612c88565b90506118cd85828560000154612f78565b8094506118d985612b38565b92505b6118e585612bc2565b90506001604060020a03808216908616146119095761190985828560000154612f78565b8093505b505050919050565b6001805490818082016119288382613d8c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613dbd565b50606082015181600201908051611a08929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b7c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261389a565b10611db057600080fd5b60018054925082808201611dc48382613d8c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613dbd565b50606082015181600201908051611ea5929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b7c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613d8c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613dbd565b50606082015181600201908051612124929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b38565b60018101549092506122ba906001604060020a0316612b7c565b90506122e1816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f78565b600080805b8351821015612346576001604060020a0384838151811061232457fe5b9060200190602002015116905061233a8161174c565b50600190910190612307565b5050919050565b60008080806001604060020a0386161515612393576123906020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b61239c86612b7c565b93506123c3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123d557fe5b146123df57600080fd5b349250600083116123ef57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561242257600080fd5b6124518660006040518059106124355750595b9080825280602002602001820160405250600080600080612c88565b915061245c82612b38565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124af868385886112a7565b505050505050565b60006124c286612b7c565b90506001815460ff1660028111156124d657fe5b146124e057600080fd5b805433600160a060020a0390811661010090920416146124ff57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612532929160200190613dbd565b5060028101838051612548929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124af576001604060020a038584815181106125c457fe5b90602001906020020151169150604060020a8584815181106125e257fe5b906020019060200201518115156125f557fe5b049050612604868383876112a7565b6001909201916125a7565b600061261a86612b7c565b90506000815460ff16600281111561262e57fe5b1461263857600080fd5b805433600160a060020a03908116610100909204161461265757600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161268a929160200190613dbd565b50600281018380516126a0929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461271a57600080fd5b61272384612b38565b91506001600383015460c060020a900460ff16600281111561274157fe5b1461274b57600080fd5b6001820154600283018054612803926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127de57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161279b5790505b505050506003860154600091508190608060020a90046001604060020a031681612c88565b9050610e8c8161174c565b600080612819613d7a565b612821613d7a565b60008060008060006128328a612b7c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156128e85780601f106128bd576101008083540402835291602001916128e8565b820191906000526020600020905b8154815290600101906020018083116128cb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129875780601f1061295c57610100808354040283529160200191612987565b820191906000526020600020905b81548152906001019060200180831161296a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a038484815181106129f557fe5b90602001906020020151169150604060020a848481518110612a1357fe5b90602001906020020151811515612a2657fe5b049050612a3382826126fa565b6001909201916129d8565b6000612a4986612b7c565b90506002815460ff166002811115612a5d57fe5b14612a6757600080fd5b805433600160a060020a039081166101009092041614612a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ab9929160200190613dbd565b5060028101838051612acf929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b5057600080fd5b600080546001604060020a038416908110612b6757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612b9657600080fd5b600180546001604060020a038416908110612bad57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bdf5760009250612346565b612be884612b38565b6001810154909250612c02906001604060020a0316612b7c565b90506000815460ff166002811115612c1657fe5b1415612c2457839250612346565b6002815460ff166002811115612c3657fe5b14612c3d57fe5b6001820154612c54906001604060020a0316610ca1565b1515612c6257839250612346565b6003820154612c8090608060020a90046001604060020a0316612bc2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cd5578082015183820152602001612cbd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d4257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dab57809250612f6c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612de98382613e3b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e5a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ea5929160200190613e67565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f6057fe5b02179055505050508092505b50509695505050505050565b6000806000612f8a6001878787613904565b9250846001604060020a0316866001604060020a03161415612fab576124af565b821515612fb7576124af565b612fc086612b38565b9150612fcb85612b38565b825490915083901015612fdd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130386000878786613904565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061307a57508060e00151600160a060020a031633600160a060020a0316145b151561308557600080fd5b50565b6000610e8c8260006040518059106124355750599080825280602002602001820160405250600080600080612c88565b60008060006130c686612b38565b925060146131fa8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131515790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b60028111156131f257fe5b90525061392a565b1061320457600080fd5b61320d84610ca1565b1561321757600080fd5b60018301546002840180546132a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612c88565b91506132d48460006040518059106118a05750599080825280602002602001820160405250600080866000612c88565b90506124af868287612f78565b6000806132ec613d7a565b6000806132f888612b38565b60028101549094508690036040518059106133105750595b90808252806020026020018201604052509250600091505b600284015486900382101561339e576002840180548390811061334757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061337c57fe5b6001604060020a03909216602092830290910190910152600190910190613328565b600184015460038501546133ce916001604060020a039081169186916000918291608060020a9091041681612c88565b90506133db888289612f78565b979650505050505050565b60006133f0613d7a565b6000806133fc87612b38565b60028101549094506014901061341157600080fd5b60028401546001016040518059106134265750595b90808252806020026020018201604052509250600091505b60028401548210156134b1576002840180548390811061345a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061348f57fe5b6001604060020a0390921660209283029091019091015260019091019061343e565b600284015485908490815181106134c457fe5b6001604060020a039283166020918202909201015260018501546003860154613500929182169186916000918291608060020a90041681612c88565b9050613038878288612f78565b6000805b83604001515181101561356157826001604060020a03168460400151828151811061353857fe5b906020019060200201516001604060020a031614156135595780915061356c565b600101613511565b6001604060020a0391505b5092915050565b60008061357f85612b38565b915060146136758360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b1061367f57600080fd5b61368883610ca1565b1561369257600080fd5b6001820154600283018054613882926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561372557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136e25790505b50505050508561385b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156137f557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137b25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561384857fe5b600281111561385357fe5b905250613a55565b613863613896565b6003880154910190608060020a90046001604060020a03166000612c88565b905061388f858286612f78565b5050505050565b4290565b6000806002835160028111156138ac57fe5b146138b357fe5b8260a001516001604060020a031615156138d05760019150610d4b565b6138dd8360a00151612b7c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139128585808685613adf565b90506139218584868685613adf565b95945050505050565b6000808260a001516001604060020a0316151561394a5760009150610d4b565b6139578360a00151612b38565b9050613a4b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b6001019392505050565b6000806000613a678460200151612b7c565b60038101546001604060020a031693509150600090505b83604001515181101561234657613aad84604001518281518110613a9e57fe5b90602001906020020151612b7c565b60038101549092506001604060020a031683901115613ad75760038201546001604060020a031692505b600101613a7e565b600080600080866001604060020a0316886001604060020a031614613b0657610100613b09565b60005b61ffff169250849350613b1b88612b38565b6001810154909250613b3b908a906001604060020a031689898789613bfd565b9350600090505b60028201546001604060020a0382161015613bb657613bac8983600201836001604060020a0316815481101515613b7557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613bfd565b9350600101613b42565b600382015460006001604060020a039091161115613bf1576003820154613bee908a906001604060020a0316898960ff880189613bfd565b93505b50505095945050505050565b80600080613c0a88612b7c565b6004810154909150600160a060020a031615801590613c295750600083115b15612f6c578815613ce4576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cb357600080fd5b6102c65a03f11515613cc457600080fd5b505050604051805192505082821115613cdc57600080fd5b819250612f6c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d5a57600080fd5b6102c65a03f11515613d6b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613db857600502816005028360005260206000209182019101613db89190613f1b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613dfe57805160ff1916838001178555613e2b565b82800160010185558215613e2b579182015b82811115613e2b578251825591602001919060010190613e10565b50613e37929150613fa6565b5090565b815481835581811511613db857600402816004028360005260206000209182019101613db89190613fc0565b82805482825590600052602060002090600301600490048101928215613f0f5791602002820160005b83821115613eda57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e90565b8015613f0d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613eda565b505b50613e37929150614020565b610d5991905b80821115613e3757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f546001830182614045565b613f62600283016000614045565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f21565b610d5991905b80821115613e375760008155600101613fac565b610d5991905b80821115613e3757600080825560018201805467ffffffffffffffff19169055613ff36002830182614089565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fc6565b610d5991905b80821115613e3757805467ffffffffffffffff19168155600101614026565b50805460018160011615610100020316600290046000825580601f1061406b5750613085565b601f0160209004906000526020600020908101906130859190613fa6565b5080546000825560030160049004906000526020600020908101906130859190613fa65600a165627a7a72305820b7e4762d3d29183e2b3ff0fa894718f417f1b4e9cd156b774a679dad3afacf670029" +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","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":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200432d83398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140e2806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bde60ac914610684578063cc19ecf71461069e578063ce17273c14610759578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9a565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610eff565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a2565b341561034e57600080fd5b6103626001604060020a0360043516611747565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611910915050565b341561043557600080fd5b61023e611afe565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0895505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b739050565b341561055357600080fd5b6102726001604060020a0360043516611f9e565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202c915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221995505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612284565b6102726001604060020a0360043581169060243516612330565b34156106a957600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061249a915050565b341561076457600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061258595505050505050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125bc915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612629915050565b34156108d657600080fd5b6102726001604060020a0360043516602435612714565b34156108f857600080fd5b61090c6001604060020a0360043516612828565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129ed95505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a58915050565b3415610b5857600080fd5b610b60612b43565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d82565b600080610b9387612b52565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b96565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b96565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b52565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b6001820154610dc4906001604060020a0316610ca1565b15610dce57600080fd5b6001820154600283018054610e87926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e1e5790505b505050506003860154600091508190608060020a90046001604060020a03166002612bdc565b9050610e94848285612ecc565b50505050565b600080600080600080600080610eaf89612b52565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f0d85611747565b9450610f1885612b52565b92506000600384015460c060020a900460ff166002811115610f3657fe5b14610f4057600080fd5b6001830154610f57906001604060020a0316612b96565b915061114c826101006040519081016040528154909190829060ff166002811115610f7e57fe5b6002811115610f8957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110555780601f1061102a57610100808354040283529160200191611055565b820191906000526020600020905b81548152906001019060200180831161103857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110f75780601f106110cc576101008083540402835291602001916110f7565b820191906000526020600020905b8154815290600101906020018083116110da57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152612f95565b6001830154600284018054611205926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111df57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161119c5790505b505050506003870154600091508190608060020a90046001604060020a03166001612bdc565b9050611212858286612ecc565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128757600080fd5b6102c65a03f1151561129857600080fd5b5050505050505050565b60008060008060006112b388611747565b97506112be88612b52565b94506112c986612b96565b93506112d489612b96565b92506112fb836101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000600386015460c060020a900460ff16600281111561131757fe5b1461132157600080fd5b60018501546001604060020a038a8116911614156113c2576000845460ff16600281111561134b57fe5b14156113615761135c888888612fdc565b6113bd565b6002845460ff16600281111561137357fe5b14156113845761135c88888861300c565b6001845460ff16600281111561139657fe5b14156113bb576113ae88888760020180549050613235565b975061135c88888861333a565bfe5b61173c565b6114f38560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561148c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114495790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114df57fe5b60028111156114ea57fe5b9052508a613461565b6001604060020a03908116925082146113bb576000845460ff16600281111561151857fe5b141561154f5760018501546001604060020a0387811691161461153757fe5b61154988888760020180549050613235565b5061173c565b6001845460ff16600281111561156157fe5b1415611700576116988560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115ee5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168457fe5b600281111561168f57fe5b90525087613461565b6001604060020a0390811691508114156116c3576113ae888860018589600201805490500303613235565b818111156116e2576113ae888860018589600201805490500303613235565b8181116113bd57611549888860018489600201805490500303613235565b6002845460ff16600281111561171257fe5b14156113bb5761172f888860018589600201805490500303613235565b97506113bd8888886134c7565b505050505050505050565b60008060008061175685612b52565b92506000600384015460c060020a900460ff16600281111561177457fe5b1461178157849350611908565b600383015460006001604060020a039091161180156117ba57506003830154604060020a90046001604060020a03166117b86137d6565b115b156118d7576001830154600284018054611877926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161180f5790505b505050506003870154600091508190608060020a90046001604060020a031681612bdc565b60038401549092506118b7906001604060020a0316600060405180591061189b5750595b9080825280602002602001820160405250600080866000612bdc565b90506118c885828560000154612ecc565b8094506118d485612b52565b92505b6118e0856137da565b90506001604060020a03808216908616146119045761190485828560000154612ecc565b8093505b505050919050565b6001805490818082016119238382613d94565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119e8929160200190613dc5565b50606082015181600201908051611a03929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e94576001604060020a03848481518110611b2a57fe5b90602001906020020151169150604060020a848481518110611b4857fe5b90602001906020020151811515611b5b57fe5b049050611b688282610eff565b600190920191611b0d565b6000806001604060020a03851615611dab57611b8e85612b96565b90506002815460ff166002811115611ba257fe5b14611bac57600080fd5b6014611da1826101006040519081016040528154909190829060ff166002811115611bd357fe5b6002811115611bde57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d4c5780601f10611d2157610100808354040283529160200191611d4c565b820191906000526020600020905b815481529060010190602001808311611d2f57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138a2565b10611dab57600080fd5b60018054925082808201611dbf8382613d94565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e3f57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e85929160200190613dc5565b50606082015181600201908051611ea0929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fa982612b96565b9050611fd0816101006040519081016040528154909190829060ff166002811115610f7e57fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60018054908180820161203f8382613d94565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120be57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612104929160200190613dc5565b5060608201518160020190805161211f929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e94576001604060020a0384848151811061223b57fe5b90602001906020020151169150604060020a84848151811061225957fe5b9060200190602002015181151561226c57fe5b0490506122798282610d5c565b60019092019161221e565b600080600061229285611747565b945061229d85612b52565b6003810154909350608060020a90046001604060020a031615156122c057600080fd5b60018301546122d7906001604060020a0316612b96565b91506122fe826101006040519081016040528154909190829060ff166002811115610f7e57fe5b600383015461231c90608060020a90046001604060020a03166137da565b9050612329858286612ecc565b5050505050565b60008080806001604060020a0386161515612376576123736020604051908101604052806000815250602060405190810160405260008082526203f4809061202c565b95505b61237f86612b96565b93506123a6846101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000845460ff1660028111156123b857fe5b146123c257600080fd5b349250600083116123d257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561240557600080fd5b6124348660006040518059106124185750595b9080825280602002602001820160405250600080600080612bdc565b915061243f82612b52565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612492868385886112a2565b505050505050565b60006124a586612b96565b90506001815460ff1660028111156124b957fe5b146124c357600080fd5b805433600160a060020a0390811661010090920416146124e257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612515929160200190613dc5565b506002810183805161252b929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b81518110156125b8576125af8282815181106125a057fe5b90602001906020020151611747565b50600101612588565b5050565b600080805b8451831015612492576001604060020a038584815181106125de57fe5b90602001906020020151169150604060020a8584815181106125fc57fe5b9060200190602002015181151561260f57fe5b04905061261e868383876112a2565b6001909201916125c1565b600061263486612b96565b90506000815460ff16600281111561264857fe5b1461265257600080fd5b805433600160a060020a03908116610100909204161461267157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126a4929160200190613dc5565b50600281018380516126ba929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273457600080fd5b61273d84612b52565b91506001600383015460c060020a900460ff16600281111561275b57fe5b1461276557600080fd5b600182015460028301805461281d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127f857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127b55790505b505050506003860154600091508190608060020a90046001604060020a031681612bdc565b9050610e8781611747565b600080612833613d82565b61283b613d82565b600080600080600061284c8a612b96565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129025780601f106128d757610100808354040283529160200191612902565b820191906000526020600020905b8154815290600101906020018083116128e557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a15780601f10612976576101008083540402835291602001916129a1565b820191906000526020600020905b81548152906001019060200180831161298457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e94576001604060020a03848481518110612a0f57fe5b90602001906020020151169150604060020a848481518110612a2d57fe5b90602001906020020151811515612a4057fe5b049050612a4d8282612714565b6001909201916129f2565b6000612a6386612b96565b90506002815460ff166002811115612a7757fe5b14612a8157600080fd5b805433600160a060020a039081166101009092041614612aa057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad3929160200190613dc5565b5060028101838051612ae9929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b6a57600080fd5b600080546001604060020a038416908110612b8157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb057600080fd5b600180546001604060020a038416908110612bc757fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612c29578082015183820152602001612c11565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612c9657fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612cff57809250612ec0565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612d3d8382613e43565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612dae57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612df9929160200190613e6f565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612eb457fe5b02179055505050508092505b50509695505050505050565b6000806000612ede600187878761390c565b9250846001604060020a0316866001604060020a03161415612eff57612492565b821515612f0b57612492565b612f1486612b52565b9150612f1f85612b52565b825490915083901015612f3157600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612f8c600087878661390c565b50505050505050565b8060200151600160a060020a031633600160a060020a03161480612fce57508060e00151600160a060020a031633600160a060020a0316145b1515612fd957600080fd5b50565b6000610e878260006040518059106124185750599080825280602002602001820160405250600080600080612bdc565b600080600061301a86612b52565b9250601461314e8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130a55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b600281111561314657fe5b905250613932565b1061315857600080fd5b61316184610ca1565b1561316b57600080fd5b60018301546002840180546131f8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257600091825260209182902080546001604060020a0316845290820283019290916008910180841161180f5750505050600388015460009250829150608060020a90046001604060020a031681612bdc565b915061322884600060405180591061189b5750599080825280602002602001820160405250600080866000612bdc565b9050612492868287612ecc565b600080613240613d82565b60008061324c88612b52565b60028101549094508690036040518059106132645750595b90808252806020026020018201604052509250600091505b60028401548690038210156132f2576002840180548390811061329b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106132d057fe5b6001604060020a0390921660209283029091019091015260019091019061327c565b60018401546003850154613322916001604060020a039081169186916000918291608060020a9091041681612bdc565b905061332f888289612ecc565b979650505050505050565b6000613344613d82565b60008061335087612b52565b60028101549094506014901061336557600080fd5b600284015460010160405180591061337a5750595b90808252806020026020018201604052509250600091505b600284015482101561340557600284018054839081106133ae57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133e357fe5b6001604060020a03909216602092830290910190910152600190910190613392565b6002840154859084908151811061341857fe5b6001604060020a039283166020918202909201015260018501546003860154613454929182169186916000918291608060020a90041681612bdc565b9050612f8c878288612ecc565b6000805b8360400151518110156134b557826001604060020a03168460400151828151811061348c57fe5b906020019060200201516001604060020a031614156134ad578091506134c0565b600101613465565b6001604060020a0391505b5092915050565b6000806134d385612b52565b915060146135c98360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b106135d357600080fd5b6135dc83610ca1565b156135e657600080fd5b600182015460028301805461231c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561367957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136365790505b5050505050856137af8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561374957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137065790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561379c57fe5b60028111156137a757fe5b905250613a5d565b6137b76137d6565b6003880154910190608060020a90046001604060020a03166000612bdc565b4290565b600080806001604060020a03841615156137f7576000925061389b565b61380084612b52565b600181015490925061381a906001604060020a0316612b96565b90506000815460ff16600281111561382e57fe5b141561383c5783925061389b565b6002815460ff16600281111561384e57fe5b1461385557fe5b600182015461386c906001604060020a0316610ca1565b151561387a5783925061389b565b600382015461389890608060020a90046001604060020a03166137da565b92505b5050919050565b6000806002835160028111156138b457fe5b146138bb57fe5b8260a001516001604060020a031615156138d85760019150610d4b565b6138e58360a00151612b96565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd357fe5b8061391a8585808685613ae7565b90506139298584868685613ae7565b95945050505050565b6000808260a001516001604060020a031615156139525760009150610d4b565b61395f8360a00151612b52565b9050613a538160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b6001019392505050565b6000806000613a6f8460200151612b96565b60038101546001604060020a031693509150600090505b83604001515181101561389b57613ab584604001518281518110613aa657fe5b90602001906020020151612b96565b60038101549092506001604060020a031683901115613adf5760038201546001604060020a031692505b600101613a86565b600080600080866001604060020a0316886001604060020a031614613b0e57610100613b11565b60005b61ffff169250849350613b2388612b52565b6001810154909250613b43908a906001604060020a031689898789613c05565b9350600090505b60028201546001604060020a0382161015613bbe57613bb48983600201836001604060020a0316815481101515613b7d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c05565b9350600101613b4a565b600382015460006001604060020a039091161115613bf9576003820154613bf6908a906001604060020a0316898960ff880189613c05565b93505b50505095945050505050565b80600080613c1288612b96565b6004810154909150600160a060020a031615801590613c315750600083115b15612ec0578815613cec576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cbb57600080fd5b6102c65a03f11515613ccc57600080fd5b505050604051805192505082821115613ce457600080fd5b819250612ec0565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d6257600080fd5b6102c65a03f11515613d7357600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dc057600502816005028360005260206000209182019101613dc09190613f23565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e0657805160ff1916838001178555613e33565b82800160010185558215613e33579182015b82811115613e33578251825591602001919060010190613e18565b50613e3f929150613fae565b5090565b815481835581811511613dc057600402816004028360005260206000209182019101613dc09190613fc8565b82805482825590600052602060002090600301600490048101928215613f175791602002820160005b83821115613ee257835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e98565b8015613f155782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ee2565b505b50613e3f929150614028565b610d5991905b80821115613e3f57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f5c600183018261404d565b613f6a60028301600061404d565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f29565b610d5991905b80821115613e3f5760008155600101613fb4565b610d5991905b80821115613e3f57600080825560018201805467ffffffffffffffff19169055613ffb6002830182614091565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fce565b610d5991905b80821115613e3f57805467ffffffffffffffff1916815560010161402e565b50805460018160011615610100020316600290046000825580601f106140735750612fd9565b601f016020900490600052602060002090810190612fd99190613fae565b508054600082556003016004900490600052602060002090810190612fd99190613fae5600a165627a7a723058203a7df47bcc179188ae583c3a3d06953598a3c661c1a555835365ced364d709730029" +exports.LiquidPledgingRuntimeByteCode = "0x60606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bde60ac914610684578063cc19ecf71461069e578063ce17273c14610759578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9a565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610eff565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a2565b341561034e57600080fd5b6103626001604060020a0360043516611747565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611910915050565b341561043557600080fd5b61023e611afe565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0895505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b739050565b341561055357600080fd5b6102726001604060020a0360043516611f9e565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202c915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221995505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612284565b6102726001604060020a0360043581169060243516612330565b34156106a957600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061249a915050565b341561076457600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061258595505050505050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125bc915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612629915050565b34156108d657600080fd5b6102726001604060020a0360043516602435612714565b34156108f857600080fd5b61090c6001604060020a0360043516612828565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129ed95505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a58915050565b3415610b5857600080fd5b610b60612b43565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d82565b600080610b9387612b52565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b96565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b96565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b52565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b6001820154610dc4906001604060020a0316610ca1565b15610dce57600080fd5b6001820154600283018054610e87926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e1e5790505b505050506003860154600091508190608060020a90046001604060020a03166002612bdc565b9050610e94848285612ecc565b50505050565b600080600080600080600080610eaf89612b52565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f0d85611747565b9450610f1885612b52565b92506000600384015460c060020a900460ff166002811115610f3657fe5b14610f4057600080fd5b6001830154610f57906001604060020a0316612b96565b915061114c826101006040519081016040528154909190829060ff166002811115610f7e57fe5b6002811115610f8957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110555780601f1061102a57610100808354040283529160200191611055565b820191906000526020600020905b81548152906001019060200180831161103857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110f75780601f106110cc576101008083540402835291602001916110f7565b820191906000526020600020905b8154815290600101906020018083116110da57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152612f95565b6001830154600284018054611205926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111df57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161119c5790505b505050506003870154600091508190608060020a90046001604060020a03166001612bdc565b9050611212858286612ecc565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128757600080fd5b6102c65a03f1151561129857600080fd5b5050505050505050565b60008060008060006112b388611747565b97506112be88612b52565b94506112c986612b96565b93506112d489612b96565b92506112fb836101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000600386015460c060020a900460ff16600281111561131757fe5b1461132157600080fd5b60018501546001604060020a038a8116911614156113c2576000845460ff16600281111561134b57fe5b14156113615761135c888888612fdc565b6113bd565b6002845460ff16600281111561137357fe5b14156113845761135c88888861300c565b6001845460ff16600281111561139657fe5b14156113bb576113ae88888760020180549050613235565b975061135c88888861333a565bfe5b61173c565b6114f38560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561148c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114495790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114df57fe5b60028111156114ea57fe5b9052508a613461565b6001604060020a03908116925082146113bb576000845460ff16600281111561151857fe5b141561154f5760018501546001604060020a0387811691161461153757fe5b61154988888760020180549050613235565b5061173c565b6001845460ff16600281111561156157fe5b1415611700576116988560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115ee5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168457fe5b600281111561168f57fe5b90525087613461565b6001604060020a0390811691508114156116c3576113ae888860018589600201805490500303613235565b818111156116e2576113ae888860018589600201805490500303613235565b8181116113bd57611549888860018489600201805490500303613235565b6002845460ff16600281111561171257fe5b14156113bb5761172f888860018589600201805490500303613235565b97506113bd8888886134c7565b505050505050505050565b60008060008061175685612b52565b92506000600384015460c060020a900460ff16600281111561177457fe5b1461178157849350611908565b600383015460006001604060020a039091161180156117ba57506003830154604060020a90046001604060020a03166117b86137d6565b115b156118d7576001830154600284018054611877926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161180f5790505b505050506003870154600091508190608060020a90046001604060020a031681612bdc565b60038401549092506118b7906001604060020a0316600060405180591061189b5750595b9080825280602002602001820160405250600080866000612bdc565b90506118c885828560000154612ecc565b8094506118d485612b52565b92505b6118e0856137da565b90506001604060020a03808216908616146119045761190485828560000154612ecc565b8093505b505050919050565b6001805490818082016119238382613d94565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119e8929160200190613dc5565b50606082015181600201908051611a03929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e94576001604060020a03848481518110611b2a57fe5b90602001906020020151169150604060020a848481518110611b4857fe5b90602001906020020151811515611b5b57fe5b049050611b688282610eff565b600190920191611b0d565b6000806001604060020a03851615611dab57611b8e85612b96565b90506002815460ff166002811115611ba257fe5b14611bac57600080fd5b6014611da1826101006040519081016040528154909190829060ff166002811115611bd357fe5b6002811115611bde57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d4c5780601f10611d2157610100808354040283529160200191611d4c565b820191906000526020600020905b815481529060010190602001808311611d2f57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138a2565b10611dab57600080fd5b60018054925082808201611dbf8382613d94565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e3f57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e85929160200190613dc5565b50606082015181600201908051611ea0929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fa982612b96565b9050611fd0816101006040519081016040528154909190829060ff166002811115610f7e57fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60018054908180820161203f8382613d94565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120be57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612104929160200190613dc5565b5060608201518160020190805161211f929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e94576001604060020a0384848151811061223b57fe5b90602001906020020151169150604060020a84848151811061225957fe5b9060200190602002015181151561226c57fe5b0490506122798282610d5c565b60019092019161221e565b600080600061229285611747565b945061229d85612b52565b6003810154909350608060020a90046001604060020a031615156122c057600080fd5b60018301546122d7906001604060020a0316612b96565b91506122fe826101006040519081016040528154909190829060ff166002811115610f7e57fe5b600383015461231c90608060020a90046001604060020a03166137da565b9050612329858286612ecc565b5050505050565b60008080806001604060020a0386161515612376576123736020604051908101604052806000815250602060405190810160405260008082526203f4809061202c565b95505b61237f86612b96565b93506123a6846101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000845460ff1660028111156123b857fe5b146123c257600080fd5b349250600083116123d257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561240557600080fd5b6124348660006040518059106124185750595b9080825280602002602001820160405250600080600080612bdc565b915061243f82612b52565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612492868385886112a2565b505050505050565b60006124a586612b96565b90506001815460ff1660028111156124b957fe5b146124c357600080fd5b805433600160a060020a0390811661010090920416146124e257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612515929160200190613dc5565b506002810183805161252b929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b81518110156125b8576125af8282815181106125a057fe5b90602001906020020151611747565b50600101612588565b5050565b600080805b8451831015612492576001604060020a038584815181106125de57fe5b90602001906020020151169150604060020a8584815181106125fc57fe5b9060200190602002015181151561260f57fe5b04905061261e868383876112a2565b6001909201916125c1565b600061263486612b96565b90506000815460ff16600281111561264857fe5b1461265257600080fd5b805433600160a060020a03908116610100909204161461267157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126a4929160200190613dc5565b50600281018380516126ba929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273457600080fd5b61273d84612b52565b91506001600383015460c060020a900460ff16600281111561275b57fe5b1461276557600080fd5b600182015460028301805461281d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127f857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127b55790505b505050506003860154600091508190608060020a90046001604060020a031681612bdc565b9050610e8781611747565b600080612833613d82565b61283b613d82565b600080600080600061284c8a612b96565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129025780601f106128d757610100808354040283529160200191612902565b820191906000526020600020905b8154815290600101906020018083116128e557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a15780601f10612976576101008083540402835291602001916129a1565b820191906000526020600020905b81548152906001019060200180831161298457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e94576001604060020a03848481518110612a0f57fe5b90602001906020020151169150604060020a848481518110612a2d57fe5b90602001906020020151811515612a4057fe5b049050612a4d8282612714565b6001909201916129f2565b6000612a6386612b96565b90506002815460ff166002811115612a7757fe5b14612a8157600080fd5b805433600160a060020a039081166101009092041614612aa057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad3929160200190613dc5565b5060028101838051612ae9929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b6a57600080fd5b600080546001604060020a038416908110612b8157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb057600080fd5b600180546001604060020a038416908110612bc757fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612c29578082015183820152602001612c11565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612c9657fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612cff57809250612ec0565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612d3d8382613e43565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612dae57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612df9929160200190613e6f565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612eb457fe5b02179055505050508092505b50509695505050505050565b6000806000612ede600187878761390c565b9250846001604060020a0316866001604060020a03161415612eff57612492565b821515612f0b57612492565b612f1486612b52565b9150612f1f85612b52565b825490915083901015612f3157600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612f8c600087878661390c565b50505050505050565b8060200151600160a060020a031633600160a060020a03161480612fce57508060e00151600160a060020a031633600160a060020a0316145b1515612fd957600080fd5b50565b6000610e878260006040518059106124185750599080825280602002602001820160405250600080600080612bdc565b600080600061301a86612b52565b9250601461314e8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130a55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b600281111561314657fe5b905250613932565b1061315857600080fd5b61316184610ca1565b1561316b57600080fd5b60018301546002840180546131f8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257600091825260209182902080546001604060020a0316845290820283019290916008910180841161180f5750505050600388015460009250829150608060020a90046001604060020a031681612bdc565b915061322884600060405180591061189b5750599080825280602002602001820160405250600080866000612bdc565b9050612492868287612ecc565b600080613240613d82565b60008061324c88612b52565b60028101549094508690036040518059106132645750595b90808252806020026020018201604052509250600091505b60028401548690038210156132f2576002840180548390811061329b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106132d057fe5b6001604060020a0390921660209283029091019091015260019091019061327c565b60018401546003850154613322916001604060020a039081169186916000918291608060020a9091041681612bdc565b905061332f888289612ecc565b979650505050505050565b6000613344613d82565b60008061335087612b52565b60028101549094506014901061336557600080fd5b600284015460010160405180591061337a5750595b90808252806020026020018201604052509250600091505b600284015482101561340557600284018054839081106133ae57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133e357fe5b6001604060020a03909216602092830290910190910152600190910190613392565b6002840154859084908151811061341857fe5b6001604060020a039283166020918202909201015260018501546003860154613454929182169186916000918291608060020a90041681612bdc565b9050612f8c878288612ecc565b6000805b8360400151518110156134b557826001604060020a03168460400151828151811061348c57fe5b906020019060200201516001604060020a031614156134ad578091506134c0565b600101613465565b6001604060020a0391505b5092915050565b6000806134d385612b52565b915060146135c98360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b106135d357600080fd5b6135dc83610ca1565b156135e657600080fd5b600182015460028301805461231c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561367957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136365790505b5050505050856137af8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561374957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137065790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561379c57fe5b60028111156137a757fe5b905250613a5d565b6137b76137d6565b6003880154910190608060020a90046001604060020a03166000612bdc565b4290565b600080806001604060020a03841615156137f7576000925061389b565b61380084612b52565b600181015490925061381a906001604060020a0316612b96565b90506000815460ff16600281111561382e57fe5b141561383c5783925061389b565b6002815460ff16600281111561384e57fe5b1461385557fe5b600182015461386c906001604060020a0316610ca1565b151561387a5783925061389b565b600382015461389890608060020a90046001604060020a03166137da565b92505b5050919050565b6000806002835160028111156138b457fe5b146138bb57fe5b8260a001516001604060020a031615156138d85760019150610d4b565b6138e58360a00151612b96565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd357fe5b8061391a8585808685613ae7565b90506139298584868685613ae7565b95945050505050565b6000808260a001516001604060020a031615156139525760009150610d4b565b61395f8360a00151612b52565b9050613a538160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b6001019392505050565b6000806000613a6f8460200151612b96565b60038101546001604060020a031693509150600090505b83604001515181101561389b57613ab584604001518281518110613aa657fe5b90602001906020020151612b96565b60038101549092506001604060020a031683901115613adf5760038201546001604060020a031692505b600101613a86565b600080600080866001604060020a0316886001604060020a031614613b0e57610100613b11565b60005b61ffff169250849350613b2388612b52565b6001810154909250613b43908a906001604060020a031689898789613c05565b9350600090505b60028201546001604060020a0382161015613bbe57613bb48983600201836001604060020a0316815481101515613b7d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c05565b9350600101613b4a565b600382015460006001604060020a039091161115613bf9576003820154613bf6908a906001604060020a0316898960ff880189613c05565b93505b50505095945050505050565b80600080613c1288612b96565b6004810154909150600160a060020a031615801590613c315750600083115b15612ec0578815613cec576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cbb57600080fd5b6102c65a03f11515613ccc57600080fd5b505050604051805192505082821115613ce457600080fd5b819250612ec0565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d6257600080fd5b6102c65a03f11515613d7357600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dc057600502816005028360005260206000209182019101613dc09190613f23565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e0657805160ff1916838001178555613e33565b82800160010185558215613e33579182015b82811115613e33578251825591602001919060010190613e18565b50613e3f929150613fae565b5090565b815481835581811511613dc057600402816004028360005260206000209182019101613dc09190613fc8565b82805482825590600052602060002090600301600490048101928215613f175791602002820160005b83821115613ee257835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e98565b8015613f155782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ee2565b505b50613e3f929150614028565b610d5991905b80821115613e3f57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f5c600183018261404d565b613f6a60028301600061404d565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f29565b610d5991905b80821115613e3f5760008155600101613fb4565b610d5991905b80821115613e3f57600080825560018201805467ffffffffffffffff19169055613ffb6002830182614091565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fce565b610d5991905b80821115613e3f57805467ffffffffffffffff1916815560010161402e565b50805460018160011615610100020316600290046000825580601f106140735750612fd9565b601f016020900490600052602060002090810190612fd99190613fae565b508054600082556003016004900490600052602060002090810190612fd99190613fae5600a165627a7a723058203a7df47bcc179188ae583c3a3d06953598a3c661c1a555835365ced364d709730029" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a723058200b89fae13ce36e3ed42f3087ca3aa49f2ec8a313188b868e92db3aea94cc1de40029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a723058200b89fae13ce36e3ed42f3087ca3aa49f2ec8a313188b868e92db3aea94cc1de40029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a72305820bd95f6f45f761f94deb6c7299f47f48c856e20226a0e512a5bbcbada03084dea0029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a72305820bd95f6f45f761f94deb6c7299f47f48c856e20226a0e512a5bbcbada03084dea0029" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0x31faa112ad617623cc38e8ba395dd03c3436ef3579e7cea68241d3f0e6f4f662" +exports._sha256 = "0x2ba996d08c3f173e1744a644550085e65369d5808d0cb4981d55d52cb9df49d0" diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index 198746c..647ae8e 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -6,14 +6,14 @@ exports.ILiquidPledgingPluginRuntimeByteCode = "0x" exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.LPVaultByteCode = "0x" exports.LPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","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":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200432583398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140da806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061230295505050505050565b6102726001604060020a036004358116906024351661234d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124b7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125a2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061260f915050565b34156108d657600080fd5b6102726001604060020a03600435166024356126fa565b34156108f857600080fd5b61090c6001604060020a036004351661280e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129d395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a3e915050565b3415610b5857600080fd5b610b60612b29565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d7a565b600080610b9387612b38565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b7c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b7c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b38565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bc2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612c88565b9050610e99848285612f78565b50505050565b600080600080600080600080610eb489612b38565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b38565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b7c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613041565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612c88565b9050611217858286612f78565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b38565b94506112ce86612b7c565b93506112d989612b7c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b141561136657611361888888613088565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130b8565b6001845460ff16600281111561139b57fe5b14156113c0576113b3888887600201805490506132e1565b97506113618888886133e6565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61350d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e888887600201805490506132e1565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761350d565b6001604060020a0390811691508114156116c8576113b38888600185896002018054905003036132e1565b818111156116e7576113b38888600185896002018054905003036132e1565b8181116113c25761154e8888600184896002018054905003036132e1565b6002845460ff16600281111561171757fe5b14156113c0576117348888600185896002018054905003036132e1565b97506113c2888888613573565b505050505050505050565b60008060008061175b85612b38565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd613896565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612c88565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612c88565b90506118cd85828560000154612f78565b8094506118d985612b38565b92505b6118e585612bc2565b90506001604060020a03808216908616146119095761190985828560000154612f78565b8093505b505050919050565b6001805490818082016119288382613d8c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613dbd565b50606082015181600201908051611a08929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b7c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261389a565b10611db057600080fd5b60018054925082808201611dc48382613d8c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613dbd565b50606082015181600201908051611ea5929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b7c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613d8c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613dbd565b50606082015181600201908051612124929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b38565b60018101549092506122ba906001604060020a0316612b7c565b90506122e1816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f78565b600080805b8351821015612346576001604060020a0384838151811061232457fe5b9060200190602002015116905061233a8161174c565b50600190910190612307565b5050919050565b60008080806001604060020a0386161515612393576123906020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b61239c86612b7c565b93506123c3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123d557fe5b146123df57600080fd5b349250600083116123ef57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561242257600080fd5b6124518660006040518059106124355750595b9080825280602002602001820160405250600080600080612c88565b915061245c82612b38565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124af868385886112a7565b505050505050565b60006124c286612b7c565b90506001815460ff1660028111156124d657fe5b146124e057600080fd5b805433600160a060020a0390811661010090920416146124ff57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612532929160200190613dbd565b5060028101838051612548929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124af576001604060020a038584815181106125c457fe5b90602001906020020151169150604060020a8584815181106125e257fe5b906020019060200201518115156125f557fe5b049050612604868383876112a7565b6001909201916125a7565b600061261a86612b7c565b90506000815460ff16600281111561262e57fe5b1461263857600080fd5b805433600160a060020a03908116610100909204161461265757600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161268a929160200190613dbd565b50600281018380516126a0929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461271a57600080fd5b61272384612b38565b91506001600383015460c060020a900460ff16600281111561274157fe5b1461274b57600080fd5b6001820154600283018054612803926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127de57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161279b5790505b505050506003860154600091508190608060020a90046001604060020a031681612c88565b9050610e8c8161174c565b600080612819613d7a565b612821613d7a565b60008060008060006128328a612b7c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156128e85780601f106128bd576101008083540402835291602001916128e8565b820191906000526020600020905b8154815290600101906020018083116128cb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129875780601f1061295c57610100808354040283529160200191612987565b820191906000526020600020905b81548152906001019060200180831161296a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a038484815181106129f557fe5b90602001906020020151169150604060020a848481518110612a1357fe5b90602001906020020151811515612a2657fe5b049050612a3382826126fa565b6001909201916129d8565b6000612a4986612b7c565b90506002815460ff166002811115612a5d57fe5b14612a6757600080fd5b805433600160a060020a039081166101009092041614612a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ab9929160200190613dbd565b5060028101838051612acf929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b5057600080fd5b600080546001604060020a038416908110612b6757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612b9657600080fd5b600180546001604060020a038416908110612bad57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bdf5760009250612346565b612be884612b38565b6001810154909250612c02906001604060020a0316612b7c565b90506000815460ff166002811115612c1657fe5b1415612c2457839250612346565b6002815460ff166002811115612c3657fe5b14612c3d57fe5b6001820154612c54906001604060020a0316610ca1565b1515612c6257839250612346565b6003820154612c8090608060020a90046001604060020a0316612bc2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cd5578082015183820152602001612cbd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d4257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dab57809250612f6c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612de98382613e3b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e5a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ea5929160200190613e67565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f6057fe5b02179055505050508092505b50509695505050505050565b6000806000612f8a6001878787613904565b9250846001604060020a0316866001604060020a03161415612fab576124af565b821515612fb7576124af565b612fc086612b38565b9150612fcb85612b38565b825490915083901015612fdd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130386000878786613904565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061307a57508060e00151600160a060020a031633600160a060020a0316145b151561308557600080fd5b50565b6000610e8c8260006040518059106124355750599080825280602002602001820160405250600080600080612c88565b60008060006130c686612b38565b925060146131fa8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131515790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b60028111156131f257fe5b90525061392a565b1061320457600080fd5b61320d84610ca1565b1561321757600080fd5b60018301546002840180546132a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612c88565b91506132d48460006040518059106118a05750599080825280602002602001820160405250600080866000612c88565b90506124af868287612f78565b6000806132ec613d7a565b6000806132f888612b38565b60028101549094508690036040518059106133105750595b90808252806020026020018201604052509250600091505b600284015486900382101561339e576002840180548390811061334757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061337c57fe5b6001604060020a03909216602092830290910190910152600190910190613328565b600184015460038501546133ce916001604060020a039081169186916000918291608060020a9091041681612c88565b90506133db888289612f78565b979650505050505050565b60006133f0613d7a565b6000806133fc87612b38565b60028101549094506014901061341157600080fd5b60028401546001016040518059106134265750595b90808252806020026020018201604052509250600091505b60028401548210156134b1576002840180548390811061345a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061348f57fe5b6001604060020a0390921660209283029091019091015260019091019061343e565b600284015485908490815181106134c457fe5b6001604060020a039283166020918202909201015260018501546003860154613500929182169186916000918291608060020a90041681612c88565b9050613038878288612f78565b6000805b83604001515181101561356157826001604060020a03168460400151828151811061353857fe5b906020019060200201516001604060020a031614156135595780915061356c565b600101613511565b6001604060020a0391505b5092915050565b60008061357f85612b38565b915060146136758360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b1061367f57600080fd5b61368883610ca1565b1561369257600080fd5b6001820154600283018054613882926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561372557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136e25790505b50505050508561385b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156137f557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137b25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561384857fe5b600281111561385357fe5b905250613a55565b613863613896565b6003880154910190608060020a90046001604060020a03166000612c88565b905061388f858286612f78565b5050505050565b4290565b6000806002835160028111156138ac57fe5b146138b357fe5b8260a001516001604060020a031615156138d05760019150610d4b565b6138dd8360a00151612b7c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139128585808685613adf565b90506139218584868685613adf565b95945050505050565b6000808260a001516001604060020a0316151561394a5760009150610d4b565b6139578360a00151612b38565b9050613a4b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b6001019392505050565b6000806000613a678460200151612b7c565b60038101546001604060020a031693509150600090505b83604001515181101561234657613aad84604001518281518110613a9e57fe5b90602001906020020151612b7c565b60038101549092506001604060020a031683901115613ad75760038201546001604060020a031692505b600101613a7e565b600080600080866001604060020a0316886001604060020a031614613b0657610100613b09565b60005b61ffff169250849350613b1b88612b38565b6001810154909250613b3b908a906001604060020a031689898789613bfd565b9350600090505b60028201546001604060020a0382161015613bb657613bac8983600201836001604060020a0316815481101515613b7557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613bfd565b9350600101613b42565b600382015460006001604060020a039091161115613bf1576003820154613bee908a906001604060020a0316898960ff880189613bfd565b93505b50505095945050505050565b80600080613c0a88612b7c565b6004810154909150600160a060020a031615801590613c295750600083115b15612f6c578815613ce4576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cb357600080fd5b6102c65a03f11515613cc457600080fd5b505050604051805192505082821115613cdc57600080fd5b819250612f6c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d5a57600080fd5b6102c65a03f11515613d6b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613db857600502816005028360005260206000209182019101613db89190613f1b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613dfe57805160ff1916838001178555613e2b565b82800160010185558215613e2b579182015b82811115613e2b578251825591602001919060010190613e10565b50613e37929150613fa6565b5090565b815481835581811511613db857600402816004028360005260206000209182019101613db89190613fc0565b82805482825590600052602060002090600301600490048101928215613f0f5791602002820160005b83821115613eda57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e90565b8015613f0d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613eda565b505b50613e37929150614020565b610d5991905b80821115613e3757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f546001830182614045565b613f62600283016000614045565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f21565b610d5991905b80821115613e375760008155600101613fac565b610d5991905b80821115613e3757600080825560018201805467ffffffffffffffff19169055613ff36002830182614089565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fc6565b610d5991905b80821115613e3757805467ffffffffffffffff19168155600101614026565b50805460018160011615610100020316600290046000825580601f1061406b5750613085565b601f0160209004906000526020600020908101906130859190613fa6565b5080546000825560030160049004906000526020600020908101906130859190613fa65600a165627a7a72305820215a953cf81fa839bdb2b964943770b61a949ffbfd47b14e49610f17ca4bcf3a0029" -exports.LiquidPledgingRuntimeByteCode = "0x60606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061230295505050505050565b6102726001604060020a036004358116906024351661234d565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124b7915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125a2915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061260f915050565b34156108d657600080fd5b6102726001604060020a03600435166024356126fa565b34156108f857600080fd5b61090c6001604060020a036004351661280e565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129d395505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a3e915050565b3415610b5857600080fd5b610b60612b29565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d7a565b600080610b9387612b38565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b7c565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b7c565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b38565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bc2565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612c88565b9050610e99848285612f78565b50505050565b600080600080600080600080610eb489612b38565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b38565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612b7c565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613041565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612c88565b9050611217858286612f78565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b38565b94506112ce86612b7c565b93506112d989612b7c565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b141561136657611361888888613088565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130b8565b6001845460ff16600281111561139b57fe5b14156113c0576113b3888887600201805490506132e1565b97506113618888886133e6565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a61350d565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e888887600201805490506132e1565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b9052508761350d565b6001604060020a0390811691508114156116c8576113b38888600185896002018054905003036132e1565b818111156116e7576113b38888600185896002018054905003036132e1565b8181116113c25761154e8888600184896002018054905003036132e1565b6002845460ff16600281111561171757fe5b14156113c0576117348888600185896002018054905003036132e1565b97506113c2888888613573565b505050505050505050565b60008060008061175b85612b38565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd613896565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612c88565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612c88565b90506118cd85828560000154612f78565b8094506118d985612b38565b92505b6118e585612bc2565b90506001604060020a03808216908616146119095761190985828560000154612f78565b8093505b505050919050565b6001805490818082016119288382613d8c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613dbd565b50606082015181600201908051611a08929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612b7c565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261389a565b10611db057600080fd5b60018054925082808201611dc48382613d8c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613dbd565b50606082015181600201908051611ea5929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612b7c565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613d8c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613dbd565b50606082015181600201908051612124929160200190613dbd565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b6000806122958461174c565b93506122a084612b38565b60018101549092506122ba906001604060020a0316612b7c565b90506122e1816101006040519081016040528154909190829060ff166002811115610f8357fe5b6003820154610e99908590608060020a90046001604060020a031685612f78565b600080805b8351821015612346576001604060020a0384838151811061232457fe5b9060200190602002015116905061233a8161174c565b50600190910190612307565b5050919050565b60008080806001604060020a0386161515612393576123906020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b61239c86612b7c565b93506123c3846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff1660028111156123d557fe5b146123df57600080fd5b349250600083116123ef57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561242257600080fd5b6124518660006040518059106124355750595b9080825280602002602001820160405250600080600080612c88565b915061245c82612b38565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124af868385886112a7565b505050505050565b60006124c286612b7c565b90506001815460ff1660028111156124d657fe5b146124e057600080fd5b805433600160a060020a0390811661010090920416146124ff57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612532929160200190613dbd565b5060028101838051612548929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124af576001604060020a038584815181106125c457fe5b90602001906020020151169150604060020a8584815181106125e257fe5b906020019060200201518115156125f557fe5b049050612604868383876112a7565b6001909201916125a7565b600061261a86612b7c565b90506000815460ff16600281111561262e57fe5b1461263857600080fd5b805433600160a060020a03908116610100909204161461265757600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161268a929160200190613dbd565b50600281018380516126a0929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461271a57600080fd5b61272384612b38565b91506001600383015460c060020a900460ff16600281111561274157fe5b1461274b57600080fd5b6001820154600283018054612803926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127de57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161279b5790505b505050506003860154600091508190608060020a90046001604060020a031681612c88565b9050610e8c8161174c565b600080612819613d7a565b612821613d7a565b60008060008060006128328a612b7c565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156128e85780601f106128bd576101008083540402835291602001916128e8565b820191906000526020600020905b8154815290600101906020018083116128cb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129875780601f1061295c57610100808354040283529160200191612987565b820191906000526020600020905b81548152906001019060200180831161296a57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a038484815181106129f557fe5b90602001906020020151169150604060020a848481518110612a1357fe5b90602001906020020151811515612a2657fe5b049050612a3382826126fa565b6001909201916129d8565b6000612a4986612b7c565b90506002815460ff166002811115612a5d57fe5b14612a6757600080fd5b805433600160a060020a039081166101009092041614612a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ab9929160200190613dbd565b5060028101838051612acf929160200190613dbd565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b5057600080fd5b600080546001604060020a038416908110612b6757fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612b9657600080fd5b600180546001604060020a038416908110612bad57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612bdf5760009250612346565b612be884612b38565b6001810154909250612c02906001604060020a0316612b7c565b90506000815460ff166002811115612c1657fe5b1415612c2457839250612346565b6002815460ff166002811115612c3657fe5b14612c3d57fe5b6001820154612c54906001604060020a0316610ca1565b1515612c6257839250612346565b6003820154612c8090608060020a90046001604060020a0316612bc2565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612cd5578082015183820152602001612cbd565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d4257fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dab57809250612f6c565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612de98382613e3b565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e5a57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ea5929160200190613e67565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f6057fe5b02179055505050508092505b50509695505050505050565b6000806000612f8a6001878787613904565b9250846001604060020a0316866001604060020a03161415612fab576124af565b821515612fb7576124af565b612fc086612b38565b9150612fcb85612b38565b825490915083901015612fdd57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130386000878786613904565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061307a57508060e00151600160a060020a031633600160a060020a0316145b151561308557600080fd5b50565b6000610e8c8260006040518059106124355750599080825280602002602001820160405250600080600080612c88565b60008060006130c686612b38565b925060146131fa8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131515790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b60028111156131f257fe5b90525061392a565b1061320457600080fd5b61320d84610ca1565b1561321757600080fd5b60018301546002840180546132a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612c88565b91506132d48460006040518059106118a05750599080825280602002602001820160405250600080866000612c88565b90506124af868287612f78565b6000806132ec613d7a565b6000806132f888612b38565b60028101549094508690036040518059106133105750595b90808252806020026020018201604052509250600091505b600284015486900382101561339e576002840180548390811061334757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061337c57fe5b6001604060020a03909216602092830290910190910152600190910190613328565b600184015460038501546133ce916001604060020a039081169186916000918291608060020a9091041681612c88565b90506133db888289612f78565b979650505050505050565b60006133f0613d7a565b6000806133fc87612b38565b60028101549094506014901061341157600080fd5b60028401546001016040518059106134265750595b90808252806020026020018201604052509250600091505b60028401548210156134b1576002840180548390811061345a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061348f57fe5b6001604060020a0390921660209283029091019091015260019091019061343e565b600284015485908490815181106134c457fe5b6001604060020a039283166020918202909201015260018501546003860154613500929182169186916000918291608060020a90041681612c88565b9050613038878288612f78565b6000805b83604001515181101561356157826001604060020a03168460400151828151811061353857fe5b906020019060200201516001604060020a031614156135595780915061356c565b600101613511565b6001604060020a0391505b5092915050565b60008061357f85612b38565b915060146136758360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b1061367f57600080fd5b61368883610ca1565b1561369257600080fd5b6001820154600283018054613882926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561372557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136e25790505b50505050508561385b8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156137f557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137b25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561384857fe5b600281111561385357fe5b905250613a55565b613863613896565b6003880154910190608060020a90046001604060020a03166000612c88565b905061388f858286612f78565b5050505050565b4290565b6000806002835160028111156138ac57fe5b146138b357fe5b8260a001516001604060020a031615156138d05760019150610d4b565b6138dd8360a00151612b7c565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139128585808685613adf565b90506139218584868685613adf565b95945050505050565b6000808260a001516001604060020a0316151561394a5760009150610d4b565b6139578360a00151612b38565b9050613a4b8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561319457600091825260209182902080546001604060020a031684529082028301929091600891018084116131515750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156131e757fe5b6001019392505050565b6000806000613a678460200151612b7c565b60038101546001604060020a031693509150600090505b83604001515181101561234657613aad84604001518281518110613a9e57fe5b90602001906020020151612b7c565b60038101549092506001604060020a031683901115613ad75760038201546001604060020a031692505b600101613a7e565b600080600080866001604060020a0316886001604060020a031614613b0657610100613b09565b60005b61ffff169250849350613b1b88612b38565b6001810154909250613b3b908a906001604060020a031689898789613bfd565b9350600090505b60028201546001604060020a0382161015613bb657613bac8983600201836001604060020a0316815481101515613b7557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613bfd565b9350600101613b42565b600382015460006001604060020a039091161115613bf1576003820154613bee908a906001604060020a0316898960ff880189613bfd565b93505b50505095945050505050565b80600080613c0a88612b7c565b6004810154909150600160a060020a031615801590613c295750600083115b15612f6c578815613ce4576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cb357600080fd5b6102c65a03f11515613cc457600080fd5b505050604051805192505082821115613cdc57600080fd5b819250612f6c565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d5a57600080fd5b6102c65a03f11515613d6b57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613db857600502816005028360005260206000209182019101613db89190613f1b565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613dfe57805160ff1916838001178555613e2b565b82800160010185558215613e2b579182015b82811115613e2b578251825591602001919060010190613e10565b50613e37929150613fa6565b5090565b815481835581811511613db857600402816004028360005260206000209182019101613db89190613fc0565b82805482825590600052602060002090600301600490048101928215613f0f5791602002820160005b83821115613eda57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e90565b8015613f0d5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613eda565b505b50613e37929150614020565b610d5991905b80821115613e3757805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f546001830182614045565b613f62600283016000614045565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f21565b610d5991905b80821115613e375760008155600101613fac565b610d5991905b80821115613e3757600080825560018201805467ffffffffffffffff19169055613ff36002830182614089565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fc6565b610d5991905b80821115613e3757805467ffffffffffffffff19168155600101614026565b50805460018160011615610100020316600290046000825580601f1061406b5750613085565b601f0160209004906000526020600020908101906130859190613fa6565b5080546000825560030160049004906000526020600020908101906130859190613fa65600a165627a7a72305820215a953cf81fa839bdb2b964943770b61a949ffbfd47b14e49610f17ca4bcf3a0029" +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","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":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200432d83398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140e2806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bde60ac914610684578063cc19ecf71461069e578063ce17273c14610759578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9a565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610eff565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a2565b341561034e57600080fd5b6103626001604060020a0360043516611747565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611910915050565b341561043557600080fd5b61023e611afe565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0895505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b739050565b341561055357600080fd5b6102726001604060020a0360043516611f9e565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202c915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221995505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612284565b6102726001604060020a0360043581169060243516612330565b34156106a957600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061249a915050565b341561076457600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061258595505050505050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125bc915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612629915050565b34156108d657600080fd5b6102726001604060020a0360043516602435612714565b34156108f857600080fd5b61090c6001604060020a0360043516612828565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129ed95505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a58915050565b3415610b5857600080fd5b610b60612b43565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d82565b600080610b9387612b52565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b96565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b96565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b52565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b6001820154610dc4906001604060020a0316610ca1565b15610dce57600080fd5b6001820154600283018054610e87926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e1e5790505b505050506003860154600091508190608060020a90046001604060020a03166002612bdc565b9050610e94848285612ecc565b50505050565b600080600080600080600080610eaf89612b52565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f0d85611747565b9450610f1885612b52565b92506000600384015460c060020a900460ff166002811115610f3657fe5b14610f4057600080fd5b6001830154610f57906001604060020a0316612b96565b915061114c826101006040519081016040528154909190829060ff166002811115610f7e57fe5b6002811115610f8957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110555780601f1061102a57610100808354040283529160200191611055565b820191906000526020600020905b81548152906001019060200180831161103857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110f75780601f106110cc576101008083540402835291602001916110f7565b820191906000526020600020905b8154815290600101906020018083116110da57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152612f95565b6001830154600284018054611205926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111df57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161119c5790505b505050506003870154600091508190608060020a90046001604060020a03166001612bdc565b9050611212858286612ecc565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128757600080fd5b6102c65a03f1151561129857600080fd5b5050505050505050565b60008060008060006112b388611747565b97506112be88612b52565b94506112c986612b96565b93506112d489612b96565b92506112fb836101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000600386015460c060020a900460ff16600281111561131757fe5b1461132157600080fd5b60018501546001604060020a038a8116911614156113c2576000845460ff16600281111561134b57fe5b14156113615761135c888888612fdc565b6113bd565b6002845460ff16600281111561137357fe5b14156113845761135c88888861300c565b6001845460ff16600281111561139657fe5b14156113bb576113ae88888760020180549050613235565b975061135c88888861333a565bfe5b61173c565b6114f38560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561148c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114495790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114df57fe5b60028111156114ea57fe5b9052508a613461565b6001604060020a03908116925082146113bb576000845460ff16600281111561151857fe5b141561154f5760018501546001604060020a0387811691161461153757fe5b61154988888760020180549050613235565b5061173c565b6001845460ff16600281111561156157fe5b1415611700576116988560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115ee5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168457fe5b600281111561168f57fe5b90525087613461565b6001604060020a0390811691508114156116c3576113ae888860018589600201805490500303613235565b818111156116e2576113ae888860018589600201805490500303613235565b8181116113bd57611549888860018489600201805490500303613235565b6002845460ff16600281111561171257fe5b14156113bb5761172f888860018589600201805490500303613235565b97506113bd8888886134c7565b505050505050505050565b60008060008061175685612b52565b92506000600384015460c060020a900460ff16600281111561177457fe5b1461178157849350611908565b600383015460006001604060020a039091161180156117ba57506003830154604060020a90046001604060020a03166117b86137d6565b115b156118d7576001830154600284018054611877926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161180f5790505b505050506003870154600091508190608060020a90046001604060020a031681612bdc565b60038401549092506118b7906001604060020a0316600060405180591061189b5750595b9080825280602002602001820160405250600080866000612bdc565b90506118c885828560000154612ecc565b8094506118d485612b52565b92505b6118e0856137da565b90506001604060020a03808216908616146119045761190485828560000154612ecc565b8093505b505050919050565b6001805490818082016119238382613d94565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119e8929160200190613dc5565b50606082015181600201908051611a03929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e94576001604060020a03848481518110611b2a57fe5b90602001906020020151169150604060020a848481518110611b4857fe5b90602001906020020151811515611b5b57fe5b049050611b688282610eff565b600190920191611b0d565b6000806001604060020a03851615611dab57611b8e85612b96565b90506002815460ff166002811115611ba257fe5b14611bac57600080fd5b6014611da1826101006040519081016040528154909190829060ff166002811115611bd357fe5b6002811115611bde57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d4c5780601f10611d2157610100808354040283529160200191611d4c565b820191906000526020600020905b815481529060010190602001808311611d2f57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138a2565b10611dab57600080fd5b60018054925082808201611dbf8382613d94565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e3f57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e85929160200190613dc5565b50606082015181600201908051611ea0929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fa982612b96565b9050611fd0816101006040519081016040528154909190829060ff166002811115610f7e57fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60018054908180820161203f8382613d94565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120be57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612104929160200190613dc5565b5060608201518160020190805161211f929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e94576001604060020a0384848151811061223b57fe5b90602001906020020151169150604060020a84848151811061225957fe5b9060200190602002015181151561226c57fe5b0490506122798282610d5c565b60019092019161221e565b600080600061229285611747565b945061229d85612b52565b6003810154909350608060020a90046001604060020a031615156122c057600080fd5b60018301546122d7906001604060020a0316612b96565b91506122fe826101006040519081016040528154909190829060ff166002811115610f7e57fe5b600383015461231c90608060020a90046001604060020a03166137da565b9050612329858286612ecc565b5050505050565b60008080806001604060020a0386161515612376576123736020604051908101604052806000815250602060405190810160405260008082526203f4809061202c565b95505b61237f86612b96565b93506123a6846101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000845460ff1660028111156123b857fe5b146123c257600080fd5b349250600083116123d257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561240557600080fd5b6124348660006040518059106124185750595b9080825280602002602001820160405250600080600080612bdc565b915061243f82612b52565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612492868385886112a2565b505050505050565b60006124a586612b96565b90506001815460ff1660028111156124b957fe5b146124c357600080fd5b805433600160a060020a0390811661010090920416146124e257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612515929160200190613dc5565b506002810183805161252b929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b81518110156125b8576125af8282815181106125a057fe5b90602001906020020151611747565b50600101612588565b5050565b600080805b8451831015612492576001604060020a038584815181106125de57fe5b90602001906020020151169150604060020a8584815181106125fc57fe5b9060200190602002015181151561260f57fe5b04905061261e868383876112a2565b6001909201916125c1565b600061263486612b96565b90506000815460ff16600281111561264857fe5b1461265257600080fd5b805433600160a060020a03908116610100909204161461267157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126a4929160200190613dc5565b50600281018380516126ba929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273457600080fd5b61273d84612b52565b91506001600383015460c060020a900460ff16600281111561275b57fe5b1461276557600080fd5b600182015460028301805461281d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127f857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127b55790505b505050506003860154600091508190608060020a90046001604060020a031681612bdc565b9050610e8781611747565b600080612833613d82565b61283b613d82565b600080600080600061284c8a612b96565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129025780601f106128d757610100808354040283529160200191612902565b820191906000526020600020905b8154815290600101906020018083116128e557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a15780601f10612976576101008083540402835291602001916129a1565b820191906000526020600020905b81548152906001019060200180831161298457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e94576001604060020a03848481518110612a0f57fe5b90602001906020020151169150604060020a848481518110612a2d57fe5b90602001906020020151811515612a4057fe5b049050612a4d8282612714565b6001909201916129f2565b6000612a6386612b96565b90506002815460ff166002811115612a7757fe5b14612a8157600080fd5b805433600160a060020a039081166101009092041614612aa057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad3929160200190613dc5565b5060028101838051612ae9929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b6a57600080fd5b600080546001604060020a038416908110612b8157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb057600080fd5b600180546001604060020a038416908110612bc757fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612c29578082015183820152602001612c11565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612c9657fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612cff57809250612ec0565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612d3d8382613e43565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612dae57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612df9929160200190613e6f565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612eb457fe5b02179055505050508092505b50509695505050505050565b6000806000612ede600187878761390c565b9250846001604060020a0316866001604060020a03161415612eff57612492565b821515612f0b57612492565b612f1486612b52565b9150612f1f85612b52565b825490915083901015612f3157600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612f8c600087878661390c565b50505050505050565b8060200151600160a060020a031633600160a060020a03161480612fce57508060e00151600160a060020a031633600160a060020a0316145b1515612fd957600080fd5b50565b6000610e878260006040518059106124185750599080825280602002602001820160405250600080600080612bdc565b600080600061301a86612b52565b9250601461314e8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130a55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b600281111561314657fe5b905250613932565b1061315857600080fd5b61316184610ca1565b1561316b57600080fd5b60018301546002840180546131f8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257600091825260209182902080546001604060020a0316845290820283019290916008910180841161180f5750505050600388015460009250829150608060020a90046001604060020a031681612bdc565b915061322884600060405180591061189b5750599080825280602002602001820160405250600080866000612bdc565b9050612492868287612ecc565b600080613240613d82565b60008061324c88612b52565b60028101549094508690036040518059106132645750595b90808252806020026020018201604052509250600091505b60028401548690038210156132f2576002840180548390811061329b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106132d057fe5b6001604060020a0390921660209283029091019091015260019091019061327c565b60018401546003850154613322916001604060020a039081169186916000918291608060020a9091041681612bdc565b905061332f888289612ecc565b979650505050505050565b6000613344613d82565b60008061335087612b52565b60028101549094506014901061336557600080fd5b600284015460010160405180591061337a5750595b90808252806020026020018201604052509250600091505b600284015482101561340557600284018054839081106133ae57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133e357fe5b6001604060020a03909216602092830290910190910152600190910190613392565b6002840154859084908151811061341857fe5b6001604060020a039283166020918202909201015260018501546003860154613454929182169186916000918291608060020a90041681612bdc565b9050612f8c878288612ecc565b6000805b8360400151518110156134b557826001604060020a03168460400151828151811061348c57fe5b906020019060200201516001604060020a031614156134ad578091506134c0565b600101613465565b6001604060020a0391505b5092915050565b6000806134d385612b52565b915060146135c98360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b106135d357600080fd5b6135dc83610ca1565b156135e657600080fd5b600182015460028301805461231c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561367957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136365790505b5050505050856137af8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561374957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137065790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561379c57fe5b60028111156137a757fe5b905250613a5d565b6137b76137d6565b6003880154910190608060020a90046001604060020a03166000612bdc565b4290565b600080806001604060020a03841615156137f7576000925061389b565b61380084612b52565b600181015490925061381a906001604060020a0316612b96565b90506000815460ff16600281111561382e57fe5b141561383c5783925061389b565b6002815460ff16600281111561384e57fe5b1461385557fe5b600182015461386c906001604060020a0316610ca1565b151561387a5783925061389b565b600382015461389890608060020a90046001604060020a03166137da565b92505b5050919050565b6000806002835160028111156138b457fe5b146138bb57fe5b8260a001516001604060020a031615156138d85760019150610d4b565b6138e58360a00151612b96565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd357fe5b8061391a8585808685613ae7565b90506139298584868685613ae7565b95945050505050565b6000808260a001516001604060020a031615156139525760009150610d4b565b61395f8360a00151612b52565b9050613a538160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b6001019392505050565b6000806000613a6f8460200151612b96565b60038101546001604060020a031693509150600090505b83604001515181101561389b57613ab584604001518281518110613aa657fe5b90602001906020020151612b96565b60038101549092506001604060020a031683901115613adf5760038201546001604060020a031692505b600101613a86565b600080600080866001604060020a0316886001604060020a031614613b0e57610100613b11565b60005b61ffff169250849350613b2388612b52565b6001810154909250613b43908a906001604060020a031689898789613c05565b9350600090505b60028201546001604060020a0382161015613bbe57613bb48983600201836001604060020a0316815481101515613b7d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c05565b9350600101613b4a565b600382015460006001604060020a039091161115613bf9576003820154613bf6908a906001604060020a0316898960ff880189613c05565b93505b50505095945050505050565b80600080613c1288612b96565b6004810154909150600160a060020a031615801590613c315750600083115b15612ec0578815613cec576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cbb57600080fd5b6102c65a03f11515613ccc57600080fd5b505050604051805192505082821115613ce457600080fd5b819250612ec0565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d6257600080fd5b6102c65a03f11515613d7357600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dc057600502816005028360005260206000209182019101613dc09190613f23565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e0657805160ff1916838001178555613e33565b82800160010185558215613e33579182015b82811115613e33578251825591602001919060010190613e18565b50613e3f929150613fae565b5090565b815481835581811511613dc057600402816004028360005260206000209182019101613dc09190613fc8565b82805482825590600052602060002090600301600490048101928215613f175791602002820160005b83821115613ee257835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e98565b8015613f155782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ee2565b505b50613e3f929150614028565b610d5991905b80821115613e3f57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f5c600183018261404d565b613f6a60028301600061404d565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f29565b610d5991905b80821115613e3f5760008155600101613fb4565b610d5991905b80821115613e3f57600080825560018201805467ffffffffffffffff19169055613ffb6002830182614091565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fce565b610d5991905b80821115613e3f57805467ffffffffffffffff1916815560010161402e565b50805460018160011615610100020316600290046000825580601f106140735750612fd9565b601f016020900490600052602060002090810190612fd99190613fae565b508054600082556003016004900490600052602060002090810190612fd99190613fae5600a165627a7a7230582077fee8f2addffde65a2a2c87309a06ab6370b2c6faf8b2a08f6a86f61a1895610029" +exports.LiquidPledgingRuntimeByteCode = "0x60606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bde60ac914610684578063cc19ecf71461069e578063ce17273c14610759578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9a565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610eff565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a2565b341561034e57600080fd5b6103626001604060020a0360043516611747565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611910915050565b341561043557600080fd5b61023e611afe565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0895505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b739050565b341561055357600080fd5b6102726001604060020a0360043516611f9e565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202c915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221995505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612284565b6102726001604060020a0360043581169060243516612330565b34156106a957600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061249a915050565b341561076457600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061258595505050505050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125bc915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612629915050565b34156108d657600080fd5b6102726001604060020a0360043516602435612714565b34156108f857600080fd5b61090c6001604060020a0360043516612828565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b61027260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506129ed95505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a58915050565b3415610b5857600080fd5b610b60612b43565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d82565b600080610b9387612b52565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612b96565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612b96565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b52565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b6001820154610dc4906001604060020a0316610ca1565b15610dce57600080fd5b6001820154600283018054610e87926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e1e5790505b505050506003860154600091508190608060020a90046001604060020a03166002612bdc565b9050610e94848285612ecc565b50505050565b600080600080600080600080610eaf89612b52565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f0d85611747565b9450610f1885612b52565b92506000600384015460c060020a900460ff166002811115610f3657fe5b14610f4057600080fd5b6001830154610f57906001604060020a0316612b96565b915061114c826101006040519081016040528154909190829060ff166002811115610f7e57fe5b6002811115610f8957fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110555780601f1061102a57610100808354040283529160200191611055565b820191906000526020600020905b81548152906001019060200180831161103857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110f75780601f106110cc576101008083540402835291602001916110f7565b820191906000526020600020905b8154815290600101906020018083116110da57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152612f95565b6001830154600284018054611205926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111df57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161119c5790505b505050506003870154600091508190608060020a90046001604060020a03166001612bdc565b9050611212858286612ecc565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128757600080fd5b6102c65a03f1151561129857600080fd5b5050505050505050565b60008060008060006112b388611747565b97506112be88612b52565b94506112c986612b96565b93506112d489612b96565b92506112fb836101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000600386015460c060020a900460ff16600281111561131757fe5b1461132157600080fd5b60018501546001604060020a038a8116911614156113c2576000845460ff16600281111561134b57fe5b14156113615761135c888888612fdc565b6113bd565b6002845460ff16600281111561137357fe5b14156113845761135c88888861300c565b6001845460ff16600281111561139657fe5b14156113bb576113ae88888760020180549050613235565b975061135c88888861333a565bfe5b61173c565b6114f38560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561148c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114495790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114df57fe5b60028111156114ea57fe5b9052508a613461565b6001604060020a03908116925082146113bb576000845460ff16600281111561151857fe5b141561154f5760018501546001604060020a0387811691161461153757fe5b61154988888760020180549050613235565b5061173c565b6001845460ff16600281111561156157fe5b1415611700576116988560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115ee5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168457fe5b600281111561168f57fe5b90525087613461565b6001604060020a0390811691508114156116c3576113ae888860018589600201805490500303613235565b818111156116e2576113ae888860018589600201805490500303613235565b8181116113bd57611549888860018489600201805490500303613235565b6002845460ff16600281111561171257fe5b14156113bb5761172f888860018589600201805490500303613235565b97506113bd8888886134c7565b505050505050505050565b60008060008061175685612b52565b92506000600384015460c060020a900460ff16600281111561177457fe5b1461178157849350611908565b600383015460006001604060020a039091161180156117ba57506003830154604060020a90046001604060020a03166117b86137d6565b115b156118d7576001830154600284018054611877926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161180f5790505b505050506003870154600091508190608060020a90046001604060020a031681612bdc565b60038401549092506118b7906001604060020a0316600060405180591061189b5750595b9080825280602002602001820160405250600080866000612bdc565b90506118c885828560000154612ecc565b8094506118d485612b52565b92505b6118e0856137da565b90506001604060020a03808216908616146119045761190485828560000154612ecc565b8093505b505050919050565b6001805490818082016119238382613d94565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119e8929160200190613dc5565b50606082015181600201908051611a03929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e94576001604060020a03848481518110611b2a57fe5b90602001906020020151169150604060020a848481518110611b4857fe5b90602001906020020151811515611b5b57fe5b049050611b688282610eff565b600190920191611b0d565b6000806001604060020a03851615611dab57611b8e85612b96565b90506002815460ff166002811115611ba257fe5b14611bac57600080fd5b6014611da1826101006040519081016040528154909190829060ff166002811115611bd357fe5b6002811115611bde57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d4c5780601f10611d2157610100808354040283529160200191611d4c565b820191906000526020600020905b815481529060010190602001808311611d2f57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138a2565b10611dab57600080fd5b60018054925082808201611dbf8382613d94565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e3f57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e85929160200190613dc5565b50606082015181600201908051611ea0929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fa982612b96565b9050611fd0816101006040519081016040528154909190829060ff166002811115610f7e57fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60018054908180820161203f8382613d94565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120be57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612104929160200190613dc5565b5060608201518160020190805161211f929160200190613dc5565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e94576001604060020a0384848151811061223b57fe5b90602001906020020151169150604060020a84848151811061225957fe5b9060200190602002015181151561226c57fe5b0490506122798282610d5c565b60019092019161221e565b600080600061229285611747565b945061229d85612b52565b6003810154909350608060020a90046001604060020a031615156122c057600080fd5b60018301546122d7906001604060020a0316612b96565b91506122fe826101006040519081016040528154909190829060ff166002811115610f7e57fe5b600383015461231c90608060020a90046001604060020a03166137da565b9050612329858286612ecc565b5050505050565b60008080806001604060020a0386161515612376576123736020604051908101604052806000815250602060405190810160405260008082526203f4809061202c565b95505b61237f86612b96565b93506123a6846101006040519081016040528154909190829060ff166002811115610f7e57fe5b6000845460ff1660028111156123b857fe5b146123c257600080fd5b349250600083116123d257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561240557600080fd5b6124348660006040518059106124185750595b9080825280602002602001820160405250600080600080612bdc565b915061243f82612b52565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612492868385886112a2565b505050505050565b60006124a586612b96565b90506001815460ff1660028111156124b957fe5b146124c357600080fd5b805433600160a060020a0390811661010090920416146124e257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612515929160200190613dc5565b506002810183805161252b929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b81518110156125b8576125af8282815181106125a057fe5b90602001906020020151611747565b50600101612588565b5050565b600080805b8451831015612492576001604060020a038584815181106125de57fe5b90602001906020020151169150604060020a8584815181106125fc57fe5b9060200190602002015181151561260f57fe5b04905061261e868383876112a2565b6001909201916125c1565b600061263486612b96565b90506000815460ff16600281111561264857fe5b1461265257600080fd5b805433600160a060020a03908116610100909204161461267157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126a4929160200190613dc5565b50600281018380516126ba929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461273457600080fd5b61273d84612b52565b91506001600383015460c060020a900460ff16600281111561275b57fe5b1461276557600080fd5b600182015460028301805461281d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156127f857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127b55790505b505050506003860154600091508190608060020a90046001604060020a031681612bdc565b9050610e8781611747565b600080612833613d82565b61283b613d82565b600080600080600061284c8a612b96565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129025780601f106128d757610100808354040283529160200191612902565b820191906000526020600020905b8154815290600101906020018083116128e557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a15780601f10612976576101008083540402835291602001916129a1565b820191906000526020600020905b81548152906001019060200180831161298457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e94576001604060020a03848481518110612a0f57fe5b90602001906020020151169150604060020a848481518110612a2d57fe5b90602001906020020151811515612a4057fe5b049050612a4d8282612714565b6001909201916129f2565b6000612a6386612b96565b90506002815460ff166002811115612a7757fe5b14612a8157600080fd5b805433600160a060020a039081166101009092041614612aa057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612ad3929160200190613dc5565b5060028101838051612ae9929160200190613dc5565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b6a57600080fd5b600080546001604060020a038416908110612b8157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bb057600080fd5b600180546001604060020a038416908110612bc757fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612c29578082015183820152602001612c11565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612c9657fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612cff57809250612ec0565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612d3d8382613e43565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612dae57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612df9929160200190613e6f565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612eb457fe5b02179055505050508092505b50509695505050505050565b6000806000612ede600187878761390c565b9250846001604060020a0316866001604060020a03161415612eff57612492565b821515612f0b57612492565b612f1486612b52565b9150612f1f85612b52565b825490915083901015612f3157600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612f8c600087878661390c565b50505050505050565b8060200151600160a060020a031633600160a060020a03161480612fce57508060e00151600160a060020a031633600160a060020a0316145b1515612fd957600080fd5b50565b6000610e878260006040518059106124185750599080825280602002602001820160405250600080600080612bdc565b600080600061301a86612b52565b9250601461314e8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130a55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b600281111561314657fe5b905250613932565b1061315857600080fd5b61316184610ca1565b1561316b57600080fd5b60018301546002840180546131f8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185257600091825260209182902080546001604060020a0316845290820283019290916008910180841161180f5750505050600388015460009250829150608060020a90046001604060020a031681612bdc565b915061322884600060405180591061189b5750599080825280602002602001820160405250600080866000612bdc565b9050612492868287612ecc565b600080613240613d82565b60008061324c88612b52565b60028101549094508690036040518059106132645750595b90808252806020026020018201604052509250600091505b60028401548690038210156132f2576002840180548390811061329b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106132d057fe5b6001604060020a0390921660209283029091019091015260019091019061327c565b60018401546003850154613322916001604060020a039081169186916000918291608060020a9091041681612bdc565b905061332f888289612ecc565b979650505050505050565b6000613344613d82565b60008061335087612b52565b60028101549094506014901061336557600080fd5b600284015460010160405180591061337a5750595b90808252806020026020018201604052509250600091505b600284015482101561340557600284018054839081106133ae57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133e357fe5b6001604060020a03909216602092830290910190910152600190910190613392565b6002840154859084908151811061341857fe5b6001604060020a039283166020918202909201015260018501546003860154613454929182169186916000918291608060020a90041681612bdc565b9050612f8c878288612ecc565b6000805b8360400151518110156134b557826001604060020a03168460400151828151811061348c57fe5b906020019060200201516001604060020a031614156134ad578091506134c0565b600101613465565b6001604060020a0391505b5092915050565b6000806134d385612b52565b915060146135c98360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b106135d357600080fd5b6135dc83610ca1565b156135e657600080fd5b600182015460028301805461231c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561367957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136365790505b5050505050856137af8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561374957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137065790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561379c57fe5b60028111156137a757fe5b905250613a5d565b6137b76137d6565b6003880154910190608060020a90046001604060020a03166000612bdc565b4290565b600080806001604060020a03841615156137f7576000925061389b565b61380084612b52565b600181015490925061381a906001604060020a0316612b96565b90506000815460ff16600281111561382e57fe5b141561383c5783925061389b565b6002815460ff16600281111561384e57fe5b1461385557fe5b600182015461386c906001604060020a0316610ca1565b151561387a5783925061389b565b600382015461389890608060020a90046001604060020a03166137da565b92505b5050919050565b6000806002835160028111156138b457fe5b146138bb57fe5b8260a001516001604060020a031615156138d85760019150610d4b565b6138e58360a00151612b96565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd357fe5b8061391a8585808685613ae7565b90506139298584868685613ae7565b95945050505050565b6000808260a001516001604060020a031615156139525760009150610d4b565b61395f8360a00151612b52565b9050613a538160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156130e857600091825260209182902080546001604060020a031684529082028301929091600891018084116130a55750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561313b57fe5b6001019392505050565b6000806000613a6f8460200151612b96565b60038101546001604060020a031693509150600090505b83604001515181101561389b57613ab584604001518281518110613aa657fe5b90602001906020020151612b96565b60038101549092506001604060020a031683901115613adf5760038201546001604060020a031692505b600101613a86565b600080600080866001604060020a0316886001604060020a031614613b0e57610100613b11565b60005b61ffff169250849350613b2388612b52565b6001810154909250613b43908a906001604060020a031689898789613c05565b9350600090505b60028201546001604060020a0382161015613bbe57613bb48983600201836001604060020a0316815481101515613b7d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c05565b9350600101613b4a565b600382015460006001604060020a039091161115613bf9576003820154613bf6908a906001604060020a0316898960ff880189613c05565b93505b50505095945050505050565b80600080613c1288612b96565b6004810154909150600160a060020a031615801590613c315750600083115b15612ec0578815613cec576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cbb57600080fd5b6102c65a03f11515613ccc57600080fd5b505050604051805192505082821115613ce457600080fd5b819250612ec0565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d6257600080fd5b6102c65a03f11515613d7357600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dc057600502816005028360005260206000209182019101613dc09190613f23565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e0657805160ff1916838001178555613e33565b82800160010185558215613e33579182015b82811115613e33578251825591602001919060010190613e18565b50613e3f929150613fae565b5090565b815481835581811511613dc057600402816004028360005260206000209182019101613dc09190613fc8565b82805482825590600052602060002090600301600490048101928215613f175791602002820160005b83821115613ee257835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613e98565b8015613f155782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ee2565b505b50613e3f929150614028565b610d5991905b80821115613e3f57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f5c600183018261404d565b613f6a60028301600061404d565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f29565b610d5991905b80821115613e3f5760008155600101613fb4565b610d5991905b80821115613e3f57600080825560018201805467ffffffffffffffff19169055613ffb6002830182614091565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fce565b610d5991905b80821115613e3f57805467ffffffffffffffff1916815560010161402e565b50805460018160011615610100020316600290046000825580601f106140735750612fd9565b601f016020900490600052602060002090810190612fd99190613fae565b508054600082556003016004900490600052602060002090810190612fd99190613fae5600a165627a7a7230582077fee8f2addffde65a2a2c87309a06ab6370b2c6faf8b2a08f6a86f61a1895610029" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582082b5e165e993994c01a0ae0a3e4f34234e9187d9718cd545e24925733092a5710029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582082b5e165e993994c01a0ae0a3e4f34234e9187d9718cd545e24925733092a5710029" -exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","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":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b6040516020806200437783398101604052808051915081905080600162000038818062000075565b50600162000048600082620000a9565b5060028054600160a060020a031916600160a060020a039290921691909117905550504260045562000241565b815481835581811511620000a457600502816005028360005260206000209182019101620000a49190620000d8565b505050565b815481835581811511620000a457600402816004028360005260206000209182019101620000a491906200014c565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001b7565b62000117600283016000620001b7565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff1916905562000183600283018262000202565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b50805460018160011615610100020316600290046000825580601f10620001df5750620001ff565b601f016020900490600052602060002090810190620001ff919062000224565b50565b508054600082556003016004900490600052602060002090810190620001ff91905b6200014991905b808211156200014557600081556001016200022b565b61412680620002516000396000f3006060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bce0906d146106c3578063bde60ac914610712578063cc19ecf71461072c578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ede565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f43565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e6565b341561036457600080fd5b6103786001604060020a036004351661178b565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611954915050565b341561044b57600080fd5b610254611b42565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4c95505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb79050565b341561056957600080fd5b6102886001604060020a0360043516611fe2565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612070915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225d95505050505050565b341561068357600080fd5b6102546122c8565b341561069657600080fd5b6102886004356122ce565b34156106ac57600080fd5b6102886001604060020a03600435166024356122d3565b34156106ce57600080fd5b610378600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061234c95505050505050565b6102886001604060020a0360043581169060243516612397565b341561073757600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612501915050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125ec915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612659915050565b341561091557600080fd5b6102886001604060020a0360043516602435612744565b341561093757600080fd5b61094b6001604060020a0360043516612858565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a1d95505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a88915050565b3415610b9757600080fd5b610b9f612b73565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613dc6565b600080610bd287612b82565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612bc6565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612bc6565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612b82565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b836001604060020a0316610dff85612c0c565b6001604060020a031614610e1257600080fd5b6001820154600283018054610ecb926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e625790505b505050506003860154600091508190608060020a90046001604060020a03166002612cd2565b9050610ed8848285612fc2565b50505050565b600080600080600080600080610ef389612b82565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f518561178b565b9450610f5c85612b82565b92506000600384015460c060020a900460ff166002811115610f7a57fe5b14610f8457600080fd5b6001830154610f9b906001604060020a0316612bc6565b9150611190826101006040519081016040528154909190829060ff166002811115610fc257fe5b6002811115610fcd57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110995780601f1061106e57610100808354040283529160200191611099565b820191906000526020600020905b81548152906001019060200180831161107c57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261308b565b6001830154600284018054611249926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561122357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111e05790505b505050506003870154600091508190608060020a90046001604060020a03166001612cd2565b9050611256858286612fc2565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112cb57600080fd5b6102c65a03f115156112dc57600080fd5b5050505050505050565b60008060008060006112f78861178b565b975061130288612b82565b945061130d86612bc6565b935061131889612bc6565b925061133f836101006040519081016040528154909190829060ff166002811115610fc257fe5b6000600386015460c060020a900460ff16600281111561135b57fe5b1461136557600080fd5b60018501546001604060020a038a811691161415611406576000845460ff16600281111561138f57fe5b14156113a5576113a08888886130d2565b611401565b6002845460ff1660028111156113b757fe5b14156113c8576113a0888888613102565b6001845460ff1660028111156113da57fe5b14156113ff576113f28888876002018054905061332b565b97506113a0888888613430565bfe5b611780565b6115378560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161148d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561152357fe5b600281111561152e57fe5b9052508a613557565b6001604060020a03908116925082146113ff576000845460ff16600281111561155c57fe5b14156115935760018501546001604060020a0387811691161461157b57fe5b61158d8888876002018054905061332b565b50611780565b6001845460ff1660028111156115a557fe5b1415611744576116dc8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116325790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c857fe5b60028111156116d357fe5b90525087613557565b6001604060020a039081169150811415611707576113f288886001858960020180549050030361332b565b81811115611726576113f288886001858960020180549050030361332b565b8181116114015761158d88886001848960020180549050030361332b565b6002845460ff16600281111561175657fe5b14156113ff5761177388886001858960020180549050030361332b565b97506114018888886135bd565b505050505050505050565b60008060008061179a85612b82565b92506000600384015460c060020a900460ff1660028111156117b857fe5b146117c55784935061194c565b600383015460006001604060020a039091161180156117fe57506003830154604060020a90046001604060020a03166117fc6138e0565b115b1561191b5760018301546002840180546118bb926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118535790505b505050506003870154600091508190608060020a90046001604060020a031681612cd2565b60038401549092506118fb906001604060020a031660006040518059106118df5750595b9080825280602002602001820160405250600080866000612cd2565b905061190c85828560000154612fc2565b80945061191885612b82565b92505b61192485612c0c565b90506001604060020a03808216908616146119485761194885828560000154612fc2565b8093505b505050919050565b6001805490818082016119678382613dd8565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a2c929160200190613e09565b50606082015181600201908051611a47929160200190613e09565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed8576001604060020a03848481518110611b6e57fe5b90602001906020020151169150604060020a848481518110611b8c57fe5b90602001906020020151811515611b9f57fe5b049050611bac8282610f43565b600190920191611b51565b6000806001604060020a03851615611def57611bd285612bc6565b90506002815460ff166002811115611be657fe5b14611bf057600080fd5b6014611de5826101006040519081016040528154909190829060ff166002811115611c1757fe5b6002811115611c2257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cee5780601f10611cc357610100808354040283529160200191611cee565b820191906000526020600020905b815481529060010190602001808311611cd157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138e6565b10611def57600080fd5b60018054925082808201611e038382613dd8565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e8357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec9929160200190613e09565b50606082015181600201908051611ee4929160200190613e09565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fed82612bc6565b9050612014816101006040519081016040528154909190829060ff166002811115610fc257fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120838382613dd8565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561210257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612148929160200190613e09565b50606082015181600201908051612163929160200190613e09565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed8576001604060020a0384848151811061227f57fe5b90602001906020020151169150604060020a84848151811061229d57fe5b906020019060200201518115156122b057fe5b0490506122bd8282610d9b565b600190920191612262565b60045481565b600455565b6000806122df8461178b565b93506122ea84612b82565b6001810154909250612304906001604060020a0316612bc6565b905061232b816101006040519081016040528154909190829060ff166002811115610fc257fe5b6003820154610ed8908590608060020a90046001604060020a031685612fc2565b600080805b8351821015612390576001604060020a0384838151811061236e57fe5b906020019060200201511690506123848161178b565b50600190910190612351565b5050919050565b60008080806001604060020a03861615156123dd576123da6020604051908101604052806000815250602060405190810160405260008082526203f48090612070565b95505b6123e686612bc6565b935061240d846101006040519081016040528154909190829060ff166002811115610fc257fe5b6000845460ff16600281111561241f57fe5b1461242957600080fd5b3492506000831161243957600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561246c57600080fd5b61249b86600060405180591061247f5750595b9080825280602002602001820160405250600080600080612cd2565b91506124a682612b82565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124f9868385886112e6565b505050505050565b600061250c86612bc6565b90506001815460ff16600281111561252057fe5b1461252a57600080fd5b805433600160a060020a03908116610100909204161461254957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161257c929160200190613e09565b5060028101838051612592929160200190613e09565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124f9576001604060020a0385848151811061260e57fe5b90602001906020020151169150604060020a85848151811061262c57fe5b9060200190602002015181151561263f57fe5b04905061264e868383876112e6565b6001909201916125f1565b600061266486612bc6565b90506000815460ff16600281111561267857fe5b1461268257600080fd5b805433600160a060020a0390811661010090920416146126a157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126d4929160200190613e09565b50600281018380516126ea929160200190613e09565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461276457600080fd5b61276d84612b82565b91506001600383015460c060020a900460ff16600281111561278b57fe5b1461279557600080fd5b600182015460028301805461284d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561282857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127e55790505b505050506003860154600091508190608060020a90046001604060020a031681612cd2565b9050610ecb8161178b565b600080612863613dc6565b61286b613dc6565b600080600080600061287c8a612bc6565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129325780601f1061290757610100808354040283529160200191612932565b820191906000526020600020905b81548152906001019060200180831161291557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129d15780601f106129a6576101008083540402835291602001916129d1565b820191906000526020600020905b8154815290600101906020018083116129b457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed8576001604060020a03848481518110612a3f57fe5b90602001906020020151169150604060020a848481518110612a5d57fe5b90602001906020020151811515612a7057fe5b049050612a7d8282612744565b600190920191612a22565b6000612a9386612bc6565b90506002815460ff166002811115612aa757fe5b14612ab157600080fd5b805433600160a060020a039081166101009092041614612ad057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b03929160200190613e09565b5060028101838051612b19929160200190613e09565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b9a57600080fd5b600080546001604060020a038416908110612bb157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612be057600080fd5b600180546001604060020a038416908110612bf757fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c295760009250612390565b612c3284612b82565b6001810154909250612c4c906001604060020a0316612bc6565b90506000815460ff166002811115612c6057fe5b1415612c6e57839250612390565b6002815460ff166002811115612c8057fe5b14612c8757fe5b6001820154612c9e906001604060020a0316610ce0565b1515612cac57839250612390565b6003820154612cca90608060020a90046001604060020a0316612c0c565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d1f578082015183820152602001612d07565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d8c57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612df557809250612fb6565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e338382613e87565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ea457fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612eef929160200190613eb3565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612faa57fe5b02179055505050508092505b50509695505050505050565b6000806000612fd46001878787613950565b9250846001604060020a0316866001604060020a03161415612ff5576124f9565b821515613001576124f9565b61300a86612b82565b915061301585612b82565b82549091508390101561302757600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130826000878786613950565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130c457508060e00151600160a060020a031633600160a060020a0316145b15156130cf57600080fd5b50565b6000610ecb82600060405180591061247f5750599080825280602002602001820160405250600080600080612cd2565b600080600061311086612b82565b925060146132448460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131de57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161319b5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561323157fe5b600281111561323c57fe5b905250613976565b1061324e57600080fd5b61325784610ce0565b1561326157600080fd5b60018301546002840180546132ee926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657600091825260209182902080546001604060020a031684529082028301929091600891018084116118535750505050600388015460009250829150608060020a90046001604060020a031681612cd2565b915061331e8460006040518059106118df5750599080825280602002602001820160405250600080866000612cd2565b90506124f9868287612fc2565b600080613336613dc6565b60008061334288612b82565b600281015490945086900360405180591061335a5750595b90808252806020026020018201604052509250600091505b60028401548690038210156133e8576002840180548390811061339157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133c657fe5b6001604060020a03909216602092830290910190910152600190910190613372565b60018401546003850154613418916001604060020a039081169186916000918291608060020a9091041681612cd2565b9050613425888289612fc2565b979650505050505050565b600061343a613dc6565b60008061344687612b82565b60028101549094506014901061345b57600080fd5b60028401546001016040518059106134705750595b90808252806020026020018201604052509250600091505b60028401548210156134fb57600284018054839081106134a457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134d957fe5b6001604060020a03909216602092830290910190910152600190910190613488565b6002840154859084908151811061350e57fe5b6001604060020a03928316602091820290920101526001850154600386015461354a929182169186916000918291608060020a90041681612cd2565b9050613082878288612fc2565b6000805b8360400151518110156135ab57826001604060020a03168460400151828151811061358257fe5b906020019060200201516001604060020a031614156135a3578091506135b6565b60010161355b565b6001604060020a0391505b5092915050565b6000806135c985612b82565b915060146136bf8360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131de57600091825260209182902080546001604060020a0316845290820283019290916008910180841161319b5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561323157fe5b106136c957600080fd5b6136d283610ce0565b156136dc57600080fd5b60018201546002830180546138cc926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561376f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161372c5790505b5050505050856138a58660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561383f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137fc5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561389257fe5b600281111561389d57fe5b905250613aa1565b6138ad6138e0565b6003880154910190608060020a90046001604060020a03166000612cd2565b90506138d9858286612fc2565b5050505050565b60045490565b6000806002835160028111156138f857fe5b146138ff57fe5b8260a001516001604060020a0316151561391c5760019150610d8a565b6139298360a00151612bc6565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1757fe5b8061395e8585808685613b2b565b905061396d8584868685613b2b565b95945050505050565b6000808260a001516001604060020a031615156139965760009150610d8a565b6139a38360a00151612b82565b9050613a978160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131de57600091825260209182902080546001604060020a0316845290820283019290916008910180841161319b5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561323157fe5b6001019392505050565b6000806000613ab38460200151612bc6565b60038101546001604060020a031693509150600090505b83604001515181101561239057613af984604001518281518110613aea57fe5b90602001906020020151612bc6565b60038101549092506001604060020a031683901115613b235760038201546001604060020a031692505b600101613aca565b600080600080866001604060020a0316886001604060020a031614613b5257610100613b55565b60005b61ffff169250849350613b6788612b82565b6001810154909250613b87908a906001604060020a031689898789613c49565b9350600090505b60028201546001604060020a0382161015613c0257613bf88983600201836001604060020a0316815481101515613bc157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c49565b9350600101613b8e565b600382015460006001604060020a039091161115613c3d576003820154613c3a908a906001604060020a0316898960ff880189613c49565b93505b50505095945050505050565b80600080613c5688612bc6565b6004810154909150600160a060020a031615801590613c755750600083115b15612fb6578815613d30576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cff57600080fd5b6102c65a03f11515613d1057600080fd5b505050604051805192505082821115613d2857600080fd5b819250612fb6565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613da657600080fd5b6102c65a03f11515613db757600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e0457600502816005028360005260206000209182019101613e049190613f67565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e4a57805160ff1916838001178555613e77565b82800160010185558215613e77579182015b82811115613e77578251825591602001919060010190613e5c565b50613e83929150613ff2565b5090565b815481835581811511613e0457600402816004028360005260206000209182019101613e04919061400c565b82805482825590600052602060002090600301600490048101928215613f5b5791602002820160005b83821115613f2657835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613edc565b8015613f595782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f26565b505b50613e8392915061406c565b610d9891905b80821115613e8357805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fa06001830182614091565b613fae600283016000614091565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f6d565b610d9891905b80821115613e835760008155600101613ff8565b610d9891905b80821115613e8357600080825560018201805467ffffffffffffffff1916905561403f60028301826140d5565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614012565b610d9891905b80821115613e8357805467ffffffffffffffff19168155600101614072565b50805460018160011615610100020316600290046000825580601f106140b757506130cf565b601f0160209004906000526020600020908101906130cf9190613ff2565b5080546000825560030160049004906000526020600020908101906130cf9190613ff25600a165627a7a72305820e24b87f80fc957e2627e454b88466265efdfd5f78eb6a042f87660efaa59bae90029" -exports.LiquidPledgingMockRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bce0906d146106c3578063bde60ac914610712578063cc19ecf71461072c578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ede565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f43565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e6565b341561036457600080fd5b6103786001604060020a036004351661178b565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611954915050565b341561044b57600080fd5b610254611b42565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4c95505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb79050565b341561056957600080fd5b6102886001604060020a0360043516611fe2565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612070915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225d95505050505050565b341561068357600080fd5b6102546122c8565b341561069657600080fd5b6102886004356122ce565b34156106ac57600080fd5b6102886001604060020a03600435166024356122d3565b34156106ce57600080fd5b610378600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061234c95505050505050565b6102886001604060020a0360043581169060243516612397565b341561073757600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612501915050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125ec915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612659915050565b341561091557600080fd5b6102886001604060020a0360043516602435612744565b341561093757600080fd5b61094b6001604060020a0360043516612858565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a1d95505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a88915050565b3415610b9757600080fd5b610b9f612b73565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613dc6565b600080610bd287612b82565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612bc6565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612bc6565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612b82565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b836001604060020a0316610dff85612c0c565b6001604060020a031614610e1257600080fd5b6001820154600283018054610ecb926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e625790505b505050506003860154600091508190608060020a90046001604060020a03166002612cd2565b9050610ed8848285612fc2565b50505050565b600080600080600080600080610ef389612b82565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f518561178b565b9450610f5c85612b82565b92506000600384015460c060020a900460ff166002811115610f7a57fe5b14610f8457600080fd5b6001830154610f9b906001604060020a0316612bc6565b9150611190826101006040519081016040528154909190829060ff166002811115610fc257fe5b6002811115610fcd57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110995780601f1061106e57610100808354040283529160200191611099565b820191906000526020600020905b81548152906001019060200180831161107c57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261308b565b6001830154600284018054611249926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561122357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111e05790505b505050506003870154600091508190608060020a90046001604060020a03166001612cd2565b9050611256858286612fc2565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112cb57600080fd5b6102c65a03f115156112dc57600080fd5b5050505050505050565b60008060008060006112f78861178b565b975061130288612b82565b945061130d86612bc6565b935061131889612bc6565b925061133f836101006040519081016040528154909190829060ff166002811115610fc257fe5b6000600386015460c060020a900460ff16600281111561135b57fe5b1461136557600080fd5b60018501546001604060020a038a811691161415611406576000845460ff16600281111561138f57fe5b14156113a5576113a08888886130d2565b611401565b6002845460ff1660028111156113b757fe5b14156113c8576113a0888888613102565b6001845460ff1660028111156113da57fe5b14156113ff576113f28888876002018054905061332b565b97506113a0888888613430565bfe5b611780565b6115378560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161148d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561152357fe5b600281111561152e57fe5b9052508a613557565b6001604060020a03908116925082146113ff576000845460ff16600281111561155c57fe5b14156115935760018501546001604060020a0387811691161461157b57fe5b61158d8888876002018054905061332b565b50611780565b6001845460ff1660028111156115a557fe5b1415611744576116dc8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116325790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c857fe5b60028111156116d357fe5b90525087613557565b6001604060020a039081169150811415611707576113f288886001858960020180549050030361332b565b81811115611726576113f288886001858960020180549050030361332b565b8181116114015761158d88886001848960020180549050030361332b565b6002845460ff16600281111561175657fe5b14156113ff5761177388886001858960020180549050030361332b565b97506114018888886135bd565b505050505050505050565b60008060008061179a85612b82565b92506000600384015460c060020a900460ff1660028111156117b857fe5b146117c55784935061194c565b600383015460006001604060020a039091161180156117fe57506003830154604060020a90046001604060020a03166117fc6138e0565b115b1561191b5760018301546002840180546118bb926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118535790505b505050506003870154600091508190608060020a90046001604060020a031681612cd2565b60038401549092506118fb906001604060020a031660006040518059106118df5750595b9080825280602002602001820160405250600080866000612cd2565b905061190c85828560000154612fc2565b80945061191885612b82565b92505b61192485612c0c565b90506001604060020a03808216908616146119485761194885828560000154612fc2565b8093505b505050919050565b6001805490818082016119678382613dd8565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a2c929160200190613e09565b50606082015181600201908051611a47929160200190613e09565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed8576001604060020a03848481518110611b6e57fe5b90602001906020020151169150604060020a848481518110611b8c57fe5b90602001906020020151811515611b9f57fe5b049050611bac8282610f43565b600190920191611b51565b6000806001604060020a03851615611def57611bd285612bc6565b90506002815460ff166002811115611be657fe5b14611bf057600080fd5b6014611de5826101006040519081016040528154909190829060ff166002811115611c1757fe5b6002811115611c2257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cee5780601f10611cc357610100808354040283529160200191611cee565b820191906000526020600020905b815481529060010190602001808311611cd157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138e6565b10611def57600080fd5b60018054925082808201611e038382613dd8565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e8357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec9929160200190613e09565b50606082015181600201908051611ee4929160200190613e09565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fed82612bc6565b9050612014816101006040519081016040528154909190829060ff166002811115610fc257fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120838382613dd8565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561210257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612148929160200190613e09565b50606082015181600201908051612163929160200190613e09565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed8576001604060020a0384848151811061227f57fe5b90602001906020020151169150604060020a84848151811061229d57fe5b906020019060200201518115156122b057fe5b0490506122bd8282610d9b565b600190920191612262565b60045481565b600455565b6000806122df8461178b565b93506122ea84612b82565b6001810154909250612304906001604060020a0316612bc6565b905061232b816101006040519081016040528154909190829060ff166002811115610fc257fe5b6003820154610ed8908590608060020a90046001604060020a031685612fc2565b600080805b8351821015612390576001604060020a0384838151811061236e57fe5b906020019060200201511690506123848161178b565b50600190910190612351565b5050919050565b60008080806001604060020a03861615156123dd576123da6020604051908101604052806000815250602060405190810160405260008082526203f48090612070565b95505b6123e686612bc6565b935061240d846101006040519081016040528154909190829060ff166002811115610fc257fe5b6000845460ff16600281111561241f57fe5b1461242957600080fd5b3492506000831161243957600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561246c57600080fd5b61249b86600060405180591061247f5750595b9080825280602002602001820160405250600080600080612cd2565b91506124a682612b82565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124f9868385886112e6565b505050505050565b600061250c86612bc6565b90506001815460ff16600281111561252057fe5b1461252a57600080fd5b805433600160a060020a03908116610100909204161461254957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161257c929160200190613e09565b5060028101838051612592929160200190613e09565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124f9576001604060020a0385848151811061260e57fe5b90602001906020020151169150604060020a85848151811061262c57fe5b9060200190602002015181151561263f57fe5b04905061264e868383876112e6565b6001909201916125f1565b600061266486612bc6565b90506000815460ff16600281111561267857fe5b1461268257600080fd5b805433600160a060020a0390811661010090920416146126a157600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126d4929160200190613e09565b50600281018380516126ea929160200190613e09565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461276457600080fd5b61276d84612b82565b91506001600383015460c060020a900460ff16600281111561278b57fe5b1461279557600080fd5b600182015460028301805461284d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561282857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127e55790505b505050506003860154600091508190608060020a90046001604060020a031681612cd2565b9050610ecb8161178b565b600080612863613dc6565b61286b613dc6565b600080600080600061287c8a612bc6565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129325780601f1061290757610100808354040283529160200191612932565b820191906000526020600020905b81548152906001019060200180831161291557829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129d15780601f106129a6576101008083540402835291602001916129d1565b820191906000526020600020905b8154815290600101906020018083116129b457829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed8576001604060020a03848481518110612a3f57fe5b90602001906020020151169150604060020a848481518110612a5d57fe5b90602001906020020151811515612a7057fe5b049050612a7d8282612744565b600190920191612a22565b6000612a9386612bc6565b90506002815460ff166002811115612aa757fe5b14612ab157600080fd5b805433600160a060020a039081166101009092041614612ad057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b03929160200190613e09565b5060028101838051612b19929160200190613e09565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b9a57600080fd5b600080546001604060020a038416908110612bb157fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612be057600080fd5b600180546001604060020a038416908110612bf757fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c295760009250612390565b612c3284612b82565b6001810154909250612c4c906001604060020a0316612bc6565b90506000815460ff166002811115612c6057fe5b1415612c6e57839250612390565b6002815460ff166002811115612c8057fe5b14612c8757fe5b6001820154612c9e906001604060020a0316610ce0565b1515612cac57839250612390565b6003820154612cca90608060020a90046001604060020a0316612c0c565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d1f578082015183820152602001612d07565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d8c57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612df557809250612fb6565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e338382613e87565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ea457fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612eef929160200190613eb3565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612faa57fe5b02179055505050508092505b50509695505050505050565b6000806000612fd46001878787613950565b9250846001604060020a0316866001604060020a03161415612ff5576124f9565b821515613001576124f9565b61300a86612b82565b915061301585612b82565b82549091508390101561302757600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130826000878786613950565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130c457508060e00151600160a060020a031633600160a060020a0316145b15156130cf57600080fd5b50565b6000610ecb82600060405180591061247f5750599080825280602002602001820160405250600080600080612cd2565b600080600061311086612b82565b925060146132448460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131de57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161319b5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561323157fe5b600281111561323c57fe5b905250613976565b1061324e57600080fd5b61325784610ce0565b1561326157600080fd5b60018301546002840180546132ee926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657600091825260209182902080546001604060020a031684529082028301929091600891018084116118535750505050600388015460009250829150608060020a90046001604060020a031681612cd2565b915061331e8460006040518059106118df5750599080825280602002602001820160405250600080866000612cd2565b90506124f9868287612fc2565b600080613336613dc6565b60008061334288612b82565b600281015490945086900360405180591061335a5750595b90808252806020026020018201604052509250600091505b60028401548690038210156133e8576002840180548390811061339157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133c657fe5b6001604060020a03909216602092830290910190910152600190910190613372565b60018401546003850154613418916001604060020a039081169186916000918291608060020a9091041681612cd2565b9050613425888289612fc2565b979650505050505050565b600061343a613dc6565b60008061344687612b82565b60028101549094506014901061345b57600080fd5b60028401546001016040518059106134705750595b90808252806020026020018201604052509250600091505b60028401548210156134fb57600284018054839081106134a457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134d957fe5b6001604060020a03909216602092830290910190910152600190910190613488565b6002840154859084908151811061350e57fe5b6001604060020a03928316602091820290920101526001850154600386015461354a929182169186916000918291608060020a90041681612cd2565b9050613082878288612fc2565b6000805b8360400151518110156135ab57826001604060020a03168460400151828151811061358257fe5b906020019060200201516001604060020a031614156135a3578091506135b6565b60010161355b565b6001604060020a0391505b5092915050565b6000806135c985612b82565b915060146136bf8360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131de57600091825260209182902080546001604060020a0316845290820283019290916008910180841161319b5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561323157fe5b106136c957600080fd5b6136d283610ce0565b156136dc57600080fd5b60018201546002830180546138cc926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561376f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161372c5790505b5050505050856138a58660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561383f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137fc5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561389257fe5b600281111561389d57fe5b905250613aa1565b6138ad6138e0565b6003880154910190608060020a90046001604060020a03166000612cd2565b90506138d9858286612fc2565b5050505050565b60045490565b6000806002835160028111156138f857fe5b146138ff57fe5b8260a001516001604060020a0316151561391c5760019150610d8a565b6139298360a00151612bc6565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1757fe5b8061395e8585808685613b2b565b905061396d8584868685613b2b565b95945050505050565b6000808260a001516001604060020a031615156139965760009150610d8a565b6139a38360a00151612b82565b9050613a978160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131de57600091825260209182902080546001604060020a0316845290820283019290916008910180841161319b5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561323157fe5b6001019392505050565b6000806000613ab38460200151612bc6565b60038101546001604060020a031693509150600090505b83604001515181101561239057613af984604001518281518110613aea57fe5b90602001906020020151612bc6565b60038101549092506001604060020a031683901115613b235760038201546001604060020a031692505b600101613aca565b600080600080866001604060020a0316886001604060020a031614613b5257610100613b55565b60005b61ffff169250849350613b6788612b82565b6001810154909250613b87908a906001604060020a031689898789613c49565b9350600090505b60028201546001604060020a0382161015613c0257613bf88983600201836001604060020a0316815481101515613bc157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c49565b9350600101613b8e565b600382015460006001604060020a039091161115613c3d576003820154613c3a908a906001604060020a0316898960ff880189613c49565b93505b50505095945050505050565b80600080613c5688612bc6565b6004810154909150600160a060020a031615801590613c755750600083115b15612fb6578815613d30576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cff57600080fd5b6102c65a03f11515613d1057600080fd5b505050604051805192505082821115613d2857600080fd5b819250612fb6565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613da657600080fd5b6102c65a03f11515613db757600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e0457600502816005028360005260206000209182019101613e049190613f67565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e4a57805160ff1916838001178555613e77565b82800160010185558215613e77579182015b82811115613e77578251825591602001919060010190613e5c565b50613e83929150613ff2565b5090565b815481835581811511613e0457600402816004028360005260206000209182019101613e04919061400c565b82805482825590600052602060002090600301600490048101928215613f5b5791602002820160005b83821115613f2657835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613edc565b8015613f595782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f26565b505b50613e8392915061406c565b610d9891905b80821115613e8357805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fa06001830182614091565b613fae600283016000614091565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f6d565b610d9891905b80821115613e835760008155600101613ff8565b610d9891905b80821115613e8357600080825560018201805467ffffffffffffffff1916905561403f60028301826140d5565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614012565b610d9891905b80821115613e8357805467ffffffffffffffff19168155600101614072565b50805460018160011615610100020316600290046000825580601f106140b757506130cf565b601f0160209004906000526020600020908101906130cf9190613ff2565b5080546000825560030160049004906000526020600020908101906130cf9190613ff25600a165627a7a72305820e24b87f80fc957e2627e454b88466265efdfd5f78eb6a042f87660efaa59bae90029" +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a72305820a804e419136242ab94c34061291885a847feb6e487cf6d1d8f3976d8c89c669b0029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a72305820a804e419136242ab94c34061291885a847feb6e487cf6d1d8f3976d8c89c669b0029" +exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"_idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idxDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idxDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idxDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","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":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idxDelegate","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":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b6040516020806200437f83398101604052808051915081905080600162000038818062000075565b50600162000048600082620000a9565b5060028054600160a060020a031916600160a060020a039290921691909117905550504260045562000241565b815481835581811511620000a457600502816005028360005260206000209182019101620000a49190620000d8565b505050565b815481835581811511620000a457600402816004028360005260206000209182019101620000a491906200014c565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001b7565b62000117600283016000620001b7565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff1916905562000183600283018262000202565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b50805460018160011615610100020316600290046000825580601f10620001df5750620001ff565b601f016020900490600052602060002090810190620001ff919062000224565b50565b508054600082556003016004900490600052602060002090810190620001ff91905b6200014991905b808211156200014557600081556001016200022b565b61412e80620002516000396000f3006060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bde60ac9146106c3578063cc19ecf7146106dd578063ce17273c14610798578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ed9565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f3e565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e1565b341561036457600080fd5b6103786001604060020a0360043516611786565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061194f915050565b341561044b57600080fd5b610254611b3d565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4795505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb29050565b341561056957600080fd5b6102886001604060020a0360043516611fdd565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061206b915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225895505050505050565b341561068357600080fd5b6102546122c3565b341561069657600080fd5b6102886004356122c9565b34156106ac57600080fd5b6102886001604060020a03600435166024356122ce565b6102886001604060020a036004358116906024351661237a565b34156106e857600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124e4915050565b34156107a357600080fd5b61028860046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506125cf95505050505050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612606915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612673915050565b341561091557600080fd5b6102886001604060020a036004351660243561275e565b341561093757600080fd5b61094b6001604060020a0360043516612872565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a3795505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612aa2915050565b3415610b9757600080fd5b610b9f612b8d565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613dce565b600080610bd287612b9c565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612be0565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612be0565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612b9c565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b6001820154610e03906001604060020a0316610ce0565b15610e0d57600080fd5b6001820154600283018054610ec6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e5d5790505b505050506003860154600091508190608060020a90046001604060020a03166002612c26565b9050610ed3848285612f16565b50505050565b600080600080600080600080610eee89612b9c565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f4c85611786565b9450610f5785612b9c565b92506000600384015460c060020a900460ff166002811115610f7557fe5b14610f7f57600080fd5b6001830154610f96906001604060020a0316612be0565b915061118b826101006040519081016040528154909190829060ff166002811115610fbd57fe5b6002811115610fc857fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111365780601f1061110b57610100808354040283529160200191611136565b820191906000526020600020905b81548152906001019060200180831161111957829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152612fdf565b6001830154600284018054611244926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561121e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111db5790505b505050506003870154600091508190608060020a90046001604060020a03166001612c26565b9050611251858286612f16565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112c657600080fd5b6102c65a03f115156112d757600080fd5b5050505050505050565b60008060008060006112f288611786565b97506112fd88612b9c565b945061130886612be0565b935061131389612be0565b925061133a836101006040519081016040528154909190829060ff166002811115610fbd57fe5b6000600386015460c060020a900460ff16600281111561135657fe5b1461136057600080fd5b60018501546001604060020a038a811691161415611401576000845460ff16600281111561138a57fe5b14156113a05761139b888888613026565b6113fc565b6002845460ff1660028111156113b257fe5b14156113c35761139b888888613056565b6001845460ff1660028111156113d557fe5b14156113fa576113ed8888876002018054905061327f565b975061139b888888613384565bfe5b61177b565b6115328560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114cb57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114885790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561151e57fe5b600281111561152957fe5b9052508a6134ab565b6001604060020a03908116925082146113fa576000845460ff16600281111561155757fe5b141561158e5760018501546001604060020a0387811691161461157657fe5b6115888888876002018054905061327f565b5061177b565b6001845460ff1660028111156115a057fe5b141561173f576116d78560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161162d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c357fe5b60028111156116ce57fe5b905250876134ab565b6001604060020a039081169150811415611702576113ed88886001858960020180549050030361327f565b81811115611721576113ed88886001858960020180549050030361327f565b8181116113fc5761158888886001848960020180549050030361327f565b6002845460ff16600281111561175157fe5b14156113fa5761176e88886001858960020180549050030361327f565b97506113fc888888613511565b505050505050505050565b60008060008061179585612b9c565b92506000600384015460c060020a900460ff1660028111156117b357fe5b146117c057849350611947565b600383015460006001604060020a039091161180156117f957506003830154604060020a90046001604060020a03166117f7613820565b115b156119165760018301546002840180546118b6926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161184e5790505b505050506003870154600091508190608060020a90046001604060020a031681612c26565b60038401549092506118f6906001604060020a031660006040518059106118da5750595b9080825280602002602001820160405250600080866000612c26565b905061190785828560000154612f16565b80945061191385612b9c565b92505b61191f85613826565b90506001604060020a03808216908616146119435761194385828560000154612f16565b8093505b505050919050565b6001805490818082016119628382613de0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a27929160200190613e11565b50606082015181600201908051611a42929160200190613e11565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed3576001604060020a03848481518110611b6957fe5b90602001906020020151169150604060020a848481518110611b8757fe5b90602001906020020151811515611b9a57fe5b049050611ba78282610f3e565b600190920191611b4c565b6000806001604060020a03851615611dea57611bcd85612be0565b90506002815460ff166002811115611be157fe5b14611beb57600080fd5b6014611de0826101006040519081016040528154909190829060ff166002811115611c1257fe5b6002811115611c1d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ce95780601f10611cbe57610100808354040283529160200191611ce9565b820191906000526020600020905b815481529060010190602001808311611ccc57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d8b5780601f10611d6057610100808354040283529160200191611d8b565b820191906000526020600020905b815481529060010190602001808311611d6e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138ee565b10611dea57600080fd5b60018054925082808201611dfe8382613de0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e7e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec4929160200190613e11565b50606082015181600201908051611edf929160200190613e11565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fe882612be0565b905061200f816101006040519081016040528154909190829060ff166002811115610fbd57fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60018054908180820161207e8382613de0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120fd57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612143929160200190613e11565b5060608201518160020190805161215e929160200190613e11565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed3576001604060020a0384848151811061227a57fe5b90602001906020020151169150604060020a84848151811061229857fe5b906020019060200201518115156122ab57fe5b0490506122b88282610d9b565b60019092019161225d565b60045481565b600455565b60008060006122dc85611786565b94506122e785612b9c565b6003810154909350608060020a90046001604060020a0316151561230a57600080fd5b6001830154612321906001604060020a0316612be0565b9150612348826101006040519081016040528154909190829060ff166002811115610fbd57fe5b600383015461236690608060020a90046001604060020a0316613826565b9050612373858286612f16565b5050505050565b60008080806001604060020a03861615156123c0576123bd6020604051908101604052806000815250602060405190810160405260008082526203f4809061206b565b95505b6123c986612be0565b93506123f0846101006040519081016040528154909190829060ff166002811115610fbd57fe5b6000845460ff16600281111561240257fe5b1461240c57600080fd5b3492506000831161241c57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561244f57600080fd5b61247e8660006040518059106124625750595b9080825280602002602001820160405250600080600080612c26565b915061248982612b9c565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124dc868385886112e1565b505050505050565b60006124ef86612be0565b90506001815460ff16600281111561250357fe5b1461250d57600080fd5b805433600160a060020a03908116610100909204161461252c57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161255f929160200190613e11565b5060028101838051612575929160200190613e11565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612602576125f98282815181106125ea57fe5b90602001906020020151611786565b506001016125d2565b5050565b600080805b84518310156124dc576001604060020a0385848151811061262857fe5b90602001906020020151169150604060020a85848151811061264657fe5b9060200190602002015181151561265957fe5b049050612668868383876112e1565b60019092019161260b565b600061267e86612be0565b90506000815460ff16600281111561269257fe5b1461269c57600080fd5b805433600160a060020a0390811661010090920416146126bb57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126ee929160200190613e11565b5060028101838051612704929160200190613e11565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461277e57600080fd5b61278784612b9c565b91506001600383015460c060020a900460ff1660028111156127a557fe5b146127af57600080fd5b6001820154600283018054612867926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561284257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127ff5790505b505050506003860154600091508190608060020a90046001604060020a031681612c26565b9050610ec681611786565b60008061287d613dce565b612885613dce565b60008060008060006128968a612be0565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f8201819004810201604051908101604052809291908181526020018280546001816001161561010002031660029004801561294c5780601f106129215761010080835404028352916020019161294c565b820191906000526020600020905b81548152906001019060200180831161292f57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129eb5780601f106129c0576101008083540402835291602001916129eb565b820191906000526020600020905b8154815290600101906020018083116129ce57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed3576001604060020a03848481518110612a5957fe5b90602001906020020151169150604060020a848481518110612a7757fe5b90602001906020020151811515612a8a57fe5b049050612a97828261275e565b600190920191612a3c565b6000612aad86612be0565b90506002815460ff166002811115612ac157fe5b14612acb57600080fd5b805433600160a060020a039081166101009092041614612aea57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b1d929160200190613e11565b5060028101838051612b33929160200190613e11565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612bb457600080fd5b600080546001604060020a038416908110612bcb57fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bfa57600080fd5b600180546001604060020a038416908110612c1157fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612c73578082015183820152602001612c5b565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612ce057fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612d4957809250612f0a565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612d878382613e8f565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612df857fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612e43929160200190613ebb565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612efe57fe5b02179055505050508092505b50509695505050505050565b6000806000612f286001878787613958565b9250846001604060020a0316866001604060020a03161415612f49576124dc565b821515612f55576124dc565b612f5e86612b9c565b9150612f6985612b9c565b825490915083901015612f7b57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612fd66000878786613958565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061301857508060e00151600160a060020a031633600160a060020a0316145b151561302357600080fd5b50565b6000610ec68260006040518059106124625750599080825280602002602001820160405250600080600080612c26565b600080600061306486612b9c565b925060146131988460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561313257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130ef5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561318557fe5b600281111561319057fe5b90525061397e565b106131a257600080fd5b6131ab84610ce0565b156131b557600080fd5b6001830154600284018054613242926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189157600091825260209182902080546001604060020a0316845290820283019290916008910180841161184e5750505050600388015460009250829150608060020a90046001604060020a031681612c26565b91506132728460006040518059106118da5750599080825280602002602001820160405250600080866000612c26565b90506124dc868287612f16565b60008061328a613dce565b60008061329688612b9c565b60028101549094508690036040518059106132ae5750595b90808252806020026020018201604052509250600091505b600284015486900382101561333c57600284018054839081106132e557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061331a57fe5b6001604060020a039092166020928302909101909101526001909101906132c6565b6001840154600385015461336c916001604060020a039081169186916000918291608060020a9091041681612c26565b9050613379888289612f16565b979650505050505050565b600061338e613dce565b60008061339a87612b9c565b6002810154909450601490106133af57600080fd5b60028401546001016040518059106133c45750595b90808252806020026020018201604052509250600091505b600284015482101561344f57600284018054839081106133f857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061342d57fe5b6001604060020a039092166020928302909101909101526001909101906133dc565b6002840154859084908151811061346257fe5b6001604060020a03928316602091820290920101526001850154600386015461349e929182169186916000918291608060020a90041681612c26565b9050612fd6878288612f16565b6000805b8360400151518110156134ff57826001604060020a0316846040015182815181106134d657fe5b906020019060200201516001604060020a031614156134f75780915061350a565b6001016134af565b6001604060020a0391505b5092915050565b60008061351d85612b9c565b915060146136138360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561313257600091825260209182902080546001604060020a031684529082028301929091600891018084116130ef5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561318557fe5b1061361d57600080fd5b61362683610ce0565b1561363057600080fd5b6001820154600283018054612366926001604060020a031691906020808202016040519081016040528092919081815260200182805480156136c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136805790505b5050505050856137f98660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561379357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137505790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156137e657fe5b60028111156137f157fe5b905250613aa9565b613801613820565b6003880154910190608060020a90046001604060020a03166000612c26565b60045490565b600080806001604060020a038416151561384357600092506138e7565b61384c84612b9c565b6001810154909250613866906001604060020a0316612be0565b90506000815460ff16600281111561387a57fe5b1415613888578392506138e7565b6002815460ff16600281111561389a57fe5b146138a157fe5b60018201546138b8906001604060020a0316610ce0565b15156138c6578392506138e7565b60038201546138e490608060020a90046001604060020a0316613826565b92505b5050919050565b60008060028351600281111561390057fe5b1461390757fe5b8260a001516001604060020a031615156139245760019150610d8a565b6139318360a00151612be0565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1257fe5b806139668585808685613b33565b90506139758584868685613b33565b95945050505050565b6000808260a001516001604060020a0316151561399e5760009150610d8a565b6139ab8360a00151612b9c565b9050613a9f8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561313257600091825260209182902080546001604060020a031684529082028301929091600891018084116130ef5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561318557fe5b6001019392505050565b6000806000613abb8460200151612be0565b60038101546001604060020a031693509150600090505b8360400151518110156138e757613b0184604001518281518110613af257fe5b90602001906020020151612be0565b60038101549092506001604060020a031683901115613b2b5760038201546001604060020a031692505b600101613ad2565b600080600080866001604060020a0316886001604060020a031614613b5a57610100613b5d565b60005b61ffff169250849350613b6f88612b9c565b6001810154909250613b8f908a906001604060020a031689898789613c51565b9350600090505b60028201546001604060020a0382161015613c0a57613c008983600201836001604060020a0316815481101515613bc957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c51565b9350600101613b96565b600382015460006001604060020a039091161115613c45576003820154613c42908a906001604060020a0316898960ff880189613c51565b93505b50505095945050505050565b80600080613c5e88612be0565b6004810154909150600160a060020a031615801590613c7d5750600083115b15612f0a578815613d38576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613d0757600080fd5b6102c65a03f11515613d1857600080fd5b505050604051805192505082821115613d3057600080fd5b819250612f0a565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613dae57600080fd5b6102c65a03f11515613dbf57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e0c57600502816005028360005260206000209182019101613e0c9190613f6f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e5257805160ff1916838001178555613e7f565b82800160010185558215613e7f579182015b82811115613e7f578251825591602001919060010190613e64565b50613e8b929150613ffa565b5090565b815481835581811511613e0c57600402816004028360005260206000209182019101613e0c9190614014565b82805482825590600052602060002090600301600490048101928215613f635791602002820160005b83821115613f2e57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613ee4565b8015613f615782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f2e565b505b50613e8b929150614074565b610d9891905b80821115613e8b57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fa86001830182614099565b613fb6600283016000614099565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f75565b610d9891905b80821115613e8b5760008155600101614000565b610d9891905b80821115613e8b57600080825560018201805467ffffffffffffffff1916905561404760028301826140dd565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161401a565b610d9891905b80821115613e8b57805467ffffffffffffffff1916815560010161407a565b50805460018160011615610100020316600290046000825580601f106140bf5750613023565b601f0160209004906000526020600020908101906130239190613ffa565b5080546000825560030160049004906000526020600020908101906130239190613ffa5600a165627a7a723058209dcc7e3c3960ee811678d6e61c71254044c7b296854088e86e200538343a71fe0029" +exports.LiquidPledgingMockRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bde60ac9146106c3578063cc19ecf7146106dd578063ce17273c14610798578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ed9565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f3e565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e1565b341561036457600080fd5b6103786001604060020a0360043516611786565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061194f915050565b341561044b57600080fd5b610254611b3d565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4795505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb29050565b341561056957600080fd5b6102886001604060020a0360043516611fdd565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061206b915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225895505050505050565b341561068357600080fd5b6102546122c3565b341561069657600080fd5b6102886004356122c9565b34156106ac57600080fd5b6102886001604060020a03600435166024356122ce565b6102886001604060020a036004358116906024351661237a565b34156106e857600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124e4915050565b34156107a357600080fd5b61028860046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506125cf95505050505050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612606915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612673915050565b341561091557600080fd5b6102886001604060020a036004351660243561275e565b341561093757600080fd5b61094b6001604060020a0360043516612872565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a3795505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612aa2915050565b3415610b9757600080fd5b610b9f612b8d565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613dce565b600080610bd287612b9c565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612be0565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612be0565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612b9c565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b6001820154610e03906001604060020a0316610ce0565b15610e0d57600080fd5b6001820154600283018054610ec6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e5d5790505b505050506003860154600091508190608060020a90046001604060020a03166002612c26565b9050610ed3848285612f16565b50505050565b600080600080600080600080610eee89612b9c565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f4c85611786565b9450610f5785612b9c565b92506000600384015460c060020a900460ff166002811115610f7557fe5b14610f7f57600080fd5b6001830154610f96906001604060020a0316612be0565b915061118b826101006040519081016040528154909190829060ff166002811115610fbd57fe5b6002811115610fc857fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111365780601f1061110b57610100808354040283529160200191611136565b820191906000526020600020905b81548152906001019060200180831161111957829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152612fdf565b6001830154600284018054611244926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561121e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111db5790505b505050506003870154600091508190608060020a90046001604060020a03166001612c26565b9050611251858286612f16565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112c657600080fd5b6102c65a03f115156112d757600080fd5b5050505050505050565b60008060008060006112f288611786565b97506112fd88612b9c565b945061130886612be0565b935061131389612be0565b925061133a836101006040519081016040528154909190829060ff166002811115610fbd57fe5b6000600386015460c060020a900460ff16600281111561135657fe5b1461136057600080fd5b60018501546001604060020a038a811691161415611401576000845460ff16600281111561138a57fe5b14156113a05761139b888888613026565b6113fc565b6002845460ff1660028111156113b257fe5b14156113c35761139b888888613056565b6001845460ff1660028111156113d557fe5b14156113fa576113ed8888876002018054905061327f565b975061139b888888613384565bfe5b61177b565b6115328560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114cb57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114885790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561151e57fe5b600281111561152957fe5b9052508a6134ab565b6001604060020a03908116925082146113fa576000845460ff16600281111561155757fe5b141561158e5760018501546001604060020a0387811691161461157657fe5b6115888888876002018054905061327f565b5061177b565b6001845460ff1660028111156115a057fe5b141561173f576116d78560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161162d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c357fe5b60028111156116ce57fe5b905250876134ab565b6001604060020a039081169150811415611702576113ed88886001858960020180549050030361327f565b81811115611721576113ed88886001858960020180549050030361327f565b8181116113fc5761158888886001848960020180549050030361327f565b6002845460ff16600281111561175157fe5b14156113fa5761176e88886001858960020180549050030361327f565b97506113fc888888613511565b505050505050505050565b60008060008061179585612b9c565b92506000600384015460c060020a900460ff1660028111156117b357fe5b146117c057849350611947565b600383015460006001604060020a039091161180156117f957506003830154604060020a90046001604060020a03166117f7613820565b115b156119165760018301546002840180546118b6926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161184e5790505b505050506003870154600091508190608060020a90046001604060020a031681612c26565b60038401549092506118f6906001604060020a031660006040518059106118da5750595b9080825280602002602001820160405250600080866000612c26565b905061190785828560000154612f16565b80945061191385612b9c565b92505b61191f85613826565b90506001604060020a03808216908616146119435761194385828560000154612f16565b8093505b505050919050565b6001805490818082016119628382613de0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a27929160200190613e11565b50606082015181600201908051611a42929160200190613e11565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed3576001604060020a03848481518110611b6957fe5b90602001906020020151169150604060020a848481518110611b8757fe5b90602001906020020151811515611b9a57fe5b049050611ba78282610f3e565b600190920191611b4c565b6000806001604060020a03851615611dea57611bcd85612be0565b90506002815460ff166002811115611be157fe5b14611beb57600080fd5b6014611de0826101006040519081016040528154909190829060ff166002811115611c1257fe5b6002811115611c1d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ce95780601f10611cbe57610100808354040283529160200191611ce9565b820191906000526020600020905b815481529060010190602001808311611ccc57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d8b5780601f10611d6057610100808354040283529160200191611d8b565b820191906000526020600020905b815481529060010190602001808311611d6e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138ee565b10611dea57600080fd5b60018054925082808201611dfe8382613de0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e7e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec4929160200190613e11565b50606082015181600201908051611edf929160200190613e11565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fe882612be0565b905061200f816101006040519081016040528154909190829060ff166002811115610fbd57fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60018054908180820161207e8382613de0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120fd57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612143929160200190613e11565b5060608201518160020190805161215e929160200190613e11565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed3576001604060020a0384848151811061227a57fe5b90602001906020020151169150604060020a84848151811061229857fe5b906020019060200201518115156122ab57fe5b0490506122b88282610d9b565b60019092019161225d565b60045481565b600455565b60008060006122dc85611786565b94506122e785612b9c565b6003810154909350608060020a90046001604060020a0316151561230a57600080fd5b6001830154612321906001604060020a0316612be0565b9150612348826101006040519081016040528154909190829060ff166002811115610fbd57fe5b600383015461236690608060020a90046001604060020a0316613826565b9050612373858286612f16565b5050505050565b60008080806001604060020a03861615156123c0576123bd6020604051908101604052806000815250602060405190810160405260008082526203f4809061206b565b95505b6123c986612be0565b93506123f0846101006040519081016040528154909190829060ff166002811115610fbd57fe5b6000845460ff16600281111561240257fe5b1461240c57600080fd5b3492506000831161241c57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561244f57600080fd5b61247e8660006040518059106124625750595b9080825280602002602001820160405250600080600080612c26565b915061248982612b9c565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124dc868385886112e1565b505050505050565b60006124ef86612be0565b90506001815460ff16600281111561250357fe5b1461250d57600080fd5b805433600160a060020a03908116610100909204161461252c57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161255f929160200190613e11565b5060028101838051612575929160200190613e11565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612602576125f98282815181106125ea57fe5b90602001906020020151611786565b506001016125d2565b5050565b600080805b84518310156124dc576001604060020a0385848151811061262857fe5b90602001906020020151169150604060020a85848151811061264657fe5b9060200190602002015181151561265957fe5b049050612668868383876112e1565b60019092019161260b565b600061267e86612be0565b90506000815460ff16600281111561269257fe5b1461269c57600080fd5b805433600160a060020a0390811661010090920416146126bb57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126ee929160200190613e11565b5060028101838051612704929160200190613e11565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461277e57600080fd5b61278784612b9c565b91506001600383015460c060020a900460ff1660028111156127a557fe5b146127af57600080fd5b6001820154600283018054612867926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561284257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127ff5790505b505050506003860154600091508190608060020a90046001604060020a031681612c26565b9050610ec681611786565b60008061287d613dce565b612885613dce565b60008060008060006128968a612be0565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f8201819004810201604051908101604052809291908181526020018280546001816001161561010002031660029004801561294c5780601f106129215761010080835404028352916020019161294c565b820191906000526020600020905b81548152906001019060200180831161292f57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129eb5780601f106129c0576101008083540402835291602001916129eb565b820191906000526020600020905b8154815290600101906020018083116129ce57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed3576001604060020a03848481518110612a5957fe5b90602001906020020151169150604060020a848481518110612a7757fe5b90602001906020020151811515612a8a57fe5b049050612a97828261275e565b600190920191612a3c565b6000612aad86612be0565b90506002815460ff166002811115612ac157fe5b14612acb57600080fd5b805433600160a060020a039081166101009092041614612aea57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b1d929160200190613e11565b5060028101838051612b33929160200190613e11565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612bb457600080fd5b600080546001604060020a038416908110612bcb57fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bfa57600080fd5b600180546001604060020a038416908110612c1157fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612c73578082015183820152602001612c5b565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612ce057fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612d4957809250612f0a565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612d878382613e8f565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612df857fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612e43929160200190613ebb565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612efe57fe5b02179055505050508092505b50509695505050505050565b6000806000612f286001878787613958565b9250846001604060020a0316866001604060020a03161415612f49576124dc565b821515612f55576124dc565b612f5e86612b9c565b9150612f6985612b9c565b825490915083901015612f7b57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612fd66000878786613958565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061301857508060e00151600160a060020a031633600160a060020a0316145b151561302357600080fd5b50565b6000610ec68260006040518059106124625750599080825280602002602001820160405250600080600080612c26565b600080600061306486612b9c565b925060146131988460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561313257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130ef5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561318557fe5b600281111561319057fe5b90525061397e565b106131a257600080fd5b6131ab84610ce0565b156131b557600080fd5b6001830154600284018054613242926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189157600091825260209182902080546001604060020a0316845290820283019290916008910180841161184e5750505050600388015460009250829150608060020a90046001604060020a031681612c26565b91506132728460006040518059106118da5750599080825280602002602001820160405250600080866000612c26565b90506124dc868287612f16565b60008061328a613dce565b60008061329688612b9c565b60028101549094508690036040518059106132ae5750595b90808252806020026020018201604052509250600091505b600284015486900382101561333c57600284018054839081106132e557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061331a57fe5b6001604060020a039092166020928302909101909101526001909101906132c6565b6001840154600385015461336c916001604060020a039081169186916000918291608060020a9091041681612c26565b9050613379888289612f16565b979650505050505050565b600061338e613dce565b60008061339a87612b9c565b6002810154909450601490106133af57600080fd5b60028401546001016040518059106133c45750595b90808252806020026020018201604052509250600091505b600284015482101561344f57600284018054839081106133f857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061342d57fe5b6001604060020a039092166020928302909101909101526001909101906133dc565b6002840154859084908151811061346257fe5b6001604060020a03928316602091820290920101526001850154600386015461349e929182169186916000918291608060020a90041681612c26565b9050612fd6878288612f16565b6000805b8360400151518110156134ff57826001604060020a0316846040015182815181106134d657fe5b906020019060200201516001604060020a031614156134f75780915061350a565b6001016134af565b6001604060020a0391505b5092915050565b60008061351d85612b9c565b915060146136138360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561313257600091825260209182902080546001604060020a031684529082028301929091600891018084116130ef5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561318557fe5b1061361d57600080fd5b61362683610ce0565b1561363057600080fd5b6001820154600283018054612366926001604060020a031691906020808202016040519081016040528092919081815260200182805480156136c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116136805790505b5050505050856137f98660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561379357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137505790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156137e657fe5b60028111156137f157fe5b905250613aa9565b613801613820565b6003880154910190608060020a90046001604060020a03166000612c26565b60045490565b600080806001604060020a038416151561384357600092506138e7565b61384c84612b9c565b6001810154909250613866906001604060020a0316612be0565b90506000815460ff16600281111561387a57fe5b1415613888578392506138e7565b6002815460ff16600281111561389a57fe5b146138a157fe5b60018201546138b8906001604060020a0316610ce0565b15156138c6578392506138e7565b60038201546138e490608060020a90046001604060020a0316613826565b92505b5050919050565b60008060028351600281111561390057fe5b1461390757fe5b8260a001516001604060020a031615156139245760019150610d8a565b6139318360a00151612be0565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1257fe5b806139668585808685613b33565b90506139758584868685613b33565b95945050505050565b6000808260a001516001604060020a0316151561399e5760009150610d8a565b6139ab8360a00151612b9c565b9050613a9f8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561313257600091825260209182902080546001604060020a031684529082028301929091600891018084116130ef5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561318557fe5b6001019392505050565b6000806000613abb8460200151612be0565b60038101546001604060020a031693509150600090505b8360400151518110156138e757613b0184604001518281518110613af257fe5b90602001906020020151612be0565b60038101549092506001604060020a031683901115613b2b5760038201546001604060020a031692505b600101613ad2565b600080600080866001604060020a0316886001604060020a031614613b5a57610100613b5d565b60005b61ffff169250849350613b6f88612b9c565b6001810154909250613b8f908a906001604060020a031689898789613c51565b9350600090505b60028201546001604060020a0382161015613c0a57613c008983600201836001604060020a0316815481101515613bc957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c51565b9350600101613b96565b600382015460006001604060020a039091161115613c45576003820154613c42908a906001604060020a0316898960ff880189613c51565b93505b50505095945050505050565b80600080613c5e88612be0565b6004810154909150600160a060020a031615801590613c7d5750600083115b15612f0a578815613d38576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613d0757600080fd5b6102c65a03f11515613d1857600080fd5b505050604051805192505082821115613d3057600080fd5b819250612f0a565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613dae57600080fd5b6102c65a03f11515613dbf57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e0c57600502816005028360005260206000209182019101613e0c9190613f6f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e5257805160ff1916838001178555613e7f565b82800160010185558215613e7f579182015b82811115613e7f578251825591602001919060010190613e64565b50613e8b929150613ffa565b5090565b815481835581811511613e0c57600402816004028360005260206000209182019101613e0c9190614014565b82805482825590600052602060002090600301600490048101928215613f635791602002820160005b83821115613f2e57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613ee4565b8015613f615782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f2e565b505b50613e8b929150614074565b610d9891905b80821115613e8b57805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fa86001830182614099565b613fb6600283016000614099565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f75565b610d9891905b80821115613e8b5760008155600101614000565b610d9891905b80821115613e8b57600080825560018201805467ffffffffffffffff1916905561404760028301826140dd565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161401a565b610d9891905b80821115613e8b57805467ffffffffffffffff1916815560010161407a565b50805460018160011615610100020316600290046000825580601f106140bf5750613023565b601f0160209004906000526020600020908101906130239190613ffa565b5080546000825560030160049004906000526020600020908101906130239190613ffa5600a165627a7a723058209dcc7e3c3960ee811678d6e61c71254044c7b296854088e86e200538343a71fe0029" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0x4c728981dece2300b20059a2af76c32fcffd15edfbaea62942e40e3ab0b4aa4f" +exports._sha256 = "0x15cea9c9f7e95f2af92794ed87110231600908afdd99d61b3c0da1e27bdf5676" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index ac7b4ec..6adf15e 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -883,11 +883,13 @@ contract LiquidPledging is LiquidPledgingBase { idPledge = normalizePledge(idPledge); Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); - doTransfer(idPledge, n.oldPledge, amount); + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); } diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index 0e7e375..5653a05 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -883,11 +883,13 @@ contract LiquidPledging is LiquidPledgingBase { idPledge = normalizePledge(idPledge); Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); - doTransfer(idPledge, n.oldPledge, amount); + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); } diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index 8a6f58a..8823202 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -119,10 +119,10 @@ contract LPVault is Owned { require(p.state == PaymentStatus.Pending); p.state = PaymentStatus.Paid; - p.dest.transfer(p.amount); // only ETH denominated in wei - liquidPledging.confirmPayment(uint64(p.ref), p.amount); + p.dest.transfer(p.amount); // only ETH denominated in wei + ConfirmPayment(_idPayment); } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 8f024e3..cc4cbe7 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -238,7 +238,7 @@ contract LiquidPledging is LiquidPledgingBase { require(n.paymentState == PaymentState.Paying); // Check the project is not canceled in the while. - require(getOldestPledgeNotCanceled(idPledge) == idPledge); + require(!isProjectCanceled(n.owner)); uint64 idNewPledge = findOrCreatePledge( n.owner, @@ -292,11 +292,13 @@ contract LiquidPledging is LiquidPledgingBase { idPledge = normalizePledge(idPledge); Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); PledgeAdmin storage m = findAdmin(n.owner); checkAdminOwner(m); - doTransfer(idPledge, n.oldPledge, amount); + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); } @@ -377,11 +379,9 @@ contract LiquidPledging is LiquidPledgingBase { /// normalized efficiently /// @param pledges An array of pledge IDs which are extrapolated using /// the D64 bitmask - function mNormalizePledge(uint[] pledges) returns(uint64) { + function mNormalizePledge(uint[] pledges) { for (uint i = 0; i < pledges.length; i++ ) { - uint64 idPledge = uint64( pledges[i] & (D64-1) ); - - normalizePledge(idPledge); + normalizePledge( pledges[i] ); } } diff --git a/package.json b/package.json index 7068705..7b8e50a 100644 --- a/package.json +++ b/package.json @@ -39,12 +39,12 @@ "random-bytes": "^1.0.0", "mocha": "^3.5.0", "solcpiler": "0.0.4", - "web3": "git://github.com/perissology/web3.js.git#all_fixes" + "web3": "1.0.0-beta.24" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", "dependencies": { "async": "^2.4.0", "chai": "^4.1.0", - "eth-contract-class": "0.0.4" + "eth-contract-class": "0.0.6" } } diff --git a/readme-header.png b/readme-header.png new file mode 100755 index 0000000..c27eec8 Binary files /dev/null and b/readme-header.png differ diff --git a/test/CancelPledge.js b/test/CancelPledge.js new file mode 100644 index 0000000..d4d1bad --- /dev/null +++ b/test/CancelPledge.js @@ -0,0 +1,89 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); +const assertFail = require('./helpers/assertFail'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assert = chai.assert; + +const printState = async (liquidPledgingState) => { + const st = await liquidPledgingState.getState(); + console.log(JSON.stringify(st, null, 2)); +}; + +describe('LiquidPledging cancelPledge normal scenario', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let giver1; + let adminProject1; + let adminProject2; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 5800000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[ 1 ]; + adminProject1 = accounts[ 2 ]; + adminProject2 = accounts[ 3 ]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy LiquidPledging contract', async () => { + vault = await Vault.new(web3); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + }); + + it('Should add project and donate ', async () => { + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { from: adminProject1 }); + await liquidPledging.donate(0, 1, { from: giver1, value: '1000', gas: 500000 }); + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 2); + }); + + it('Should only allow pledge owner to cancel pledge', async () => { + await assertFail(async () => { + await liquidPledging.cancelPledge(2, 1000, { from: giver1, gas: 500000 }); + }); + }); + + it('Should cancel pledge and return to oldPledge', async () => { + await liquidPledging.cancelPledge(2, 1000, { from: adminProject1, gas: 500000 }); + + const st = await liquidPledgingState.getState(); + + assert.equal(st.pledges[1].amount, 1000); + assert.equal(st.pledges[2].amount, 0); + }); + + it('Should not allow to cancel pledge if oldPledge === 0', async () => { + await assertFail(async () => { + await liquidPledging.cancelPledge(1, 1000, { from: giver1, gas: 500000 }); + }); + }) +}); + diff --git a/test/DelegationChain.js b/test/DelegationChain.js new file mode 100644 index 0000000..9030942 --- /dev/null +++ b/test/DelegationChain.js @@ -0,0 +1,182 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assertFail = require('./helpers/assertFail'); +const assert = chai.assert; + +const printState = async (liquidPledgingState) => { + const st = await liquidPledgingState.getState(); + console.log(JSON.stringify(st, null, 2)); +}; + +describe('DelegationChain test', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let giver1; + let giver2; + let delegate1; + let delegate2; + let delegate3; + let adminProject1; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 5800000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[1]; + delegate1 = accounts[2]; + delegate2 = accounts[3]; + delegate3 = accounts[4]; + adminProject1 = accounts[5]; + giver2 = accounts[6]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy LiquidPledging contract', async () => { + vault = await Vault.new(web3); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + }); + + it('Should add pledgeAdmins', async () => { + await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); // pledgeAdmin 1 + await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 259200, 0, { from: delegate1 }); // pledgeAdmin 2 + await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 + await liquidPledging.addDelegate('Delegate3', 'URLDelegate3', 0, 0, { from: delegate3 }); // pledgeAdmin 4 + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 5 + await liquidPledging.addGiver('Giver2', 'URLGiver2', 0, 0, { from: giver2 }); // pledgeAdmin 6 + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 6); + }); + + it('Should allow previous delegate to transfer pledge', async () => { + await liquidPledging.donate(1, 2, {from: giver1, value: 1000, $extraGas: 50000}); + // add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + // delegate 1 transfer pledge back to self, thus undelegating delegate2 + await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1, $extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[2].amount, 1000); + assert.equal(st.pledges[3].amount, 0); + }); + + it('Should allow any delegate in chain to transfer pledge and undelegate all delegates occurring later in chain', async () => { + // add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + // add delegate3 to chain + await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2, $extraGas: 100000}); + // delegate 1 transfer pledge to project1. should also undelegate all delegates occurring later in chain + await liquidPledging.transfer(2, 4, 1000, 5, {from: delegate1, $extraGas: 200000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[5].amount, 1000); + assert.equal(st.pledges[5].intendedProject, 5); + assert.equal(st.pledges[5].delegates.length, 1); + assert.equal(st.pledges[5].delegates[0].id, 2); + assert.equal(st.pledges[3].amount, 0); + assert.equal(st.pledges[4].amount, 0); + }); + + it('Should throw if delegate2 is not in delegationChain', async () => { + await assertFail(async () => await liquidPledging.transfer(3, 5, 1000, 1, {from: delegate2})); + }); + + it('Delegate1 should not be able to transfer to another giver', async () => { + await assertFail(async () => await liquidPledging.transfer(2, 5, 1000, 6, {from: delegate1})); + }); + + it('Delegate1 should be able to transfer pledge back to owner', async () => { + await liquidPledging.transfer(2, 5, 1000, 1, {from: delegate1, $extraGas: 100000}); + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[1].amount, 1000); + assert.equal(st.pledges[1].delegates.length, 0); + assert.equal(st.pledges[5].amount, 0); + }); + + it('Delegate1 should be able to change delegation', async () => { + // add delegate1 to chain + await liquidPledging.transfer(1, 1, 1000, 2, {from: giver1, $extraGas: 100000}); + // delegate1 add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + // delegate1 remove delegate2 and add delegate3 to chain + await liquidPledging.transfer(2, 3, 1000, 4, {from: delegate1, $extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[1].amount, 0); + assert.equal(st.pledges[6].amount, 1000); + assert.equal(st.pledges[6].delegates.length, 2); + assert.equal(st.pledges[6].delegates[0].id, 2); + assert.equal(st.pledges[6].delegates[1].id, 4); + }); + + it('delegate in chain should be able to delegate to previous delegate, thus undelegating themselves and any delegate after the previous delegate', async () => { + // add delegate2 to chain + await liquidPledging.transfer(4, 6, 1000, 3, {from: delegate3, $extraGas: 100000}); + // delegate2 transfer back to delegate1, thus undelegating delegate2 & delegate3 + await liquidPledging.transfer(3, 7, 1000, 2, {from: delegate2, $extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[7].amount, 0); + assert.equal(st.pledges[2].amount, 1000); + assert.equal(st.pledges[2].delegates.length, 1); + assert.equal(st.pledges[2].delegates[0].id, 2); + }); + + it('Should not append delegate on veto delegation', async () => { + // propose the delegation + await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1, $extraGas: 100000 }); + + const origPledge = await liquidPledging.getPledge(2); + assert.equal(origPledge.amount, '0'); + + // veto the delegation + await liquidPledging.transfer(1, 5, 1000, 2, { from: giver1, $extraGas: 100000 }); + + const currentPledge = await liquidPledging.getPledge(2); + + assert.equal(currentPledge.amount, '1000'); + assert.equal(currentPledge.nDelegates, 1); + }); + + it('Pledge should have longest commitTime in delegation chain', async () => { + // delegate1 add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + + // set the time + const now = Math.floor(new Date().getTime() / 1000); + await liquidPledging.setMockedTime(now); + + // propose project delegation + await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); + + const pledge = await liquidPledging.getPledge(8); + assert.equal(pledge.commitTime, now + 259200); // 259200 is longest commitTime in delegationChain + }) +}); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 4a4f687..89ea077 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -19,7 +19,8 @@ const printState = async (liquidPledgingState) => { console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging Normal Operation', () => { +describe('LiquidPledging test', function () { + this.timeout(0); let testrpc; let web3; let accounts; @@ -59,12 +60,13 @@ describe('LiquidPledging Normal Operation', () => { testrpc.close(); done(); }); + it('Should deploy LiquidPledging contract', async () => { vault = await LPVault.new(web3); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); - }).timeout(6000); + }); it('Should create a giver', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -75,13 +77,13 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res[2], 'Giver1'); assert.equal(res[3], 'URLGiver1'); assert.equal(res[4], 86400); - }).timeout(6000); + }); it('Should make a donation', async () => { await liquidPledging.donate(1, 1, { from: giver1, value: utils.toWei(1) }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 1); await liquidPledging.getPledge(1); - }).timeout(6000); + }); it('Should create a delegate', async () => { await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -92,7 +94,7 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res[2], 'Delegate1'); assert.equal(res[3], 'URLDelegate1'); assert.equal(res[4], 0); - }).timeout(6000); + }); it('Giver should delegate on the delegate', async () => { await liquidPledging.transfer(1, 1, utils.toWei(0.5), 2, { from: giver1 }); const nPledges = await liquidPledging.numberOfPledges(); @@ -107,7 +109,7 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(d[0], 2); assert.equal(d[1], delegate1); assert.equal(d[2], 'Delegate1'); - }).timeout(6000); + }); it('Should create a 2 projects', async () => { await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 86400, 0, { from: adminProject1 }); @@ -134,7 +136,7 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res4[4], 86400); assert.equal(res4[5], 0); assert.equal(res4[6], false); - }).timeout(6000); + }); it('Delegate should assign to project1', async () => { const n = Math.floor(new Date().getTime() / 1000); await liquidPledging.transfer(2, 2, utils.toWei(0.2), 3, { from: delegate1 }); @@ -148,7 +150,7 @@ describe('LiquidPledging Normal Operation', () => { assert.isAbove(utils.toDecimal(res3[4]), n + 86000); assert.equal(res3[5], 0); // Old Node assert.equal(res3[6], 0); // Not Paid - }).timeout(6000); + }); it('Giver should change his mind and assign half of it to project2', async () => { await liquidPledging.transfer(1, 3, utils.toWei(0.1), 4, { from: giver1 }); const nPledges = await liquidPledging.numberOfPledges(); @@ -162,7 +164,7 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res4[4], 0); assert.equal(res4[5], 2); // Old Node assert.equal(res4[6], 0); // Not Paid - }).timeout(6000); + }); it('After the time, the project1 should be able to spend part of it', async () => { const n = Math.floor(new Date().getTime() / 1000); await liquidPledging.setMockedTime(n + 86401); @@ -185,7 +187,7 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res6[4], 0); // commit time assert.equal(res6[5], 2); // Old Node assert.equal(res6[6], 1); // Peinding paid Paid - }).timeout(6000); + }); it('Should collect the Ether', async () => { const initialBalance = await web3.eth.getBalance(adminProject1); @@ -206,19 +208,19 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res7[4], 0); // commit time assert.equal(res7[5], 2); // Old Node assert.equal(res7[6], 2); // Peinding paid Paid - }).timeout(6000); + }); it('Admin of the project1 should be able to cancel project1', async () => { await liquidPledging.cancelProject(3, { from: adminProject1 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.admins[3].canceled, true); - }).timeout(6000); + }); it('Should not allow to withdraw from a canceled project', async () => { const st = await liquidPledgingState.getState(liquidPledging); assert.equal(utils.fromWei(st.pledges[5].amount), 0.05); await assertFail(async () => { await liquidPledging.withdraw(5, utils.toWei(0.01), { from: adminProject1 }); }); - }).timeout(6000); + }); it('Delegate should send part of this ETH to project2', async () => { await liquidPledging.transfer(2, 5, utils.toWei(0.03), 4, { $extraGas: 100000, @@ -231,34 +233,34 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(st.pledges[8].delegates.length, 1); assert.equal(st.pledges[8].delegates[0].id, 2); assert.equal(st.pledges[8].intendedProject, 4); - }).timeout(6000); + }); it('Giver should be able to send the remaining to project2', async () => { await liquidPledging.transfer(1, 5, utils.toWei(0.02), 4, { from: giver1, $extraGas: 100000 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[5].amount), 0); assert.equal(utils.fromWei(st.pledges[4].amount), 0.12); - }).timeout(6000); + }); it('A subproject 2a and a delegate2 is created', async () => { await liquidPledging.addProject('Project2a', 'URLProject2a', adminProject2a, 4, 86400, 0, { from: adminProject2 }); await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 6); - }).timeout(6000); + }); it('Project 2 delegate in delegate2', async () => { await liquidPledging.transfer(4, 4, utils.toWei(0.02), 6, { from: adminProject2 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 10); assert.equal(utils.fromWei(st.pledges[9].amount), 0.02); assert.equal(utils.fromWei(st.pledges[4].amount), 0.1); - }).timeout(6000); + }); it('delegate2 assigns to projec2a', async () => { await liquidPledging.transfer(6, 9, utils.toWei(0.01), 5, { from: delegate2 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 11); assert.equal(utils.fromWei(st.pledges[9].amount), 0.01); assert.equal(utils.fromWei(st.pledges[10].amount), 0.01); - }).timeout(4000); + }); it('project2a authorize to spend a litle', async () => { const n = Math.floor(new Date().getTime() / 1000); await liquidPledging.setMockedTime(n + (86401 * 3)); @@ -268,20 +270,20 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(utils.fromWei(st.pledges[10].amount), 0); assert.equal(utils.fromWei(st.pledges[11].amount), 0.005); assert.equal(utils.fromWei(st.pledges[12].amount), 0.005); - }).timeout(4000); + }); it('project2 is canceled', async () => { await liquidPledging.cancelProject(4, { from: adminProject2 }); - }).timeout(6000); + }); it('project2 should not be able to confirm payment', async () => { await assertFail(async () => { await vault.confirmPayment(1); }); - }).timeout(6000); + }); it('Should not be able to withdraw it', async () => { await assertFail(async () => { await liquidPledging.withdraw(12, utils.toWei(0.005), { from: giver1 }); }); - }).timeout(6000); + }); it('Should be able to cancel payment', async () => { // bug somewhere which will throw invalid op_code if we don't provide gas or extraGas await vault.cancelPayment(1, { $extraGas: 100000 }); @@ -290,14 +292,22 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(utils.fromWei(st.pledges[2].amount), 0.31); assert.equal(utils.fromWei(st.pledges[11].amount), 0); assert.equal(utils.fromWei(st.pledges[12].amount), 0); - }).timeout(6000); + }); it('original owner should recover the remaining funds', async () => { - await liquidPledging.withdraw(1, utils.toWei(0.5), { from: giver1 }); - await liquidPledging.withdraw(2, utils.toWei(0.31), { from: giver1 }); - await liquidPledging.withdraw(4, utils.toWei(0.1), { $extraGas: 100000, from: giver1 }); + const pledges = [ + { amount: utils.toWei(0.5), id: 1 }, + { amount: utils.toWei(0.31), id: 2 }, + { amount: utils.toWei(0.1), id: 4 }, + { amount: utils.toWei(0.03), id: 8 }, + { amount: utils.toWei(0.01), id: 9 }, + ]; - await liquidPledging.withdraw(8, utils.toWei(0.03), { $extraGas: 100000, from: giver1 }); - await liquidPledging.withdraw(9, utils.toWei(0.01), { $extraGas: 100000, from: giver1 }); + // .substring is to remove the 0x prefix on the toHex result + const encodedPledges = pledges.map(p => { + return '0x' + utils.padLeft(utils.toHex(p.amount).substring(2), 48) + utils.padLeft(utils.toHex(p.id).substring(2), 16); + }); + + await liquidPledging.mWithdraw(encodedPledges, { from: giver1, $extraGas: 500000 }); const initialBalance = await web3.eth.getBalance(giver1); await vault.multiConfirm([2, 3, 4, 5, 6]); @@ -306,7 +316,7 @@ describe('LiquidPledging Normal Operation', () => { const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); assert.equal(collected, 0.95); - }).timeout(12000); + }); it('Should make a donation and create giver', async () => { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -321,11 +331,11 @@ describe('LiquidPledging Normal Operation', () => { assert.equal(res[2], ''); assert.equal(res[3], ''); assert.equal(res[4], 259200); // default to 3 day commitTime - }).timeout(6000); + }); it('Should allow childProject with different parentProject owner', async () => { const nAdminsBefore = await liquidPledging.numberOfPledgeAdmins(); await liquidPledging.addProject('Project3', 'URLProject3', adminProject3, 4, 86400, 0, { from: adminProject3 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, utils.toDecimal(nAdminsBefore) + 1); - }).timeout(6000); + }); }); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js new file mode 100644 index 0000000..e1236a7 --- /dev/null +++ b/test/NormalizePledge.js @@ -0,0 +1,127 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assertFail = require('./helpers/assertFail'); +const assert = chai.assert; + +const printState = async (liquidPledgingState) => { + const st = await liquidPledgingState.getState(); + console.log(JSON.stringify(st, null, 2)); +}; + +describe('NormalizePledge test', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let giver1; + let giver2; + let delegate1; + let delegate2; + let adminProject1; + let adminProject2; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 5800000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[1]; + delegate1 = accounts[2]; + delegate2 = accounts[3]; + adminProject1 = accounts[4]; + adminProject2 = accounts[5]; + giver2 = accounts[6]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy LiquidPledging contract', async () => { + vault = await Vault.new(web3); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + }); + + it('Should add pledgeAdmins', async () => { + await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); // pledgeAdmin 1 + await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 259200, 0, { from: delegate1 }); // pledgeAdmin 2 + await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 4 + await liquidPledging.addProject('Project2', 'URLProject2', adminProject2, 0, 0, 0, { from: adminProject2 }); // pledgeAdmin 5 + await liquidPledging.addGiver('Giver2', 'URLGiver2', 0, 0, { from: giver2 }); // pledgeAdmin 6 + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 6); + }); + + it('Should commit pledges if commitTime has passed', async () => { + // commitTime 259200 + await liquidPledging.donate(1, 2, {from: giver1, value: 1000, $extraGas: 50000}); + // commitTime 86400 + await liquidPledging.donate(1, 3, {from: giver1, value: 1000, $extraGas: 50000}); + // commitTime 0 + await liquidPledging.donate(6, 3, {from: giver2, value: 1000, $extraGas: 50000}); + + // set the time + const now = Math.floor(new Date().getTime() / 1000); + await liquidPledging.setMockedTime(now); + + // delegate to project + await liquidPledging.transfer(2, 2, 1000, 4, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2, $extraGas: 100000}); + await liquidPledging.transfer(3, 5, 1000, 4, {from: delegate2, $extraGas: 100000}); + + // advance the time + await liquidPledging.setMockedTime( now + 100000 ); + + await liquidPledging.mNormalizePledge([6, 7, 8], {$extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges.length, 11); + assert.equal(st.pledges[6].amount, 1000); + assert.equal(st.pledges[9].amount, 1000); + assert.equal(st.pledges[9].owner, 4); + assert.equal(st.pledges[9].oldPledge, 3); + assert.equal(st.pledges[10].amount, 1000); + assert.equal(st.pledges[10].owner, 4); + assert.equal(st.pledges[10].oldPledge, 5); + }); + + it('Should transfer pledge to oldestPledgeNotCanceled', async () => { + await liquidPledging.transfer(4, 10, 1000, 5, {from: adminProject1, $extraGas: 100000}); + + // cancel projects + await liquidPledging.cancelProject(4, {from: adminProject1}); + await liquidPledging.cancelProject(5, {from: adminProject2}); + + await liquidPledging.mNormalizePledge([9, 11], {$extraGas: 100000}); + + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges.length, 12); + assert.equal(st.pledges[3].amount, 1000); + assert.equal(st.pledges[5].amount, 1000); + assert.equal(st.pledges[9].amount, 0); + assert.equal(st.pledges[11].amount, 0); + }) +}); diff --git a/test/helpers/assertFail.js b/test/helpers/assertFail.js index 6633b60..123c3df 100644 --- a/test/helpers/assertFail.js +++ b/test/helpers/assertFail.js @@ -6,7 +6,7 @@ module.exports = async function(callback) { try { await callback(); } catch (error) { - if (error.message.search("invalid opcode")) web3_error_thrown = true; + if (error.message.includes("invalid opcode")) web3_error_thrown = true; } assert.ok(web3_error_thrown, "Transaction should fail"); };