@josojo/realitytoken-contracts
Version:
realitytoken basic contracts
1,045 lines • 915 kB
JSON
{
"contractName": "ForkonomicETTF",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "address"
}
],
"name": "fundHoldingChange",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "fromAddr",
"type": "address"
},
{
"name": "toAddr",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
},
{
"name": "toBox",
"type": "bytes32"
}
],
"name": "boxTransferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "addrTo",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
}
],
"name": "boxTransferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "box",
"type": "bytes32"
},
{
"name": "branchHash",
"type": "bytes32"
},
{
"name": "earliestPossibleBranch",
"type": "bytes32"
}
],
"name": "recordedBoxWithdrawalAmount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minTimeout",
"outputs": [
{
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "realityCheck",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "acct",
"type": "bytes32"
},
{
"name": "minBalance",
"type": "uint256"
},
{
"name": "branchHash",
"type": "bytes32"
}
],
"name": "_isAmountSpendable",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
},
{
"name": "toBox",
"type": "bytes32"
}
],
"name": "boxTransfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "fETTFbalanceChange",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "templateId",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "box",
"type": "bytes32"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "recordBoxWithdrawal",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_branch",
"type": "bytes32"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minBond",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "minBalance",
"type": "uint256"
},
{
"name": "branchHash",
"type": "bytes32"
}
],
"name": "isAmountSpendable",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
}
],
"name": "allowed",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "senderBox",
"type": "bytes32"
},
{
"name": "receiverBox",
"type": "bytes32"
}
],
"name": "allowanceBox",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "openingTs",
"outputs": [
{
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "box",
"type": "bytes32"
},
{
"name": "branchHash",
"type": "bytes32"
},
{
"name": "earliestPossibleBranch",
"type": "bytes32"
}
],
"name": "hasBoxWithdrawal",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "minBalance",
"type": "uint256"
},
{
"name": "branchHash",
"type": "bytes32"
},
{
"name": "box",
"type": "bytes32"
}
],
"name": "isAmountSpendableBox",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
},
{
"name": "spenderBox",
"type": "bytes32"
}
],
"name": "approveBox",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fSystem",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "lastDebitWindows",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "acct",
"type": "bytes32"
}
],
"name": "balanceOfBox",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minQuestionFunding",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "realityCheck_",
"type": "address"
},
{
"name": "fSystem_",
"type": "address"
},
{
"name": "funding",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "branch",
"type": "bytes32"
},
{
"indexed": false,
"name": "forkonomicToken",
"type": "address"
},
{
"indexed": false,
"name": "balanceChange_",
"type": "int256"
},
{
"indexed": false,
"name": "compensation",
"type": "int256"
},
{
"indexed": false,
"name": "sender",
"type": "address"
}
],
"name": "NewDealProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_owner",
"type": "address"
},
{
"indexed": false,
"name": "ownerBox",
"type": "bytes32"
},
{
"indexed": true,
"name": "_spender",
"type": "address"
},
{
"indexed": false,
"name": "spenderBox",
"type": "bytes32"
},
{
"indexed": false,
"name": "_value",
"type": "uint256"
},
{
"indexed": false,
"name": "branch",
"type": "bytes32"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": false,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "fromBox",
"type": "bytes32"
},
{
"indexed": false,
"name": "toBox",
"type": "bytes32"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
},
{
"indexed": false,
"name": "branch",
"type": "bytes32"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
},
{
"name": "forkonomicToken",
"type": "address"
},
{
"name": "balanceChange",
"type": "int256"
},
{
"name": "compensation",
"type": "int256"
},
{
"name": "arbitrator",
"type": "address"
},
{
"name": "fromBox",
"type": "bytes32"
}
],
"name": "proposeInvestment",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "questionId",
"type": "bytes32"
},
{
"name": "executionbranch",
"type": "bytes32"
},
{
"name": "originalbranch",
"type": "bytes32"
},
{
"name": "forkonomicToken",
"type": "address"
},
{
"name": "balanceChange_",
"type": "int256"
},
{
"name": "compensation",
"type": "int256"
},
{
"name": "arbitrator",
"type": "address"
},
{
"name": "fromBox",
"type": "bytes32"
}
],
"name": "executeInvestmentRequest",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "forkonomicTokens",
"type": "address[]"
}
],
"name": "redeemRealityFundTokens",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "data",
"type": "bytes32"
}
],
"name": "bytes32ToString",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
},
{
"name": "forkonomicToken",
"type": "address"
},
{
"name": "balanceChange",
"type": "int256"
},
{
"name": "compensation",
"type": "int256"
}
],
"name": "calcDealBytes",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080604052600060095564012a05f200600a55600b805463ffffffff19166103e81790556611c37937e08000600c553480156200003b57600080fd5b50604051620035b7380380620035b783398101604081815282516020808501518386015160058054600160a060020a031916600160a060020a0380851691909117918290557f176b6f0100000000000000000000000000000000000000000000000000000000885295519497929691909201948694869460009485948594859492169263176b6f019260048084019382900301818787803b158015620000e057600080fd5b505af1158015620000f5573d6000803e3d6000fd5b505050506040513d60208110156200010c57600080fd5b505185519094509250600c83106200018557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f20746f6f206d616e792066756e64696e67206163636f756e7473000000000000604482015290519081900360640190fd5b600091505b8282101562000295578482815181101515620001a257fe5b9060200190602002015160006040516020018083600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106200022e5780518252601f1990920191602091820191016200020d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a8152808352848120828252909252929020805465befe6f672000908101909155600480549091019055506001949094019392506200018a915050565b505060068054600160a060020a03909816600160a060020a0319909816979097179096555050505050506132e880620002cf6000396000f3006080604052600436106101b35763ffffffff60e060020a60003504166306d1643b81146101b857806306fdde03146101ee57806317d287e01461027857806318160ddd146102bf5780631b6672d2146102d45780631c8d5d38146103045780631db3db1c1461032e5780631f07c4971461038e578063313ce567146103b857806338487803146103e3578063401e33671461040d57806343ae90fe1461043a5780634cf71be4146104625780634d30b6be1461049057806350990880146104b457806357cfeeee146104e55780635d59d45c1461050c57806366422c47146105475780636dd265a514610565578063745e94f6146105925780637aa77f29146105aa5780638097c95e146105bf5780638180f2fc146105e9578063831518b714610610578063911651ac146106255780639201de551461064c57806395d89b41146106645780639908618314610679578063c347197914610697578063c7049657146106c7578063cf54a3d3146106dc578063d0c9148714610706578063d1fe531314610730578063d440796e1461075d578063e10db51114610772578063f2482e2b1461078a578063f2c2b14e146107b1575b600080fd5b3480156101c457600080fd5b506101dc600435600160a060020a03602435166107c6565b60408051918252519081900360200190f35b3480156101fa57600080fd5b506102036107e3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023d578181015183820152602001610225565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028457600080fd5b506102ab600160a060020a036004358116906024351660443560643560843560a43561081a565b604080519115158252519081900360200190f35b3480156102cb57600080fd5b506101dc610dab565b3480156102e057600080fd5b506102ab600160a060020a0360043581169060243516604435606435608435610db1565b34801561031057600080fd5b506101dc600160a060020a0360043581169060243516604435610dcc565b34801561033a57600080fd5b50604080516020600460443581810135838102808601850190965280855261038c958335956024803596369695606495939492019291829185019084908082843750949750610de49650505050505050565b005b34801561039a57600080fd5b506101dc600435600160a060020a0360243516604435606435611193565b3480156103c457600080fd5b506103cd61124a565b6040805160ff9092168252519081900360200190f35b3480156103ef57600080fd5b506101dc600160a060020a036004351660243560443560643561124f565b34801561041957600080fd5b506102ab600160a060020a0360043581169060243516604435606435611428565b6101dc600435600160a060020a0360243581169060443590606435906084351660a435611442565b34801561046e57600080fd5b506104776118cd565b6040805163ffffffff9092168252519081900360200190f35b34801561049c57600080fd5b506101dc600160a060020a03600435166024356118d9565b3480156104c057600080fd5b506104c96118ee565b60408051600160a060020a039092168252519081900360200190f35b3480156104f157600080fd5b506102ab600160a060020a03600435166024356044356118fd565b34801561051857600080fd5b5061038c600435602435604435600160a060020a036064358116906084359060a4359060c4351660e43561190d565b34801561055357600080fd5b506102ab6004356024356044356122a0565b34801561057157600080fd5b506102ab600160a060020a03600435166024356044356064356084356123cb565b34801561059e57600080fd5b506101dc60043561288a565b3480156105b657600080fd5b506101dc61289c565b3480156105cb57600080fd5b506102ab600160a060020a03600435166024356044356064356128a2565b3480156105f557600080fd5b506102ab600160a060020a0360043516602435604435612a55565b34801561061c57600080fd5b506101dc612a65565b34801561063157600080fd5b506102ab600160a060020a0360043516602435604435612a6b565b34801561065857600080fd5b50610203600435612b0c565b34801561067057600080fd5b50610203612bca565b34801561068557600080fd5b506101dc600435602435604435612c01565b3480156106a357600080fd5b506101dc600160a060020a0360043581169060243516604435606435608435612c24565b3480156106d357600080fd5b50610477612d8a565b3480156106e857600080fd5b506102ab600160a060020a0360043516602435604435606435612d9e565b34801561071257600080fd5b506102ab600160a060020a0360043516602435604435606435612f0f565b34801561073c57600080fd5b506102ab600160a060020a0360043516602435604435606435608435612faf565b34801561076957600080fd5b506104c9613146565b34801561077e57600080fd5b506101dc600435613155565b34801561079657600080fd5b506101dc600160a060020a0360043516602435604435613167565b3480156107bd57600080fd5b506101dc6132a4565b600760209081526000928352604080842090915290825290205481565b60408051808201909152600f81527f466f726b6f6e6f6d696373455454460000000000000000000000000000000000602082015281565b60008060008060008a876040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106108995780518252601f19909201916020918201910161087a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935089866040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061093f5780518252601f199092019160209182019101610920565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018e90528551808503909101815260549093019485905282519099509195509293508392850191508083835b602083106109c05780518252601f1990920191602091820191016109a1565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a81526003835284812082825283528481208f825290925292902054919550508b11159150610a1a905057600080fd5b600554604080517f6ceccf73000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691636ceccf73916024808201926020929091908290030181600087803b158015610a8157600080fd5b505af1158015610a95573d6000803e3d6000fd5b505050506040513d6020811015610aab57600080fd5b50519050660775f05a074000891115610b0e576040805160e560020a62461bcd02815260206004820152601f60248201527f20616d6f756e7420686967686572207468616e20746f74616c537570706c7900604482015290519081900360640190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b158015610b7557600080fd5b505af1158015610b89573d6000803e3d6000fd5b505050506040513d6020811015610b9f57600080fd5b50511515610bf7576040805160e560020a62461bcd02815260206004820152601160248201527f6272616e6368206d757374206578697374000000000000000000000000000000604482015290519081900360640190fd5b600084815260026020526040902054811015610c5d576040805160e560020a62461bcd02815260206004820152601860248201527f6465626974732063616e7420676f206261636b77617264730000000000000000604482015290519081900360640190fd5b610c68848a8a6122a0565b1515610cbe576040805160e560020a62461bcd02815260206004820152601860248201527f616d6f756e74206d757374206265207370656e6461626c650000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083208490558a8352828252808320878452825280832080548d9003905585835280832080548d0190558683526003825280832085845282528083208b8452909152902054610d1b908a6132aa565b600085815260036020908152604080832086845282528083208c84528252808320939093558251600160a060020a038e8116825291810183905280840192909252606082018c9052608082018b90529151918d16917f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9181900360a00190a25060019a9950505050505050505050565b60045481565b6000610dc28686868686600061081a565b9695505050505050565b6000610ddc848484600080612c24565b949350505050565b600080600080610df63330888a611428565b1515610e72576040805160e560020a62461bcd02815260206004820152603060248201527f7472616e7366657220646964206e6f74207061737320696e2072656465656d5260448201527f65616c69747946756e64546f6b656e7300000000000000000000000000000000606482015290519081900360840190fd5b600093508692505b600560009054906101000a9004600160a060020a0316600160a060020a031663176b6f016040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ecd57600080fd5b505af1158015610ee1573d6000803e3d6000fd5b505050506040513d6020811015610ef757600080fd5b50518314610f9657600083815260086020908152604080832054600554825160e060020a63f36b43cb0281526004810189905292519890910197600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b50519250610e7a565b600091505b845182101561118a578482815181101515610fb257fe5b6020908102909101810151604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152306004820152602481018b90529051600160a060020a0390921692634d30b6be926044808401938290030181600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b505050506040513d602081101561104b57600080fd5b5051855190915085908390811061105e57fe5b90602001906020020151600160a060020a03166357cfeeee3386848a0281151561108457fe5b6040805160e060020a63ffffffff8716028152600160a060020a0390941660048501529190046024830152604482018b90525160648083019260209291908290030181600087803b1580156110d857600080fd5b505af11580156110ec573d6000803e3d6000fd5b505050506040513d602081101561110257600080fd5b5051151561117f576040805160e560020a62461bcd028152602060048201526024808201527f7472616e73666572206f662066756e647320776173206e6f742073756363657360448201527f7366756c00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600190910190610f9b565b50505050505050565b604080516020808201879052606060020a600160a060020a0387168102838501526054830186905260748301859052330260948301528251608881840301815260a8909201928390528151600093849392909182918401908083835b6020831061120e5780518252601f1990920191602091820191016111ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090508091505b50949350505050565b601281565b60408051606060020a338102602080840191909152600160a060020a0388169091026034830152604880830187905283518084039091018152606890920192839052815160009384938493909282918401908083835b602083106112c45780518252601f1990920191602091820191016112a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b84158015906113075750848414155b156113ab576000858152600160209081526040808320858452825280832054600554825160e060020a63f36b43cb028152600481018b905292519590910194600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b15801561137857600080fd5b505af115801561138c573d6000803e3d6000fd5b505050506040513d60208110156113a257600080fd5b505194506112f8565b841515610dc2576040805160e560020a62461bcd02815260206004820152602f60248201527f206272616e636820686173682073686f756c64206e6f7420666f6c6c6f77207460448201527f6f20746865204e554c4c5f484153480000000000000000000000000000000000606482015290519081900360840190fd5b60006114398585858560008061081a565b95945050505050565b600b805467ffffffff0000000019166401000000004262278d000163ffffffff1602179055604080516020808201899052600160a060020a038816606060020a908102838501526054830188905260748301879052330260948301528251808303608801815260a89092019283905281516000938493606093859391929182918401908083835b602083106114e85780518252601f1990920191602091820191016114c9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061152083612b0c565b60405160200180807f46726f6d20616c6c206f666665727320666f72207468652066455454462c207481526020017f686520666f6c6c6f77696e67206465616c207761732074686520626573743a00815250603f0182805190602001908083835b602083106115a05780518252601f199092019160209182019101611581565b6001836020036101000a038019825116818451168082178552505050505050905001807f3f000000000000000000000000000000000000000000000000000000000000008152506001019150506040516020818303038152906040529150600660009054906101000a9004600160a060020a0316600160a060020a031663762c38fd65048c27395000600954858a600b60009054906101000a900463ffffffff16600b60049054906101000a900463ffffffff1660006040518863ffffffff1660e060020a028152600401808781526020018060200186600160a060020a0316600160a060020a031681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff168152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156116ed5781810151838201526020016116d5565b50505050905090810190601f16801561171a5780820380516001836020036101000a031916815260200191505b509750505050505050506020604051808303818588803b15801561173d57600080fd5b505af1158015611751573d6000803e3d6000fd5b50505050506040513d602081101561176857600080fd5b505190506000881315611841576000871261178257600080fd5b604080517f17d287e0000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018a9052606481018c90526084810187905260a481018590529051600160a060020a038b16916317d287e09160c48083019260209291908290030181600087803b15801561180557600080fd5b505af1158015611819573d6000803e3d6000fd5b505050506040513d602081101561182f57600080fd5b5051151561183c57600080fd5b61185c565b6000871361184e57600080fd5b61185a3330898d611428565b505b600c5434101561186b57600080fd5b604080518b8152600160a060020a038b1660208201528082018a90526060810189905233608082015290517fb5314ced9a7db33e50e16bfc3b75ec0c80852fc201d0423cd178d16f0cb5033d9181900360a00190a19998505050505050505050565b600b5463ffffffff1681565b60006118e783836000613167565b9392505050565b600654600160a060020a031681565b6000610ddc8484846000806123cb565b600554604080517f406edd3600000000000000000000000000000000000000000000000000000000815260048101899052602481018a9052905160009260609284928392600160a060020a03169163406edd3691604480830192602092919082900301818787803b15801561198157600080fd5b505af1158015611995573d6000803e3d6000fd5b505050506040513d60208110156119ab57600080fd5b50511515611a29576040805160e560020a62461bcd02815260206004820152602960248201527f206272616e6368206973206e6f742061206368696c64206f66206f726967696e60448201527f616c206272616e63680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152602482018f90529151919092169163494691469160448083019260209291908290030181600087803b158015611a9857600080fd5b505af1158015611aac573d6000803e3d6000fd5b505050506040513d6020811015611ac257600080fd5b50511515611b1a576040805160e560020a62461bcd02815260206004820152601e60248201527f61726269747261746f72206973206e6f742077686974652d6c69737465640000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a0316632667404b600660009054906101000a9004600160a060020a0316600160a060020a031663acae8f4e8f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b158015611ba457600080fd5b505af1158015611bb8573d6000803e3d6000fd5b505050506040513d6020811015611bce57600080fd5b50516040805163ffffffff84811660e060020a0282529092166004830152602482018f90525160448083019260209291908290030181600087803b158015611c1557600080fd5b505af1158015611c29573d6000803e3d6000fd5b505050506040513d6020811015611c3f57600080fd5b50511515611c97576040805160e560020a62461bcd02815260206004820152601d60248201527f77696e646f77202b2074696d6520206973206e6f7420636f7272656374000000604482015290519081900360640190fd5b6040805160208082018d9052606060020a600160a060020a038d16810283850152605483018c9052607483018b9052330260948301528251608881840301815260a890920192839052815191929182918401908083835b60208310611d0d5780518252601f199092019160209182019101611cee565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350611d4584612b0c565b60405160200180807f46726f6d20616c6c206f666665727320666f72207468652066455454462c207481526020017f686520666f6c6c6f77696e67206465616c207761732074686520626573743a00815250603f0182805190602001908083835b60208310611dc55780518252601f199092019160209182019101611da6565b51815160209384036101000a60001901801990921691161790527f3f000000000000000000000000000000000000000000000000000000000000009190930190815260408051808303601e1901815260018301909152600954600b546021840182815264010000000090910463ffffffff1660e060020a810260418601528351939b5091975090955089949093506045909201918401908083835b60208310611e7f5780518252601f199092019160209182019101611e60565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310611ee45780518252601f199092019160209182019101611ec5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600660009054906101000a9004600160a060020a0316600160a060020a03166312a203c38d8489600b60009054906101000a900463ffffffff16600a546040518663ffffffff1660e060020a028152600401808660001916600019168152602001856000191660001916815260200184600160a060020a0316600160a060020a031681526020018363ffffffff1663ffffffff16815260200182815260200195505050505050602060405180830381600087803b158015611fd357600080fd5b505af1158015611fe7573d6000803e3d6000fd5b505050506040513d6020811015611ffd57600080fd5b505190508015156120e55760008813156120ca57604080517f6dd265a5000000000000000000000000000000000000000000000000000000008152336004820152602481018a9052604481018d905260648101869052608481018790529051600160a060020a038b1691636dd265a59160a48083019260209291908290030181600087803b15801561208e57600080fd5b505af11580156120a2573d6000803e3d6000fd5b505050506040513d60208110156120b857600080fd5b505115156120c557600080fd5b6120e0565b6120d533888d6118fd565b15156120e057600080fd5b612292565b60008813156121d7576120fb3360008d8d612d9e565b1561210557600080fd5b60008b8152602081815260408083208151606060020a33028185015260348082018690528351808303909101815260549091019283905280518c959294929391928291908401908083835b6020831061216f5780518252601f199092019160209182019101612150565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000908120805490960190955550508d83526008905281208054890190556121d1903390898e6128a2565b50612292565b604080517f57cfeeee000000000000000000000000000000000000000000000000000000008152336004820152602481018a9052604481018d90529051600160a060020a038b16916357cfeeee9160648083019260209291908290030181600087803b15801561224657600080fd5b505af115801561225a573d6000803e3d6000fd5b505050506040513d602081101561227057600080fd5b5051151561227d57600080fd5b60008b81526008602052604090208054880190555b505050505050505050505050565b60008080660775f05a074000851115612303576040805160e560020a62461bcd02815260206004820152601e60248201527f616d6f756e7420626967676572207468616e20746f74616c537570706c790000604482015290519081900360640190fd5b5060009050835b83156123bd57600084815260208181526040808320898452825280832054600554825160e060020a63f36b43cb028152600481018a905292519690910195600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b15801561237a57600080fd5b505af115801561238e573d6000803e3d6000fd5b505050506040513d60208110156123a457600080fd5b505193508082126123b857600192506123c2565b61230a565b600092505b50509392505050565b600554604080517f6ceccf7300000000000000000000000000000000000000000000000000000000815260048101869052905160009283928392600160a060020a0390921691636ceccf739160248082019260209290919082900301818787803b15801561243857600080fd5b505af115801561244c573d6000803e3d6000fd5b505050506040513d602081101561246257600080fd5b50519150660775f05a0740008711156124eb576040805160e560020a62461bcd02815260206004820152602760248201527f2073656e64696e6720616d6f756e7420626967676572207468616e20746f746160448201527f6c537570706c7900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b15801561255257600080fd5b505af1158015612566573d6000803e3d6000fd5b505050506040513d602081101561257c57600080fd5b505115156125d4576040805160e560020a62461bcd02815260206004820152601260248201527f206272616e6368206d7573742065786973740000000000000000000000000000604482015290519081900360640190fd5b60408051606060020a3302602080830191909152603480830189905283518084039091018152605490920192839052815191929182918401908083835b602083106126305780518252601f199092019160209182019101612611565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008181526002909252929020549194505084101591506126eb9050576040805160e560020a62461bcd02815260206004820152602a60248201527f206272616e636857696e646f77203e3d206c617374446562697457696e646f7760448201527f735b6163636f756e745d00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6126f68188886122a0565b151561274c576040805160e560020a62461bcd02815260206004820152601960248201527f20616d6f756e7420776173206e6f74207370656e6461626c6500000000000000604482015290519081900360640190fd5b600081815260026020908152604080832085905588835282825280832084845280835281842080548c900390558984528383528151606060020a600160a060020a038e16028185015260348082018a90528351808303909101815260549091019283905280518c959294929391928291908401908083835b602083106127e35780518252601f1990920191602091820191016127c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020805495909501909455508051338152918201889052818101879052606082018a90526080820189905251600160a060020a038b1692507f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9160a0908290030190a2506001979650505050505050565b60086020526000908152604090205481565b60095481565b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a031691634dd8aa0591602480830192602092919082900301818787803b15801561290857600080fd5b505af115801561291c573d6000803e3d6000fd5b505050506040513d602081101561293257600080fd5b5051151561298a576040805160e560020a62461bcd02815260206004820152601160248201527f6272616e6368206d757374206578697374000000000000000000000000000000604482015290519081900360640190fd5b60008281526001602090815260408083208151606060020a33810282860152600160a060020a038b1602603482015260488082018a905283518083039091018152606890910192839052805188959294929391928291908401908083835b60208310612a075780518252601f1990920191602091820191016129e8565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805494909401909355506001979650505050505050565b6000610ddc848484600080612faf565b600a5481565b60408051606060020a600160a060020a03861602602080830191909152600060348084018290528451808503909101815260549093019384905282519093610ddc9392909182918401908083835b60208310612ad85780518252601f199092019160209182019101612ab9565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902084846122a0565b604080516020808252818301909252606091829160009182919080820161040080388339019050509250600091505b6020821015612bc157506008810260020a84027fff00000000000000000000000000000000000000000000000000000000000000811615612bb657808383815181101515612b8557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b600190910190612b3b565b50909392505050565b60408051808201909152600581527f4645545446000000000000000000000000000000000000000000000000000000602082015281565b600360209081526000938452604080852082529284528284209052825290205481565b60408051606060020a600160a060020a03871602602080830191909152603480830186905283518084039091018152605490920192839052815160009384938493909282918401908083835b60208310612c8f5780518252601f199092019160209182019101612c70565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915087846040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310612d355780518252601f199092019160209182019101612d16565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206000908152600382528381209781529681528287209a875299909952909320549998505050505050505050565b600b54640100000000900463ffffffff1681565b60408051606060020a338102602080840191909152600160a060020a03881690910260348301526048808301879052835180840390910181526068909201928390528151600093849392909182918401908083835b60208310612e125780518252601f199092019160209182019101612df3565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b8315801590612e515750838314155b15612f035760008481526001602090815260408083208484529091528120541315612e7f5760019150611241565b6005546040805160e060020a63f36b43cb028152600481018790529051600160a060020a039092169163f36b43cb916024808201926020929091908290030181600087803b158015612ed057600080fd5b505af1158015612ee4573d6000803e3d6000fd5b505050506040513d6020811015612efa57600080fd5b50519350612e42565b50600095945050505050565b60408051606060020a600160a060020a0387160260208083019190915260348083018590528351808403909101815260549092019283905281516000936114399392909182918401908083835b60208310612f7b5780518252601f199092019160209182019101612f5c565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902085856122a0565b60408051606060020a600160a060020a03881602602080830191909152603480830185905283518084039091018152605490920192839052815160009384938493909282918401908083835b6020831061301a5780518252601f199092019160209182019101612ffb565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018d90528551808503909101815260549093019485905282519098509195509293508392850191508083835b6020831061309b5780518252601f19909201916020918201910161307c565b51815160001960209485036101000a01908116901991909116179052604080519490920184900384206000818152600383528381208a825283528381208e825283528390208e90558b85529084018a90528382018d9052606084018c90529051909550600160a060020a038d1694503393507f3676da71ebbe2008b6d2bf52b4ab0678cb2166150551071ce4f784087bec6186928190036080019150a3506001979650505050505050565b600554600160a060020a031681565b60026020526000908152604090205481565b6000805b8315610ddc576000848152602081815260408083208151606060020a600160a060020a038b160281850152603480820189905283518083039091018152605490910192839052805191949390929182918401908083835b602083106131e15780518252601f1990920191602091820191016131c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812054600554855160e060020a63f36b43cb028152600481018c905295519790910196600160a060020a039091169563f36b43cb95602480820196509194509192918390030190829087803b15801561327157600080fd5b505af1158015613285573d6000803e3d6000fd5b505050506040513d602081101561329b57600080fd5b5051935061316b565b600c5481565b6000828211156132b657fe5b509003905600a165627a7a723058200c0aad1d92aad1a92aa8bf1a5ff9581339f714387851c74229d3d3194e88249c0029",
"deployedBytecode": "0x6080604052600436106101b35763ffffffff60e060020a60003504166306d1643b81146101b857806306fdde03146101ee57806317d287e01461027857806318160ddd146102bf5780631b6672d2146102d45780631c8d5d38146103045780631db3db1c1461032e5780631f07c4971461038e578063313ce567146103b857806338487803146103e3578063401e33671461040d57806343ae90fe1461043a5780634cf71be4146104625780634d30b6be1461049057806350990880146104b457806357cfeeee146104e55780635d59d45c1461050c57806366422c47146105475780636dd265a514610565578063745e94f6146105925780637aa77f29146105aa5780638097c95e146105bf5780638180f2fc146105e9578063831518b714610610578063911651ac146106255780639201de551461064c57806395d89b41146106645780639908618314610679578063c347197914610697578063c7049657146106c7578063cf54a3d3146106dc578063d0c9148714610706578063d1fe531314610730578063d440796e1461075d578063e10db51114610772578063f2482e2b1461078a578063f2c2b14e146107b1575b600080fd5b3480156101c457600080fd5b506101dc600435600160a060020a03602435166107c6565b60408051918252519081900360200190f35b3480156101fa57600080fd5b506102036107e3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023d578181015183820152602001610225565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028457600080fd5b506102ab600160a060020a036004358116906024351660443560643560843560a43561081a565b604080519115158252519081900360200190f35b3480156102cb57600080fd5b506101dc610dab565b3480156102e057600080fd5b506102ab600160a060020a0360043581169060243516604435606435608435610db1565b34801561031057600080fd5b506101dc600160a060020a0360043581169060243516604435610dcc565b34801561033a57600080fd5b50604080516020600460443581810135838102808601850190965280855261038c958335956024803596369695606495939492019291829185019084908082843750949750610de49650505050505050565b005b34801561039a57600080fd5b506101dc600435600160a060020a0360243516604435606435611193565b3480156103c457600080fd5b506103cd61124a565b6040805160ff9092168252519081900360200190f35b3480156103ef57600080fd5b506101dc600160a060020a036004351660243560443560643561124f565b34801561041957600080fd5b506102ab600160a060020a0360043581169060243516604435606435611428565b6101dc600435600160a060020a0360243581169060443590606435906084351660a435611442565b34801561046e57600080fd5b506104776118cd565b6040805163ffffffff9092168252519081900360200190f35b34801561049c57600080fd5b506101dc600160a060020a03600435166024356118d9565b3480156104c057600080fd5b506104c96118ee565b6