UNPKG

@etherspot/contracts

Version:

Etherspot Solidity contracts

420 lines (419 loc) 47 kB
{ "_format": "hh-sol-artifact-1", "contractName": "LPToken", "sourceName": "@connext/nxtp-contracts/contracts/core/connext/helpers/LPToken.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "name": "initialize", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5061256c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102e1578063a457c2d7146102ff578063a9059cbb1461032f578063dd62ed3e1461035f578063f2fde38b1461038f57610116565b806370a082311461026d578063715018a61461029d57806379cc6790146102a75780638da5cb5b146102c357610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d557806340c10f191461020557806342966c68146102215780634cd88b761461023d57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103ab565b604051610130919061171e565b60405180910390f35b610153600480360381019061014e91906117e8565b61043d565b6040516101609190611843565b60405180910390f35b610171610460565b60405161017e919061186d565b60405180910390f35b6101a1600480360381019061019c9190611888565b61046a565b6040516101ae9190611843565b60405180910390f35b6101bf610499565b6040516101cc91906118f7565b60405180910390f35b6101ef60048036038101906101ea91906117e8565b6104a2565b6040516101fc9190611843565b60405180910390f35b61021f600480360381019061021a91906117e8565b6104d9565b005b61023b60048036038101906102369190611912565b6105a7565b005b61025760048036038101906102529190611a74565b6105bb565b6040516102649190611843565b60405180910390f35b61028760048036038101906102829190611aec565b61066a565b604051610294919061186d565b60405180910390f35b6102a56106b3565b005b6102c160048036038101906102bc91906117e8565b61073b565b005b6102cb61075b565b6040516102d89190611b28565b60405180910390f35b6102e9610785565b6040516102f6919061171e565b60405180910390f35b610319600480360381019061031491906117e8565b610817565b6040516103269190611843565b60405180910390f35b610349600480360381019061034491906117e8565b61088e565b6040516103569190611843565b60405180910390f35b61037960048036038101906103749190611b43565b6108b1565b604051610386919061186d565b60405180910390f35b6103a960048036038101906103a49190611aec565b610938565b005b6060603680546103ba90611bb2565b80601f01602080910402602001604051908101604052809291908181526020018280546103e690611bb2565b80156104335780601f1061040857610100808354040283529160200191610433565b820191906000526020600020905b81548152906001019060200180831161041657829003601f168201915b5050505050905090565b600080610448610a30565b9050610455818585610a38565b600191505092915050565b6000603554905090565b600080610475610a30565b9050610482858285610c03565b61048d858585610c8f565b60019150509392505050565b60006012905090565b6000806104ad610a30565b90506104ce8185856104bf85896108b1565b6104c99190611c13565b610a38565b600191505092915050565b6104e1610a30565b73ffffffffffffffffffffffffffffffffffffffff166104ff61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c90611cb5565b60405180910390fd5b6000811415610599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059090611d21565b60405180910390fd5b6105a38282610f13565b5050565b6105b86105b2610a30565b82611074565b50565b6000806105c8600161124d565b905080156105ec576001600060016101000a81548160ff0219169083151502179055505b6105f461133d565b6105fe848461138e565b61060661140f565b6001915080156106635760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161065a9190611d86565b60405180910390a15b5092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106bb610a30565b73ffffffffffffffffffffffffffffffffffffffff166106d961075b565b73ffffffffffffffffffffffffffffffffffffffff161461072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072690611cb5565b60405180910390fd5b6107396000611470565b565b61074d82610747610a30565b83610c03565b6107578282611074565b5050565b6000609760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606037805461079490611bb2565b80601f01602080910402602001604051908101604052809291908181526020018280546107c090611bb2565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b600080610822610a30565b9050600061083082866108b1565b905083811015610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90611e13565b60405180910390fd5b6108828286868403610a38565b60019250505092915050565b600080610899610a30565b90506108a6818585610c8f565b600191505092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610940610a30565b73ffffffffffffffffffffffffffffffffffffffff1661095e61075b565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90611cb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90611ea5565b60405180910390fd5b610a2d81611470565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90611f37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611fc9565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bf6919061186d565b60405180910390a3505050565b6000610c0f84846108b1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c895781811015610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612035565b60405180910390fd5b610c888484848403610a38565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf6906120c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690612159565b60405180910390fd5b610d7a838383611536565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df8906121eb565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e969190611c13565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610efa919061186d565b60405180910390a3610f0d8484846115b5565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612257565b60405180910390fd5b610f8f60008383611536565b8060356000828254610fa19190611c13565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ff79190611c13565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161105c919061186d565b60405180910390a3611070600083836115b5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906122e9565b60405180910390fd5b6110f082600083611536565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e9061237b565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282546111cf919061239b565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611234919061186d565b60405180910390a3611248836000846115b5565b505050565b60008060019054906101000a900460ff16156112c45760018260ff1614801561127c575061127a306115ba565b155b6112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612441565b60405180910390fd5b60009050611338565b8160ff1660008054906101000a900460ff1660ff1610611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612441565b60405180910390fd5b816000806101000a81548160ff021916908360ff160217905550600190505b919050565b600060019054906101000a900460ff1661138c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611383906124d3565b60405180910390fd5b565b600060019054906101000a900460ff166113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906124d3565b60405180910390fd5b81603690805190602001906113f39291906115e2565b50806037908051906020019061140a9291906115e2565b505050565b600060019054906101000a900460ff1661145e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611455906124d3565b60405180910390fd5b61146e611469610a30565b611470565b565b6000609760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081609760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115418383836115dd565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a79061253f565b60405180910390fd5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b8280546115ee90611bb2565b90600052602060002090601f0160209004810192826116105760008555611657565b82601f1061162957805160ff1916838001178555611657565b82800160010185558215611657579182015b8281111561165657825182559160200191906001019061163b565b5b5090506116649190611668565b5090565b5b80821115611681576000816000905550600101611669565b5090565b600081519050919050565b600082825260208201905092915050565b60005b838110156116bf5780820151818401526020810190506116a4565b838111156116ce576000848401525b50505050565b6000601f19601f8301169050919050565b60006116f082611685565b6116fa8185611690565b935061170a8185602086016116a1565b611713816116d4565b840191505092915050565b6000602082019050818103600083015261173881846116e5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177f82611754565b9050919050565b61178f81611774565b811461179a57600080fd5b50565b6000813590506117ac81611786565b92915050565b6000819050919050565b6117c5816117b2565b81146117d057600080fd5b50565b6000813590506117e2816117bc565b92915050565b600080604083850312156117ff576117fe61174a565b5b600061180d8582860161179d565b925050602061181e858286016117d3565b9150509250929050565b60008115159050919050565b61183d81611828565b82525050565b60006020820190506118586000830184611834565b92915050565b611867816117b2565b82525050565b6000602082019050611882600083018461185e565b92915050565b6000806000606084860312156118a1576118a061174a565b5b60006118af8682870161179d565b93505060206118c08682870161179d565b92505060406118d1868287016117d3565b9150509250925092565b600060ff82169050919050565b6118f1816118db565b82525050565b600060208201905061190c60008301846118e8565b92915050565b6000602082840312156119285761192761174a565b5b6000611936848285016117d3565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611981826116d4565b810181811067ffffffffffffffff821117156119a05761199f611949565b5b80604052505050565b60006119b3611740565b90506119bf8282611978565b919050565b600067ffffffffffffffff8211156119df576119de611949565b5b6119e8826116d4565b9050602081019050919050565b82818337600083830152505050565b6000611a17611a12846119c4565b6119a9565b905082815260208101848484011115611a3357611a32611944565b5b611a3e8482856119f5565b509392505050565b600082601f830112611a5b57611a5a61193f565b5b8135611a6b848260208601611a04565b91505092915050565b60008060408385031215611a8b57611a8a61174a565b5b600083013567ffffffffffffffff811115611aa957611aa861174f565b5b611ab585828601611a46565b925050602083013567ffffffffffffffff811115611ad657611ad561174f565b5b611ae285828601611a46565b9150509250929050565b600060208284031215611b0257611b0161174a565b5b6000611b108482850161179d565b91505092915050565b611b2281611774565b82525050565b6000602082019050611b3d6000830184611b19565b92915050565b60008060408385031215611b5a57611b5961174a565b5b6000611b688582860161179d565b9250506020611b798582860161179d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611bca57607f821691505b60208210811415611bde57611bdd611b83565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1e826117b2565b9150611c29836117b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5e57611c5d611be4565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c9f602083611690565b9150611caa82611c69565b602082019050919050565b60006020820190508181036000830152611cce81611c92565b9050919050565b7f4c50546f6b656e3a2063616e6e6f74206d696e74203000000000000000000000600082015250565b6000611d0b601683611690565b9150611d1682611cd5565b602082019050919050565b60006020820190508181036000830152611d3a81611cfe565b9050919050565b6000819050919050565b6000819050919050565b6000611d70611d6b611d6684611d41565b611d4b565b6118db565b9050919050565b611d8081611d55565b82525050565b6000602082019050611d9b6000830184611d77565b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611dfd602583611690565b9150611e0882611da1565b604082019050919050565b60006020820190508181036000830152611e2c81611df0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e8f602683611690565b9150611e9a82611e33565b604082019050919050565b60006020820190508181036000830152611ebe81611e82565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611f21602483611690565b9150611f2c82611ec5565b604082019050919050565b60006020820190508181036000830152611f5081611f14565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fb3602283611690565b9150611fbe82611f57565b604082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061201f601d83611690565b915061202a82611fe9565b602082019050919050565b6000602082019050818103600083015261204e81612012565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006120b1602583611690565b91506120bc82612055565b604082019050919050565b600060208201905081810360008301526120e0816120a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612143602383611690565b915061214e826120e7565b604082019050919050565b6000602082019050818103600083015261217281612136565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121d5602683611690565b91506121e082612179565b604082019050919050565b60006020820190508181036000830152612204816121c8565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612241601f83611690565b915061224c8261220b565b602082019050919050565b6000602082019050818103600083015261227081612234565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006122d3602183611690565b91506122de82612277565b604082019050919050565b60006020820190508181036000830152612302816122c6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612365602283611690565b915061237082612309565b604082019050919050565b6000602082019050818103600083015261239481612358565b9050919050565b60006123a6826117b2565b91506123b1836117b2565b9250828210156123c4576123c3611be4565b5b828203905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b600061242b602e83611690565b9150612436826123cf565b604082019050919050565b6000602082019050818103600083015261245a8161241e565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006124bd602b83611690565b91506124c882612461565b604082019050919050565b600060208201905081810360008301526124ec816124b0565b9050919050565b7f4c50546f6b656e3a2063616e6e6f742073656e6420746f20697473656c660000600082015250565b6000612529601e83611690565b9150612534826124f3565b602082019050919050565b600060208201905081810360008301526125588161251c565b905091905056fea164736f6c634300080b000a", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102e1578063a457c2d7146102ff578063a9059cbb1461032f578063dd62ed3e1461035f578063f2fde38b1461038f57610116565b806370a082311461026d578063715018a61461029d57806379cc6790146102a75780638da5cb5b146102c357610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d557806340c10f191461020557806342966c68146102215780634cd88b761461023d57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103ab565b604051610130919061171e565b60405180910390f35b610153600480360381019061014e91906117e8565b61043d565b6040516101609190611843565b60405180910390f35b610171610460565b60405161017e919061186d565b60405180910390f35b6101a1600480360381019061019c9190611888565b61046a565b6040516101ae9190611843565b60405180910390f35b6101bf610499565b6040516101cc91906118f7565b60405180910390f35b6101ef60048036038101906101ea91906117e8565b6104a2565b6040516101fc9190611843565b60405180910390f35b61021f600480360381019061021a91906117e8565b6104d9565b005b61023b60048036038101906102369190611912565b6105a7565b005b61025760048036038101906102529190611a74565b6105bb565b6040516102649190611843565b60405180910390f35b61028760048036038101906102829190611aec565b61066a565b604051610294919061186d565b60405180910390f35b6102a56106b3565b005b6102c160048036038101906102bc91906117e8565b61073b565b005b6102cb61075b565b6040516102d89190611b28565b60405180910390f35b6102e9610785565b6040516102f6919061171e565b60405180910390f35b610319600480360381019061031491906117e8565b610817565b6040516103269190611843565b60405180910390f35b610349600480360381019061034491906117e8565b61088e565b6040516103569190611843565b60405180910390f35b61037960048036038101906103749190611b43565b6108b1565b604051610386919061186d565b60405180910390f35b6103a960048036038101906103a49190611aec565b610938565b005b6060603680546103ba90611bb2565b80601f01602080910402602001604051908101604052809291908181526020018280546103e690611bb2565b80156104335780601f1061040857610100808354040283529160200191610433565b820191906000526020600020905b81548152906001019060200180831161041657829003601f168201915b5050505050905090565b600080610448610a30565b9050610455818585610a38565b600191505092915050565b6000603554905090565b600080610475610a30565b9050610482858285610c03565b61048d858585610c8f565b60019150509392505050565b60006012905090565b6000806104ad610a30565b90506104ce8185856104bf85896108b1565b6104c99190611c13565b610a38565b600191505092915050565b6104e1610a30565b73ffffffffffffffffffffffffffffffffffffffff166104ff61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c90611cb5565b60405180910390fd5b6000811415610599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059090611d21565b60405180910390fd5b6105a38282610f13565b5050565b6105b86105b2610a30565b82611074565b50565b6000806105c8600161124d565b905080156105ec576001600060016101000a81548160ff0219169083151502179055505b6105f461133d565b6105fe848461138e565b61060661140f565b6001915080156106635760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161065a9190611d86565b60405180910390a15b5092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106bb610a30565b73ffffffffffffffffffffffffffffffffffffffff166106d961075b565b73ffffffffffffffffffffffffffffffffffffffff161461072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072690611cb5565b60405180910390fd5b6107396000611470565b565b61074d82610747610a30565b83610c03565b6107578282611074565b5050565b6000609760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606037805461079490611bb2565b80601f01602080910402602001604051908101604052809291908181526020018280546107c090611bb2565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b600080610822610a30565b9050600061083082866108b1565b905083811015610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90611e13565b60405180910390fd5b6108828286868403610a38565b60019250505092915050565b600080610899610a30565b90506108a6818585610c8f565b600191505092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610940610a30565b73ffffffffffffffffffffffffffffffffffffffff1661095e61075b565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90611cb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90611ea5565b60405180910390fd5b610a2d81611470565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90611f37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90611fc9565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bf6919061186d565b60405180910390a3505050565b6000610c0f84846108b1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c895781811015610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612035565b60405180910390fd5b610c888484848403610a38565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf6906120c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690612159565b60405180910390fd5b610d7a838383611536565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df8906121eb565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e969190611c13565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610efa919061186d565b60405180910390a3610f0d8484846115b5565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612257565b60405180910390fd5b610f8f60008383611536565b8060356000828254610fa19190611c13565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ff79190611c13565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161105c919061186d565b60405180910390a3611070600083836115b5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906122e9565b60405180910390fd5b6110f082600083611536565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e9061237b565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282546111cf919061239b565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611234919061186d565b60405180910390a3611248836000846115b5565b505050565b60008060019054906101000a900460ff16156112c45760018260ff1614801561127c575061127a306115ba565b155b6112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612441565b60405180910390fd5b60009050611338565b8160ff1660008054906101000a900460ff1660ff1610611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612441565b60405180910390fd5b816000806101000a81548160ff021916908360ff160217905550600190505b919050565b600060019054906101000a900460ff1661138c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611383906124d3565b60405180910390fd5b565b600060019054906101000a900460ff166113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906124d3565b60405180910390fd5b81603690805190602001906113f39291906115e2565b50806037908051906020019061140a9291906115e2565b505050565b600060019054906101000a900460ff1661145e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611455906124d3565b60405180910390fd5b61146e611469610a30565b611470565b565b6000609760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081609760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115418383836115dd565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a79061253f565b60405180910390fd5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b8280546115ee90611bb2565b90600052602060002090601f0160209004810192826116105760008555611657565b82601f1061162957805160ff1916838001178555611657565b82800160010185558215611657579182015b8281111561165657825182559160200191906001019061163b565b5b5090506116649190611668565b5090565b5b80821115611681576000816000905550600101611669565b5090565b600081519050919050565b600082825260208201905092915050565b60005b838110156116bf5780820151818401526020810190506116a4565b838111156116ce576000848401525b50505050565b6000601f19601f8301169050919050565b60006116f082611685565b6116fa8185611690565b935061170a8185602086016116a1565b611713816116d4565b840191505092915050565b6000602082019050818103600083015261173881846116e5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177f82611754565b9050919050565b61178f81611774565b811461179a57600080fd5b50565b6000813590506117ac81611786565b92915050565b6000819050919050565b6117c5816117b2565b81146117d057600080fd5b50565b6000813590506117e2816117bc565b92915050565b600080604083850312156117ff576117fe61174a565b5b600061180d8582860161179d565b925050602061181e858286016117d3565b9150509250929050565b60008115159050919050565b61183d81611828565b82525050565b60006020820190506118586000830184611834565b92915050565b611867816117b2565b82525050565b6000602082019050611882600083018461185e565b92915050565b6000806000606084860312156118a1576118a061174a565b5b60006118af8682870161179d565b93505060206118c08682870161179d565b92505060406118d1868287016117d3565b9150509250925092565b600060ff82169050919050565b6118f1816118db565b82525050565b600060208201905061190c60008301846118e8565b92915050565b6000602082840312156119285761192761174a565b5b6000611936848285016117d3565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611981826116d4565b810181811067ffffffffffffffff821117156119a05761199f611949565b5b80604052505050565b60006119b3611740565b90506119bf8282611978565b919050565b600067ffffffffffffffff8211156119df576119de611949565b5b6119e8826116d4565b9050602081019050919050565b82818337600083830152505050565b6000611a17611a12846119c4565b6119a9565b905082815260208101848484011115611a3357611a32611944565b5b611a3e8482856119f5565b509392505050565b600082601f830112611a5b57611a5a61193f565b5b8135611a6b848260208601611a04565b91505092915050565b60008060408385031215611a8b57611a8a61174a565b5b600083013567ffffffffffffffff811115611aa957611aa861174f565b5b611ab585828601611a46565b925050602083013567ffffffffffffffff811115611ad657611ad561174f565b5b611ae285828601611a46565b9150509250929050565b600060208284031215611b0257611b0161174a565b5b6000611b108482850161179d565b91505092915050565b611b2281611774565b82525050565b6000602082019050611b3d6000830184611b19565b92915050565b60008060408385031215611b5a57611b5961174a565b5b6000611b688582860161179d565b9250506020611b798582860161179d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611bca57607f821691505b60208210811415611bde57611bdd611b83565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1e826117b2565b9150611c29836117b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5e57611c5d611be4565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c9f602083611690565b9150611caa82611c69565b602082019050919050565b60006020820190508181036000830152611cce81611c92565b9050919050565b7f4c50546f6b656e3a2063616e6e6f74206d696e74203000000000000000000000600082015250565b6000611d0b601683611690565b9150611d1682611cd5565b602082019050919050565b60006020820190508181036000830152611d3a81611cfe565b9050919050565b6000819050919050565b6000819050919050565b6000611d70611d6b611d6684611d41565b611d4b565b6118db565b9050919050565b611d8081611d55565b82525050565b6000602082019050611d9b6000830184611d77565b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611dfd602583611690565b9150611e0882611da1565b604082019050919050565b60006020820190508181036000830152611e2c81611df0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e8f602683611690565b9150611e9a82611e33565b604082019050919050565b60006020820190508181036000830152611ebe81611e82565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611f21602483611690565b9150611f2c82611ec5565b604082019050919050565b60006020820190508181036000830152611f5081611f14565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fb3602283611690565b9150611fbe82611f57565b604082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061201f601d83611690565b915061202a82611fe9565b602082019050919050565b6000602082019050818103600083015261204e81612012565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006120b1602583611690565b91506120bc82612055565b604082019050919050565b600060208201905081810360008301526120e0816120a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612143602383611690565b915061214e826120e7565b604082019050919050565b6000602082019050818103600083015261217281612136565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121d5602683611690565b91506121e082612179565b604082019050919050565b60006020820190508181036000830152612204816121c8565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612241601f83611690565b915061224c8261220b565b602082019050919050565b6000602082019050818103600083015261227081612234565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006122d3602183611690565b91506122de82612277565b604082019050919050565b60006020820190508181036000830152612302816122c6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612365602283611690565b915061237082612309565b604082019050919050565b6000602082019050818103600083015261239481612358565b9050919050565b60006123a6826117b2565b91506123b1836117b2565b9250828210156123c4576123c3611be4565b5b828203905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b600061242b602e83611690565b9150612436826123cf565b604082019050919050565b6000602082019050818103600083015261245a8161241e565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006124bd602b83611690565b91506124c882612461565b604082019050919050565b600060208201905081810360008301526124ec816124b0565b9050919050565b7f4c50546f6b656e3a2063616e6e6f742073656e6420746f20697473656c660000600082015250565b6000612529601e83611690565b9150612534826124f3565b602082019050919050565b600060208201905081810360008301526125588161251c565b905091905056fea164736f6c634300080b000a", "linkReferences": {}, "deployedLinkReferences": {} }