UNPKG

@netvote/elections-solidity

Version:
804 lines 96.2 kB
{ "contractName": "BasicElection", "abi": [ { "constant": false, "inputs": [], "name": "activate", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "gateway", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "b", "type": "address" } ], "name": "ballotExists", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "voteToken", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "addr", "type": "address" } ], "name": "removeAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "electionStartTime", "type": "uint256" }, { "name": "electionEndTime", "type": "uint256" } ], "name": "setTimes", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "addr", "type": "address" } ], "name": "isAdmin", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "electionPhase", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "votes", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "endTime", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "abort", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "createdBy", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "voteId", "type": "bytes32" }, { "name": "vote", "type": "string" }, { "name": "passphrase", "type": "string" }, { "name": "jti", "type": "bytes32" } ], "name": "castVote", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "entry", "type": "bytes32" } ], "name": "addAuthorized", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "close", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "acct", "type": "address" } ], "name": "setVoteOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "electionType", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "privateKey", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "election", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "removeSelf", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "entry", "type": "bytes32" } ], "name": "isAuthorized", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "publicKey", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "key", "type": "string" } ], "name": "setPublicKey", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "addr", "type": "address" } ], "name": "addAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "entry", "type": "bytes32" } ], "name": "removeAuthorized", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "value", "type": "uint256" } ], "name": "withdrawVotes", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "index", "type": "uint256" } ], "name": "getVoteAt", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isLocked", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "unlock", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getBallotCount", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "metadataLocation", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "allowVoteUpdates", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isClosed", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "voteId", "type": "bytes32" }, { "name": "vote", "type": "string" }, { "name": "passphrase", "type": "string" }, { "name": "jti", "type": "bytes32" } ], "name": "updateVote", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "b", "type": "address" } ], "name": "removeBallot", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "b", "type": "address" } ], "name": "getBallotIndex", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "deductVote", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "key", "type": "string" } ], "name": "setPrivateKey", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getVoteCount", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "withdrawAllVotes", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "checkConfig", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "lock", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "b", "type": "address" } ], "name": "addBallot", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "index", "type": "uint256" } ], "name": "getBallot", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "hashedUserId", "type": "bytes32" }, { "name": "allowanceAddress", "type": "address" }, { "name": "ownerOfAllowance", "type": "address" }, { "name": "allowUpdates", "type": "bool" }, { "name": "revealerAddress", "type": "address" }, { "name": "location", "type": "string" }, { "name": "gatewayAddress", "type": "address" }, { "name": "autoActivate", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [], "name": "KeyReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "voteId", "type": "bytes32" } ], "name": "Vote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "voteId", "type": "bytes32" } ], "name": "UpdateVote", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Closed", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Activated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Aborted", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Locked", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Unlocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" } ], "bytecode": "0x60606040526003805461ffff191690556012805460ff1916905534156200002557600080fd5b60405162002464380380620024648339810160405280805191906020018051919060200180519190602001805191906020018051919060200180518201919060200180519190602001805190602001909190505087878787878033898f308b336000806101000a815481600160a060020a030219169083600160a060020a031602179055506000600160a060020a031682600160a060020a031614158015620000d65750600160a060020a03811615155b1515620000e257600080fd5b620000fb8364010000000062000e496200028e82021704565b60098054600160a060020a0319908116600160a060020a0394851617909155600d805490911691831691909117905583166000908152600160208190526040909120805460ff1916909117905550600e8180516200015e929160200190620005a7565b5050600f8054600160a060020a031916600160a060020a039390931692909217909155506200019b856401000000006200028e810262000e491704565b506012805461010060a860020a031916610100600160a060020a039586160217905560138054600160a060020a031916929093169190911760a060020a60ff02191674010000000000000000000000000000000000000000911515919091021790555060408051908101604052600581527f42415349430000000000000000000000000000000000000000000000000000006020820152601490805162000247929160200190620005a7565b50620002613064010000000062001b94620002ce82021704565b801562000280576200028064010000000062000893620003cc82021704565b505050505050505062000649565b620002a73364010000000062000a526200047982021704565b1515620002b357600080fd5b6000908152600260205260409020805460ff19166001179055565b620002e664010000000062001370620004ca82021704565b1580156200030a5750600060038054610100900460ff16908111156200030857fe5b145b15156200031657600080fd5b6200032f3364010000000062000a526200047982021704565b15156200033b57600080fd5b73__AddressSet____________________________63f9802f856004836040517c010000000000000000000000000000000000000000000000000000000063ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b1515620003b457600080fd5b6102c65a03f41515620003c657600080fd5b50505050565b620003e464010000000062001370620004ca82021704565b158015620004085750600060038054610100900460ff16908111156200040657fe5b145b15156200041457600080fd5b6200042d3364010000000062000a526200047982021704565b15156200043957600080fd5b6015541580156200044a5750601654155b156200045f574260158190556224ea00016016555b6200047764010000000062001c9c620004d482021704565b565b6000600160a060020a03821615801590620004c45750600054600160a060020a0383811691161480620004c45750600160a060020a03821660009081526001602052604090205460ff165b92915050565b60035460ff165b90565b620004ec64010000000062001370620004ca82021704565b158015620005105750600060038054610100900460ff16908111156200050e57fe5b145b15156200051c57600080fd5b620005353364010000000062000a526200047982021704565b15156200054157600080fd5b6200055964010000000062001a95620005a282021704565b15156200056557600080fd5b6003805461ff0019166101001790557fed1cd0670ee0c0017f550451a038818c696d0b6a9d6ce5b369e44275573cf9b060405160405180910390a1565b600190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ea57805160ff19168380011785556200061a565b828001600101855582156200061a579182015b828111156200061a578251825591602001919060010190620005fd565b50620006289291506200062c565b5090565b620004d191905b8082111562000628576000815560010162000633565b611e0b80620006596000396000f3006060604052600436106102215763ffffffff60e060020a6000350416630f15f4c08114610226578063116191b61461023b578063138b1fa01461026a578063160d66ae1461029d5780631785f53c146102b057806322434836146102cf57806324d7806c146102e8578063265050b6146103075780632b38cd961461033e5780633197cbb6146103cb57806335a063b4146103f05780633a5673a4146104035780634126ebe21461041657806341af099d146104b057806343d726d6146104c657806347beabd6146104d95780634885c72a146104f857806349da5a0f1461050b5780634b1d3ede1461051e5780635e898dac1461053157806362f4ed901461054457806363ffab311461055a5780636f6fc0771461056d57806370480275146105be57806372e789b3146105dd57806378e97925146105f35780638da5cb5b14610606578063961edb25146106195780639cc8f2b31461062f578063a4e2d63414610645578063a69df4b514610658578063b47414951461066b578063b86901af1461067e578063bf41bf3614610691578063c2b6b58c146106a4578063d6807a5c146106b7578063d71c677214610751578063db30eafb14610770578063de61a7321461078f578063e0d4f017146107a2578063e7b3387c146107f3578063ee51d4e114610806578063f098fe4714610819578063f2fde38b1461082c578063f83d08ba1461084b578063f8c74afa1461085e578063f9d5ee751461087d575b600080fd5b341561023157600080fd5b610239610893565b005b341561024657600080fd5b61024e61090a565b604051600160a060020a03909116815260200160405180910390f35b341561027557600080fd5b610289600160a060020a0360043516610919565b604051901515815260200160405180910390f35b34156102a857600080fd5b61024e6109a2565b34156102bb57600080fd5b610239600160a060020a03600435166109b6565b34156102da57600080fd5b6102396004356024356109f2565b34156102f357600080fd5b610289600160a060020a0360043516610a52565b341561031257600080fd5b61031a610aa1565b6040518082600381111561032a57fe5b60ff16815260200191505060405180910390f35b341561034957600080fd5b610354600435610aaf565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610390578082015183820152602001610378565b50505050905090810190601f1680156103bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103d657600080fd5b6103de610b5f565b60405190815260200160405180910390f35b34156103fb57600080fd5b610239610b65565b341561040e57600080fd5b610354610bb6565b341561042157600080fd5b610239600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505093359350610c2192505050565b34156104bb57600080fd5b610239600435610e49565b34156104d157600080fd5b610239610e78565b34156104e457600080fd5b610239600160a060020a0360043516610efe565b341561050357600080fd5b610354610f41565b341561051657600080fd5b610354610fac565b341561052957600080fd5b61024e611017565b341561053c57600080fd5b610239611026565b341561054f57600080fd5b61028960043561105c565b341561056557600080fd5b610354611071565b341561057857600080fd5b61023960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506110dc95505050505050565b34156105c957600080fd5b610239600160a060020a036004351661110e565b34156105e857600080fd5b610239600435611150565b34156105fe57600080fd5b6103de61117c565b341561061157600080fd5b61024e611182565b341561062457600080fd5b610239600435611191565b341561063a57600080fd5b610354600435611235565b341561065057600080fd5b610289611370565b341561066357600080fd5b61023961137a565b341561067657600080fd5b6103de6113d7565b341561068957600080fd5b610354611450565b341561069c57600080fd5b6102896114bb565b34156106af57600080fd5b6102896114dc565b34156106c257600080fd5b610239600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050933593506114fc92505050565b341561075c57600080fd5b610239600160a060020a03600435166116cf565b341561077b57600080fd5b6103de600160a060020a036004351661178e565b341561079a57600080fd5b6102396117f7565b34156107ad57600080fd5b61023960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506118d295505050505050565b34156107fe57600080fd5b6103de611930565b341561081157600080fd5b61023961198a565b341561082457600080fd5b610289611a95565b341561083757600080fd5b610239600160a060020a0360043516611a9a565b341561085657600080fd5b610239611b35565b341561086957600080fd5b610239600160a060020a0360043516611b94565b341561088857600080fd5b61024e600435611c3c565b61089b611370565b1580156108bd5750600060038054610100900460ff16908111156108bb57fe5b145b15156108c857600080fd5b6108d133610a52565b15156108dc57600080fd5b6015541580156108ec5750601654155b15610900574260158190556224ea00016016555b610908611c9c565b565b600d54600160a060020a031681565b600073__AddressSet____________________________63758241e0600484846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b151561098257600080fd5b6102c65a03f4151561099357600080fd5b50505060405180519392505050565b6012546101009004600160a060020a031681565b60005433600160a060020a039081169116146109d157600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6109fa611370565b158015610a1c5750600060038054610100900460ff1690811115610a1a57fe5b145b1515610a2757600080fd5b610a3033610a52565b1515610a3b57600080fd5b818111610a4757600080fd5b601591909155601655565b6000600160a060020a03821615801590610a9b5750600054600160a060020a0383811691161480610a9b5750600160a060020a03821660009081526001602052604090205460ff165b92915050565b600354610100900460ff1681565b600b6020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505081565b60165481565b610b6e33610a52565b1515610b7957600080fd5b6003805461ff0019166103001790557f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf60405160405180910390a1565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b610c29611370565b158015610c4b5750600160038054610100900460ff1690811115610c4957fe5b145b1515610c5657600080fd5b600d5433600160a060020a03908116911614610c7157600080fd5b8373__NoRemovalBytes32Set___________________63bd4a0da160078360006040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b1515610cd157600080fd5b6102c65a03f41515610ce257600080fd5b5050506040518051159050610cf657600080fd5b6000828152600c6020526040902054829060ff1615610d1457600080fd5b6000838152600c602052604090819020805460ff1916600117905573__NoRemovalBytes32Set___________________9063bda02f009060079089905160e060020a63ffffffff85160281526004810192909252602482015260440160006040518083038186803b1515610d8757600080fd5b6102c65a03f41515610d9857600080fd5b5050506000868152600b60205260409020858051610dba929160200190611d35565b50600954600160a060020a031663de61a7326040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610dfa57600080fd5b6102c65a03f11515610e0b57600080fd5b5050507fe071651fdb9485bc1f9dbd3312c8a999c04ad7a5fef33ee1036e1fc709c4da4f8660405190815260200160405180910390a1505050505050565b610e5233610a52565b1515610e5d57600080fd5b6000908152600260205260409020805460ff19166001179055565b610e80611370565b158015610ea25750600160038054610100900460ff1690811115610ea057fe5b145b1515610ead57600080fd5b610eb633610a52565b1515610ec157600080fd5b6003805461ff0019166102001790557f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1565b610f0733610a52565b1515610f1257600080fd5b6013805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b60118054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b600954600160a060020a031681565b61102f33610a52565b151561103a57600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60009081526002602052604090205460ff1690565b60108054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b600f5433600160a060020a039081169116146110f757600080fd5b601081805161110a929160200190611d35565b5050565b60005433600160a060020a0390811691161461112957600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b61115933610a52565b151561116457600080fd5b6000908152600260205260409020805460ff19169055565b60155481565b600054600160a060020a031681565b60135433600160a060020a039081169116146111ac57600080fd5b601254601354600160a060020a0361010090920482169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561121757600080fd5b6102c65a03f1151561122857600080fd5b5050506040518051505050565b61123d611db3565b600b600073__NoRemovalBytes32Set___________________637a3d376c600786846040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561129f57600080fd5b6102c65a03f415156112b057600080fd5b50505060405180519050600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113645780601f1061133957610100808354040283529160200191611364565b820191906000526020600020905b81548152906001019060200180831161134757829003601f168201915b50505050509050919050565b60035460ff165b90565b61138333610a52565b151561138e57600080fd5b60035460ff16151561139f57600080fd5b6003805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b600073__AddressSet____________________________63913aa6cd6004836040516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b151561143157600080fd5b6102c65a03f4151561144257600080fd5b505050604051805191505090565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b60135474010000000000000000000000000000000000000000900460ff1681565b6000600260038054610100900460ff16908111156114f657fe5b14905090565b611504611370565b1580156115265750600160038054610100900460ff169081111561152457fe5b145b151561153157600080fd5b600d5433600160a060020a0390811691161461154c57600080fd5b600954600160a060020a031663bf41bf366000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561159457600080fd5b6102c65a03f115156115a557600080fd5b5050506040518051905015156115ba57600080fd5b6000818152600c6020526040902054819060ff16156115d857600080fd5b73__NoRemovalBytes32Set___________________63bd4a0da160078760006040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561163757600080fd5b6102c65a03f4151561164857600080fd5b50505060405180519050151561165d57600080fd5b6000828152600c60209081526040808320805460ff19166001179055878352600b9091529020848051611694929160200190611d35565b507fb76baefd7e249e81a2c6ab2dd1692b4629b993e50c0f341cd9410ca6b0f3392e8560405190815260200160405180910390a15050505050565b6116d7611370565b1580156116f95750600060038054610100900460ff16908111156116f757fe5b145b151561170457600080fd5b61170d33610a52565b151561171857600080fd5b73__AddressSet____________________________63e134066a60048360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561177757600080fd5b6102c65a03f4151561178857600080fd5b50505050565b600073__AddressSet____________________________6318c40249600484846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b151561098257600080fd5b6117ff611370565b1580156118215750600160038054610100900460ff169081111561181f57fe5b145b151561182c57600080fd5b601554612a2f1901421161183f57600080fd5b601654612a3001421061185157600080fd5b60125460ff161561186157600080fd5b6012805460ff191660011790819055600160a060020a03610100909104166365775d156040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156118b257600080fd5b6102c65a03f115156118c357600080fd5b50506012805460ff1916905550565b600f5433600160a060020a039081169116146118ed57600080fd5b6011818051611900929160200190611d35565b507ff9d8c4f7f692590eaf6d41d6160024ffe0ce509fa752efcf47543eb851869cfb60405160405180910390a150565b600073__NoRemovalBytes32Set___________________6366b26fbf6007836040516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b151561143157600080fd5b60135433600160a060020a039081169116146119a557600080fd5b601254601354600160a060020a0361010090920482169163a9059cbb9116826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611a1157600080fd5b6102c65a03f11515611a2257600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a7857600080fd5b6102c65a03f11515611a8957600080fd5b50505060405180515050565b600190565b60005433600160a060020a03908116911614611ab557600080fd5b600160a060020a0381161515611aca57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611b3e33610a52565b1515611b4957600080fd5b60035460ff1615611b5957600080fd5b6003805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a1565b611b9c611370565b158015611bbe5750600060038054610100900460ff1690811115611bbc57fe5b145b1515611bc957600080fd5b611bd233610a52565b1515611bdd57600080fd5b73__AddressSet____________________________63f9802f8560048360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561177757600080fd5b600073__AddressSet____________________________635c2125a7600484846040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561098257600080fd5b611ca4611370565b158015611cc65750600060038054610100900460ff1690811115611cc457fe5b145b1515611cd157600080fd5b611cda33610a52565b1515611ce557600080fd5b611ced611a95565b1515611cf857600080fd5b6003805461ff0019166101001790557fed1cd0670ee0c0017f550451a038818c696d0b6a9d6ce5b369e44275573cf9b060405160405180910390a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611d7657805160ff1916838001178555611da3565b82800160010185558215611da3579182015b82811115611da3578251825591602001919060010190611d88565b50611daf929150611dc5565b5090565b60206040519081016040526000815290565b61137791905b80821115611daf5760008155600101611dcb5600a165627a7a72305820e5ed8fb198e81d229e35bd5d25bfe129a77300063e385b564090160386d664080029", "deployedBytecode": "0x6060604052600436106102215763ffffffff60e060020a6000350416630f15f4c08114610226578063116191b61461023b578063138b1fa01461026a578063160d66ae1461029d5780631785f53c146102b057806322434836146102cf57806324d7806c146102e8578063265050b6146103075780632b38cd961461033e5780633197cbb6146103cb57806335a063b4146103f05780633a5673a4146104035780634126ebe21461041657806341af099d146104b057806343d726d6146104c657806347beabd6146104d95780634885c72a146104f857806349da5a0f1461050b5780634b1d3ede1461051e5780635e898dac1461053157806362f4ed901461054457806363ffab311461055a5780636f6fc0771461056d57806370480275146105be57806372e789b3146105dd57806378e97925146105f35780638da5cb5b14610606578063961edb25146106195780639cc8f2b31461062f578063a4e2d63414610645578063a69df4b514610658578063b47414951461066b578063b86901af1461067e578063bf41bf3614610691578063c2b6b58c146106a4578063d6807a5c146106b7578063d71c677214610751578063db30eafb14610770578063de61a7321461078f578063e0d4f017146107a2578063e7b3387c146107f3578063ee51d4e114610806578063f098fe4714610819578063f2fde38b1461082c578063f83d08ba1461084b578063f8c74afa1461085e578063f9d5ee751461087d575b600080fd5b341561023157600080fd5b610239610893565b005b341561024657600080fd5b61024e61090a565b604051600160a060020a03909116815260200160405180910390f35b341561027557600080fd5b610289600160a060020a0360043516610919565b604051901515815260200160405180910390f35b34156102a857600080fd5b61024e6109a2565b34156102bb57600080fd5b610239600160a060020a03600435166109b6565b34156102da57600080fd5b6102396004356024356109f2565b34156102f357600080fd5b610289600160a060020a0360043516610a52565b341561031257600080fd5b61031a610aa1565b6040518082600381111561032a57fe5b60ff16815260200191505060405180910390f35b341561034957600080fd5b610354600435610aaf565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610390578082015183820152602001610378565b50505050905090810190601f1680156103bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103d657600080fd5b6103de610b5f565b60405190815260200160405180910390f35b34156103fb57600080fd5b610239610b65565b341561040e57600080fd5b610354610bb6565b341561042157600080fd5b610239600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505093359350610c2192505050565b34156104bb57600080fd5b610239600435610e49565b34156104d157600080fd5b610239610e78565b34156104e457600080fd5b610239600160a060020a0360043516610efe565b341561050357600080fd5b610354610f41565b341561051657600080fd5b610354610fac565b341561052957600080fd5b61024e611017565b341561053c57600080fd5b610239611026565b341561054f57600080fd5b61028960043561105c565b341561056557600080fd5b610354611071565b341561057857600080fd5b61023960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506110dc95505050505050565b34156105c957600080fd5b610239600160a060020a036004351661110e565b34156105e857600080fd5b610239600435611150565b34156105fe57600080fd5b6103de61117c565b341561061157600080fd5b61024e611182565b341561062457600080fd5b610239600435611191565b341561063a57600080fd5b610354600435611235565b341561065057600080fd5b610289611370565b341561066357600080fd5b61023961137a565b341561067657600080fd5b6103de6113d7565b341561068957600080fd5b610354611450565b341561069c57600080fd5b6102896114bb565b34156106af57600080fd5b6102896114dc565b34156106c257600080fd5b610239600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050933593506114fc92505050565b341561075c57600080fd5b610239600160a060020a03600435166116cf565b341561077b57600080fd5b6103de600160a060020a036004351661178e565b341561079a57600080fd5b6102396117f7565b34156107ad57600080fd5b61023960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506118d295505050505050565b34156107fe57600080fd5b6103de611930565b341561081157600080fd5b61023961198a565b341561082457600080fd5b610289611a95565b341561083757600080fd5b610239600160a060020a0360043516611a9a565b341561085657600080fd5b610239611b35565b341561086957600080fd5b610239600160a060020a0360043516611b94565b341561088857600080fd5b61024e600435611c3c565b61089b611370565b1580156108bd5750600060038054610100900460ff16908111156108bb57fe5b145b15156108c857600080fd5b6108d133610a52565b15156108dc57600080fd5b6015541580156108ec5750601654155b15610900574260158190556224ea00016016555b610908611c9c565b565b600d54600160a060020a031681565b600073__AddressSet____________________________63758241e0600484846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b151561098257600080fd5b6102c65a03f4151561099357600080fd5b50505060405180519392505050565b6012546101009004600160a060020a031681565b60005433600160a060020a039081169116146109d157600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6109fa611370565b158015610a1c5750600060038054610100900460ff1690811115610a1a57fe5b145b1515610a2757600080fd5b610a3033610a52565b1515610a3b57600080fd5b818111610a4757600080fd5b601591909155601655565b6000600160a060020a03821615801590610a9b5750600054600160a060020a0383811691161480610a9b5750600160a060020a03821660009081526001602052604090205460ff165b92915050565b600354610100900460ff1681565b600b6020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505081565b60165481565b610b6e33610a52565b1515610b7957600080fd5b6003805461ff0019166103001790557f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf60405160405180910390a1565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b610c29611370565b158015610c4b5750600160038054610100900460ff1690811115610c4957fe5b145b1515610c5657600080fd5b600d5433600160a060020a03908116911614610c7157600080fd5b8373__NoRemovalBytes32Set___________________63bd4a0da160078360006040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b1515610cd157600080fd5b6102c65a03f41515610ce257600080fd5b5050506040518051159050610cf657600080fd5b6000828152600c6020526040902054829060ff1615610d1457600080fd5b6000838152600c602052604090819020805460ff1916600117905573__NoRemovalBytes32Set___________________9063bda02f009060079089905160e060020a63ffffffff85160281526004810192909252602482015260440160006040518083038186803b1515610d8757600080fd5b6102c65a03f41515610d9857600080fd5b5050506000868152600b60205260409020858051610dba929160200190611d35565b50600954600160a060020a031663de61a7326040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610dfa57600080fd5b6102c65a03f11515610e0b57600080fd5b5050507fe071651fdb9485bc1f9dbd3312c8a999c04ad7a5fef33ee1036e1fc709c4da4f8660405190815260200160405180910390a1505050505050565b610e5233610a52565b1515610e5d57600080fd5b6000908152600260205260409020805460ff19166001179055565b610e80611370565b158015610ea25750600160038054610100900460ff1690811115610ea057fe5b145b1515610ead57600080fd5b610eb633610a52565b1515610ec157600080fd5b6003805461ff0019166102001790557f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1565b610f0733610a52565b1515610f1257600080fd5b6013805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b60118054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b600954600160a060020a031681565b61102f33610a52565b151561103a57600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60009081526002602052604090205460ff1690565b60108054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b600f5433600160a060020a039081169116146110f757600080fd5b601081805161110a929160200190611d35565b5050565b60005433600160a060020a0390811691161461112957600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b61115933610a52565b151561116457600080fd5b6000908152600260205260409020805460ff19169055565b60155481565b600054600160a060020a031681565b60135433600160a060020a039081169116146111ac57600080fd5b601254601354600160a060020a0361010090920482169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561121757600080fd5b6102c65a03f1151561122857600080fd5b5050506040518051505050565b61123d611db3565b600b600073__NoRemovalBytes32Set___________________637a3d376c600786846040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561129f57600080fd5b6102c65a03f415156112b057600080fd5b50505060405180519050600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113645780601f1061133957610100808354040283529160200191611364565b820191906000526020600020905b81548152906001019060200180831161134757829003601f168201915b50505050509050919050565b60035460ff165b90565b61138333610a52565b151561138e57600080fd5b60035460ff16151561139f57600080fd5b6003805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b600073__AddressSet____________________________63913aa6cd6004836040516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b151561143157600080fd5b6102c65a03f4151561144257600080fd5b505050604051805191505090565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b60135474010000000000000000000000000000000000000000900460ff1681565b6000600260038054610100900460ff16908111156114f657fe5b14905090565b611504611370565b1580156115265750600160038054610100900460ff169081111561152457fe5b145b151561153157600080fd5b600d5433600160a060020a0390811691161461154c57600080fd5b600954600160a060020a031663bf41bf366000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561159457600080fd5b6102c65a03f115156115a557600080fd5b5050506040518051905015156115ba57600080fd5b6000818152600c6020526040902054819060ff16156115d857600080fd5b73__NoRemovalBytes32Set___________________63bd4a0da160078760006040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561163757600080fd5b6102c65a03f4151561164857600080fd5b50505060405180519050151561165d57600080fd5b6000828152600c60209081526040808320805460ff19166001179055878352600b9091529020848051611694929160200190611d35565b507fb76baefd7e249e81a2c6ab2dd1692b4629b993e50c0f341cd9410ca6b0f3392e8560405190815260200160405180910390a15050505050565b6116d7611370565b1580156116f95750600060038054610100900460ff16908111156116f757fe5b145b151561170457600080fd5b61170d33610a52565b151561171857600080fd5b73__AddressSet____________________________63e134066a60048360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561177757600080fd5b6102c65a03f4151561178857600080fd5b50505050565b600073__AddressSet____________________________6318c40249600484846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b151561098257600080fd5b6117ff611370565b1580156118215750600160038054610100900460ff169081111561181f57fe5b145b151561182c57600080fd5b601554612a2f1901421161183f57600080fd5b601654612a3001421061185157600080fd5b60125460ff161561186157600080fd5b6012805460ff191660011790819055600160a060020a03610100909104166365775d156040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156118b257600080fd5b6102c65a03f115156118c357600080fd5b50506012805460ff1916905550565b600f5433600160a060020a039081169116146118ed57600080fd5b6011818051611900929160200190611d35565b507ff9d8c4f7f692590eaf6d41d6160024ffe0ce509fa752efcf47543eb851869cfb60405160405180910390a150565b600073__NoRemovalBytes32Set___________________6366b26fbf6007836040516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b151561143157600080fd5b60135433600160a060020a039081169116146119a557600080fd5b601254601354600160a060020a0361010090920482169163a9059cbb9116826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611a1157600080fd5b6102c65a03f11515611a2257600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a7857600080fd5b6102c65a03f11515611a8957600080fd5b50505060405180515050565b600190565b60005433600160a060020a03908116911614611ab557600080fd5b600160a060020a0381161515611aca57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611b3e33610a52565b1515611b4957600080fd5b60035460ff1615611b5957600080fd5b6003805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a1565b611b9c611370565b158015611bbe5750600060038054610100900460ff1690811115611bbc57fe5b145b1515611bc957600080fd5b611bd233610a52565b1515611bdd57600080fd5b73__AddressSet____________________________63f9802f8560048360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561177757600080fd5b600073__AddressSet____________________________635c2125a7600484846040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561098257600080fd5b611ca4611370565b158015611cc65750600060038054610100900460ff1690811115611cc457fe5b145b1515611cd157600080fd5b611cda33610a52565b1515611ce557600080fd5b611ced611a95565b1515611cf857600080fd5b6003805461ff0019166101001790557fed1cd0670ee0c0017f550451a038818c696d0b6a9d6ce5b369e44275573cf9b060405160405180910390a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611d7657805160ff1916838001178555611da3565b82800160010185558215611da3579182015b82811115611da3578251825591602001919060010190611d88565b50611daf929150611dc5565b5090565b60206040519081016040526000815290565b61137791905b80821115611daf5760008155600101611dcb5600a165627a7a72305820e5ed8fb198e81d229e35bd5d25bfe129a77300063e385b564090160386d664080029", "sourceMap": "1112:1448:6:-;;;1183:22:18;;;-1:-1:-1;;1326:59:17;;;319:35:21;;;-1:-1:-1;;319:35:21;;;1891:666:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:12;2184:16;2202;2220:12;2234:15;1678:8:4;2262:10:6;2274:8;2293:12;2307:4;2313:14;502:10:23;494:5;;:18;;;;;-1:-1:-1;;;;;494:18:23;;;;;-1:-1:-1;;;;;494:18:23;;;;;;1806:1:5;-1:-1:-1;;;;;1792:16:5;:2;-1:-1:-1;;;;;1792:16:5;;;:36;;;;-1:-1:-1;;;;;;1812:16:5;;;;1792:36;1784:45;;;;;;;;1839:27;1853:12;1839:13;;;;;;:27;:::i;:::-;1876:8;:13;;-1:-1