347 lines
62 KiB
JSON
Generated
347 lines
62 KiB
JSON
Generated
{
|
|
"schemaVersion": "2.0.0",
|
|
"contractName": "ERC20BridgeSampler",
|
|
"compilerOutput": {
|
|
"abi": [
|
|
{
|
|
"constant": true,
|
|
"inputs": [{ "internalType": "bytes[]", "name": "callDatas", "type": "bytes[]" }],
|
|
"name": "batchCall",
|
|
"outputs": [{ "internalType": "bytes[]", "name": "callResults", "type": "bytes[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "registryAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" }
|
|
],
|
|
"name": "getLiquidityProviderFromRegistry",
|
|
"outputs": [{ "internalType": "address", "name": "providerAddress", "type": "address" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{ "internalType": "address", "name": "makerAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "takerAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "feeRecipientAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "senderAddress", "type": "address" },
|
|
{ "internalType": "uint256", "name": "makerAssetAmount", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "takerAssetAmount", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "makerFee", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "takerFee", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "salt", "type": "uint256" },
|
|
{ "internalType": "bytes", "name": "makerAssetData", "type": "bytes" },
|
|
{ "internalType": "bytes", "name": "takerAssetData", "type": "bytes" },
|
|
{ "internalType": "bytes", "name": "makerFeeAssetData", "type": "bytes" },
|
|
{ "internalType": "bytes", "name": "takerFeeAssetData", "type": "bytes" }
|
|
],
|
|
"internalType": "struct LibOrder.Order[]",
|
|
"name": "orders",
|
|
"type": "tuple[]"
|
|
},
|
|
{ "internalType": "bytes[]", "name": "orderSignatures", "type": "bytes[]" }
|
|
],
|
|
"name": "getOrderFillableMakerAssetAmounts",
|
|
"outputs": [
|
|
{ "internalType": "uint256[]", "name": "orderFillableMakerAssetAmounts", "type": "uint256[]" }
|
|
],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{ "internalType": "address", "name": "makerAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "takerAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "feeRecipientAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "senderAddress", "type": "address" },
|
|
{ "internalType": "uint256", "name": "makerAssetAmount", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "takerAssetAmount", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "makerFee", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "takerFee", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" },
|
|
{ "internalType": "uint256", "name": "salt", "type": "uint256" },
|
|
{ "internalType": "bytes", "name": "makerAssetData", "type": "bytes" },
|
|
{ "internalType": "bytes", "name": "takerAssetData", "type": "bytes" },
|
|
{ "internalType": "bytes", "name": "makerFeeAssetData", "type": "bytes" },
|
|
{ "internalType": "bytes", "name": "takerFeeAssetData", "type": "bytes" }
|
|
],
|
|
"internalType": "struct LibOrder.Order[]",
|
|
"name": "orders",
|
|
"type": "tuple[]"
|
|
},
|
|
{ "internalType": "bytes[]", "name": "orderSignatures", "type": "bytes[]" }
|
|
],
|
|
"name": "getOrderFillableTakerAssetAmounts",
|
|
"outputs": [
|
|
{ "internalType": "uint256[]", "name": "orderFillableTakerAssetAmounts", "type": "uint256[]" }
|
|
],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleBuysFromEth2Dai",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "registryAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleBuysFromLiquidityProviderRegistry",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleBuysFromUniswap",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "curveAddress", "type": "address" },
|
|
{ "internalType": "int128", "name": "fromTokenIdx", "type": "int128" },
|
|
{ "internalType": "int128", "name": "toTokenIdx", "type": "int128" },
|
|
{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleSellsFromCurve",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleSellsFromEth2Dai",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleSellsFromKyberNetwork",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "registryAddress", "type": "address" },
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleSellsFromLiquidityProviderRegistry",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"constant": true,
|
|
"inputs": [
|
|
{ "internalType": "address", "name": "takerToken", "type": "address" },
|
|
{ "internalType": "address", "name": "makerToken", "type": "address" },
|
|
{ "internalType": "uint256[]", "name": "takerTokenAmounts", "type": "uint256[]" }
|
|
],
|
|
"name": "sampleSellsFromUniswap",
|
|
"outputs": [{ "internalType": "uint256[]", "name": "makerTokenAmounts", "type": "uint256[]" }],
|
|
"payable": false,
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"devdoc": {
|
|
"methods": {
|
|
"batchCall(bytes[])": {
|
|
"details": "Call multiple public functions on this contract in a single transaction.",
|
|
"params": { "callDatas": "ABI-encoded call data for each function call." },
|
|
"return": "callResults ABI-encoded results data for each call."
|
|
},
|
|
"getLiquidityProviderFromRegistry(address,address,address)": {
|
|
"details": "Returns the address of a liquidity provider for the given market (takerToken, makerToken), from a registry of liquidity providers. Returns address(0) if no such provider exists in the registry.",
|
|
"params": {
|
|
"makerToken": "Maker asset managed by liquidity provider.",
|
|
"takerToken": "Taker asset managed by liquidity provider."
|
|
},
|
|
"return": "providerAddress Address of the liquidity provider."
|
|
},
|
|
"getOrderFillableMakerAssetAmounts((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[])": {
|
|
"details": "Queries the fillable taker asset amounts of native orders. Effectively ignores orders that have empty signatures or",
|
|
"params": {
|
|
"orderSignatures": "Signatures for each respective order in `orders`.",
|
|
"orders": "Native orders to query."
|
|
},
|
|
"return": "orderFillableMakerAssetAmounts How much maker asset can be filled by each order in `orders`."
|
|
},
|
|
"getOrderFillableTakerAssetAmounts((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[])": {
|
|
"details": "Queries the fillable taker asset amounts of native orders. Effectively ignores orders that have empty signatures or maker/taker asset amounts (returning 0).",
|
|
"params": {
|
|
"orderSignatures": "Signatures for each respective order in `orders`.",
|
|
"orders": "Native orders to query."
|
|
},
|
|
"return": "orderFillableTakerAssetAmounts How much taker asset can be filled by each order in `orders`."
|
|
},
|
|
"sampleBuysFromEth2Dai(address,address,uint256[])": {
|
|
"details": "Sample buy quotes from Eth2Dai/Oasis.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"takerToken": "Address of the taker token (what to sell).",
|
|
"takerTokenAmounts": "Maker token sell amount for each sample."
|
|
},
|
|
"return": "takerTokenAmounts Taker amounts sold at each maker token amount."
|
|
},
|
|
"sampleBuysFromLiquidityProviderRegistry(address,address,address,uint256[])": {
|
|
"details": "Sample buy quotes from an arbitrary on-chain liquidity provider.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"makerTokenAmounts": "Maker token buy amount for each sample.",
|
|
"registryAddress": "Address of the liquidity provider registry contract.",
|
|
"takerToken": "Address of the taker token (what to sell)."
|
|
},
|
|
"return": "takerTokenAmounts Taker amounts sold at each maker token amount."
|
|
},
|
|
"sampleBuysFromUniswap(address,address,uint256[])": {
|
|
"details": "Sample buy quotes from Uniswap.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"makerTokenAmounts": "Maker token sell amount for each sample.",
|
|
"takerToken": "Address of the taker token (what to sell)."
|
|
},
|
|
"return": "takerTokenAmounts Taker amounts sold at each maker token amount."
|
|
},
|
|
"sampleSellsFromCurve(address,int128,int128,uint256[])": {
|
|
"details": "Sample sell quotes from Curve.",
|
|
"params": {
|
|
"curveAddress": "Address of the Curve contract.",
|
|
"fromTokenIdx": "Index of the taker token (what to sell).",
|
|
"takerTokenAmounts": "Taker token sell amount for each sample.",
|
|
"toTokenIdx": "Index of the maker token (what to buy)."
|
|
},
|
|
"return": "makerTokenAmounts Maker amounts bought at each taker token amount."
|
|
},
|
|
"sampleSellsFromEth2Dai(address,address,uint256[])": {
|
|
"details": "Sample sell quotes from Eth2Dai/Oasis.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"takerToken": "Address of the taker token (what to sell).",
|
|
"takerTokenAmounts": "Taker token sell amount for each sample."
|
|
},
|
|
"return": "makerTokenAmounts Maker amounts bought at each taker token amount."
|
|
},
|
|
"sampleSellsFromKyberNetwork(address,address,uint256[])": {
|
|
"details": "Sample sell quotes from Kyber.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"takerToken": "Address of the taker token (what to sell).",
|
|
"takerTokenAmounts": "Taker token sell amount for each sample."
|
|
},
|
|
"return": "makerTokenAmounts Maker amounts bought at each taker token amount."
|
|
},
|
|
"sampleSellsFromLiquidityProviderRegistry(address,address,address,uint256[])": {
|
|
"details": "Sample sell quotes from an arbitrary on-chain liquidity provider.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"registryAddress": "Address of the liquidity provider registry contract.",
|
|
"takerToken": "Address of the taker token (what to sell).",
|
|
"takerTokenAmounts": "Taker token sell amount for each sample."
|
|
},
|
|
"return": "makerTokenAmounts Maker amounts bought at each taker token amount."
|
|
},
|
|
"sampleSellsFromUniswap(address,address,uint256[])": {
|
|
"details": "Sample sell quotes from Uniswap.",
|
|
"params": {
|
|
"makerToken": "Address of the maker token (what to buy).",
|
|
"takerToken": "Address of the taker token (what to sell).",
|
|
"takerTokenAmounts": "Taker token sell amount for each sample."
|
|
},
|
|
"return": "makerTokenAmounts Maker amounts bought at each taker token amount."
|
|
}
|
|
}
|
|
},
|
|
"evm": {
|
|
"bytecode": {
|
|
"object": "0x608060405234801561001057600080fd5b50612a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806368be3cf2116100815780639f76ad351161005b5780639f76ad35146101a7578063a2c28d4b146101ba578063c7f7142e146101cd576100d4565b806368be3cf2146101615780636dd6b78d146101815780638b123a0214610194576100d4565b806359f515d0116100b257806359f515d01461012857806360ee052a1461013b57806364ee6ade1461014e576100d4565b8063354152a3146100d95780634703a7e6146101025780634cb8e25314610115575b600080fd5b6100ec6100e736600461237c565b6101ed565b6040516100f991906126e3565b60405180910390f35b6100ec61011036600461231c565b6103be565b6100ec61012336600461231c565b61059a565b6100ec610136366004612426565b61088a565b6100ec61014936600461231c565b610933565b6100ec61015c36600461231c565b610bf3565b61017461016f3660046123ba565b610db9565b6040516100f99190612665565b6100ec61018f36600461231c565b610ef8565b6100ec6101a2366004612426565b6111a0565b6100ec6101b53660046122a9565b611468565b6100ec6101c83660046122a9565b61166d565b6101e06101db36600461225f565b611859565b6040516100f991906125ec565b60606000825190508060405190808252806020026020018201604052801561021f578160200160208202803883390190505b50915060005b818110156103b457600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff166307211ef7905060e01b8a8a8a888151811061027c57fe5b602002602001015160405160240161029693929190612756565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161031f91906125d0565b6000604051808303818686fa925050503d806000811461035b576040519150601f19603f3d011682016040523d82523d6000602084013e610360565b606091505b5090925090506000821561038957818060200190516103829190810190612544565b9050610391565b5050506103b4565b8086858151811061039e57fe5b6020908102919091010152505050600101610225565b5050949350505050565b60606103ca8385611994565b81516040805182815260208084028201019091528180156103f5578160200160208202803883390190505b50915060005b81811015610591576000606061040f611a07565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663ff1fd974905060e01b8a8a8a888151811061045957fe5b602002602001015160405160240161047393929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516104fc91906125d0565b6000604051808303818686fa925050503d8060008114610538576040519150601f19603f3d011682016040523d82523d6000602084013e61053d565b606091505b50909250905060008215610566578180602001905161055f9190810190612544565b905061056e565b505050610591565b8086858151811061057b57fe5b60209081029190910101525050506001016103fb565b50509392505050565b60606105a68385611994565b60006105b0611a1f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146105e857846105fe565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b9050600061060a611a1f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146106425784610658565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b9050600061066587611a37565b60ff169050600061067587611a37565b60ff169050600086519050806040519080825280602002602001820160405280156106aa578160200160208202803883390190505b50955060005b8181101561087d57600060606106c4611a48565b73ffffffffffffffffffffffffffffffffffffffff166216e360600073ffffffffffffffffffffffffffffffffffffffff1663809a9e55905060e01b8a8a8e888151811061070e57fe5b602002602001015160405160240161072893929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107b191906125d0565b6000604051808303818686fa925050503d80600081146107ed576040519150601f19603f3d011682016040523d82523d6000602084013e6107f2565b606091505b5090925090506000821561081b57818060200190516108149190810190612544565b9050610823565b50505061087d565b670de0b6b3a764000087600a0a87600a0a8d878151811061084057fe5b60200260200101518402028161085257fe5b048161085a57fe5b048a858151811061086757fe5b60209081029190910101525050506001016106b0565b5050505050509392505050565b606061089683836111a0565b905060005b835181101561092c578181815181106108b057fe5b60200260200101516000146109245761090b8282815181106108ce57fe5b60200260200101518583815181106108e257fe5b602002602001015160a001518684815181106108fa57fe5b602002602001015160800151611a60565b82828151811061091757fe5b6020026020010181815250505b60010161089b565b5092915050565b606061093f8385611994565b815160408051828152602080840282010190915281801561096a578160200160208202803883390190505b5091506000610977611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146109b7576109b286611aa2565b6109ba565b60005b905060006109c6611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610a0657610a0186611aa2565b610a09565b60005b905060005b83811015610be8576001610a20611a1f565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415610ab7578651610a969085907f2640f62c00000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b6020026020010151611b34565b878481518110610aa257fe5b60200260200101819350828152505050610bd4565b610abf611a1f565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415610b28578651610a969084907f59e9486200000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b8651600090610b619085907f59e9486200000000000000000000000000000000000000000000000000000000908b9087908110610a8957fe5b925090508015610bb757610b96857f2640f62c0000000000000000000000000000000000000000000000000000000083611b34565b888581518110610ba257fe5b60200260200101819450828152505050610bd2565b6000878481518110610bc557fe5b6020026020010181815250505b505b80610bdf5750610be8565b50600101610a0e565b505050509392505050565b6060610bff8385611994565b8151604080518281526020808402820101909152818015610c2a578160200160208202803883390190505b50915060005b818110156105915760006060610c44611a07565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663144a2752905060e01b898b8a8881518110610c8e57fe5b6020026020010151604051602401610ca893929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610d3191906125d0565b6000604051808303818686fa925050503d8060008114610d6d576040519150601f19603f3d011682016040523d82523d6000602084013e610d72565b606091505b509092509050600082156105665781806020019051610d949190810190612544565b905080868581518110610da357fe5b6020908102919091010152505050600101610c30565b604080518281526020808402820101909152606090828015610def57816020015b6060815260200190600190039081610dda5790505b50905060005b80831461092c576000606030868685818110610e0d57fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe136849003018112610e4757600080fd5b9091016020810191503567ffffffffffffffff811115610e6657600080fd5b36819003821315610e7657600080fd5b604051610e849291906125c0565b600060405180830381855afa9150503d8060008114610ebf576040519150601f19603f3d011682016040523d82523d6000602084013e610ec4565b606091505b509150915081610ed657805160208201fd5b80848481518110610ee357fe5b60209081029190910101525050600101610df5565b6060610f048385611994565b8151604080518281526020808402820101909152818015610f2f578160200160208202803883390190505b5091506000610f3c611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f7c57610f7786611aa2565b610f7f565b60005b90506000610f8b611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610fcb57610fc686611aa2565b610fce565b60005b905060005b83811015610be8576001610fe5611a1f565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561106f57865161104e9085907f95b68fe700000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b87848151811061105a57fe5b6020026020010181935082815250505061118c565b611077611a1f565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614156110e057865161104e9084907fcd7724c300000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b86516000906111199086907f95b68fe700000000000000000000000000000000000000000000000000000000908b9087908110610a8957fe5b92509050801561116f5761114e847fcd7724c30000000000000000000000000000000000000000000000000000000083611b34565b88858151811061115a57fe5b6020026020010181945082815250505061118a565b600087848151811061117d57fe5b6020026020010181815250505b505b806111975750610be8565b50600101610fd3565b606082516040519080825280602002602001820160405280156111cd578160200160208202803883390190505b50905060005b8351811461092c578281815181106111e757fe5b60200260200101515160001480611215575083818151811061120557fe5b6020026020010151608001516000145b80611237575083818151811061122757fe5b602002602001015160a001516000145b1561125b57600082828151811061124a57fe5b602002602001018181525050611460565b60006060611267611c7d565b73ffffffffffffffffffffffffffffffffffffffff166207a120611289611c7d565b5087517fe77286eb00000000000000000000000000000000000000000000000000000000908990879081106112ba57fe5b60200260200101518887815181106112ce57fe5b60200260200101516040516024016112e79291906127d1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161137091906125d0565b6000604051808303818686fa925050503d80600081146113ac576040519150601f19603f3d011682016040523d82523d6000602084013e6113b1565b606091505b5091509150816113dc5760008484815181106113c957fe5b6020026020010181815250505050611460565b6113e4611f5b565b600080838060200190516113fb91908101906124d7565b9194509250905060038351600681111561141157fe5b14158061141c575080155b1561144057600087878151811061142f57fe5b60200260200101818152505061145a565b8187878151811061144d57fe5b6020026020010181815250505b50505050505b6001016111d3565b60606000825190508060405190808252806020026020018201604052801561149a578160200160208202803883390190505b50915060006114aa878787611859565b905073ffffffffffffffffffffffffffffffffffffffff81166114cf57506116659050565b60005b8281101561166157600060608373ffffffffffffffffffffffffffffffffffffffff1662030d40600073ffffffffffffffffffffffffffffffffffffffff1663343fbcdd905060e01b8b8b8b888151811061152957fe5b602002602001015160405160240161154393929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516115cc91906125d0565b6000604051808303818686fa925050503d8060008114611608576040519150601f19603f3d011682016040523d82523d6000602084013e61160d565b606091505b50909250905060008215611636578180602001905161162f9190810190612544565b905061163e565b505050611661565b8087858151811061164b57fe5b60209081029190910101525050506001016114d2565b5050505b949350505050565b60606000825190508060405190808252806020026020018201604052801561169f578160200160208202803883390190505b50915060006116af878787611859565b905073ffffffffffffffffffffffffffffffffffffffff81166116d457506116659050565b60005b8281101561166157600060608373ffffffffffffffffffffffffffffffffffffffff1662030d40600073ffffffffffffffffffffffffffffffffffffffff166345060eb0905060e01b8b8b8b888151811061172e57fe5b602002602001015160405160240161174893929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516117d191906125d0565b6000604051808303818686fa925050503d806000811461180d576040519150601f19603f3d011682016040523d82523d6000602084013e611812565b606091505b5090925090506000821561163657818060200190516118349190810190612544565b90508087858151811061184357fe5b60209081029190910101525050506001016116d7565b6040516000906060907f153f59970000000000000000000000000000000000000000000000000000000090611894908690869060240161260d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608673ffffffffffffffffffffffffffffffffffffffff168360405161191c91906125d0565b600060405180830381855afa9150503d8060008114611957576040519150601f19603f3d011682016040523d82523d6000602084013e61195c565b606091505b509150915081801561196f575080516020145b156119895761197f81600c611c95565b935050505061198d565b5050505b9392505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90612774565b60405180910390fd5b5050565b73794e6e91555438afc3ccf1c5076a74f42133d08d90565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000611a4282611cda565b92915050565b73818e6fecd516ecc3849daf6845e3ec868087b75590565b600061166583611a96611a7a82600163ffffffff611dab16565b611a8a888763ffffffff611dca16565b9063ffffffff611dfb16565b9063ffffffff611e1716565b6000611aac611e41565b73ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b8152600401611ae491906125ec565b60206040518083038186803b158015611afc57600080fd5b505afa158015611b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a429190810190612243565b60008073ffffffffffffffffffffffffffffffffffffffff8516611b5757611c75565b60608573ffffffffffffffffffffffffffffffffffffffff16620249f08686604051602401611b869190612925565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611c0f91906125d0565b6000604051808303818686fa925050503d8060008114611c4b576040519150601f19603f3d011682016040523d82523d6000602084013e611c50565b606091505b5090925090508115611c735780806020019051611c709190810190612544565b92505b505b935093915050565b7374134cf88b21383713e096a5ecf59e297dc7f54790565b60008160140183511015611cbb57611cbb611cb66004855185601401611e59565b611efe565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b600060129050600060608373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600481526020017f313ce56700000000000000000000000000000000000000000000000000000000815250604051611d3e91906125d0565b600060405180830381855afa9150503d8060008114611d79576040519150601f19603f3d011682016040523d82523d6000602084013e611d7e565b606091505b5091509150818015611d91575080516020145b15611da457611da1816000611f06565b92505b5050919050565b600082821115611dc457611dc4611cb660028585611f12565b50900390565b600082611dd957506000611a42565b82820282848281611de657fe5b041461198d5761198d611cb660018686611f12565b60008282018381101561198d5761198d611cb660008686611f12565b600081611e2d57611e2d611cb660038585611f12565b6000828481611e3857fe5b04949350505050565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9590565b6060632800659560e01b848484604051602401611e7893929190612748565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b600061198d8383611f31565b606063e946c1bb60e01b848484604051602401611e7893929190612726565b60008160200183511015611f5257611f52611cb66005855185602001611e59565b50016020015190565b6040805160608101909152806000815260006020820181905260409091015290565b8035611a42816129a5565b600082601f830112611f98578081fd5b8135611fab611fa682612955565b61292e565b8181529150602080830190840160005b83811015611fe857611fd3876020843589010161205b565b83526020928301929190910190600101611fbb565b5050505092915050565b600082601f830112612002578081fd5b8135612010611fa682612955565b81815291506020808301908481018184028601820187101561203157600080fd5b60005b8481101561205057813584529282019290820190600101612034565b505050505092915050565b600082601f83011261206b578081fd5b813567ffffffffffffffff811115612081578182fd5b6120b260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161292e565b91508082528360208285010111156120c957600080fd5b8060208401602084013760009082016020015292915050565b8035600f81900b8114611a4257600080fd5b60006101c0808385031215612107578182fd5b6121108161292e565b91505061211d8383611f7d565b815261212c8360208401611f7d565b602082015261213e8360408401611f7d565b60408201526121508360608401611f7d565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156121b257600080fd5b6121be8683870161205b565b838501526101609250828501359150808211156121da57600080fd5b6121e68683870161205b565b8385015261018092508285013591508082111561220257600080fd5b61220e8683870161205b565b838501526101a092508285013591508082111561222a57600080fd5b506122378582860161205b565b82840152505092915050565b600060208284031215612254578081fd5b815161198d816129a5565b600080600060608486031215612273578182fd5b833561227e816129a5565b9250602084013561228e816129a5565b9150604084013561229e816129a5565b809150509250925092565b600080600080608085870312156122be578081fd5b84356122c9816129a5565b935060208501356122d9816129a5565b925060408501356122e9816129a5565b9150606085013567ffffffffffffffff811115612304578182fd5b61231087828801611ff2565b91505092959194509250565b600080600060608486031215612330578283fd5b833561233b816129a5565b9250602084013561234b816129a5565b9150604084013567ffffffffffffffff811115612366578182fd5b61237286828701611ff2565b9150509250925092565b60008060008060808587031215612391578182fd5b843561239c816129a5565b93506123ab86602087016120e2565b92506122e986604087016120e2565b600080602083850312156123cc578182fd5b823567ffffffffffffffff808211156123e3578384fd5b81850186601f8201126123f4578485fd5b8035925081831115612404578485fd5b8660208085028301011115612417578485fd5b60200196919550909350505050565b60008060408385031215612438578182fd5b823567ffffffffffffffff8082111561244f578384fd5b81850186601f820112612460578485fd5b80359250612470611fa684612955565b83815260208082019190838101885b878110156124a8576124968c8484358901016120f4565b8552938201939082019060010161247f565b509197508801359450505050808211156124c0578283fd5b506124cd85828601611f88565b9150509250929050565b600080600083850360a08112156124ec578182fd5b60608112156124f9578182fd5b50612504606061292e565b845160078110612512578283fd5b81526020858101519082015260408086015190820152606085015160808601519194509250801515811461229e578182fd5b600060208284031215612555578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845261258e816020860160208601612975565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b600082516125e2818460208701612975565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156126d6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526126c4858351612576565b9450928501929085019060010161268a565b5092979650505050505050565b602080825282518282018190526000918401906040840190835b8181101561271b5783518352602093840193909201916001016126fd565b509095945050505050565b606081016004851061273457fe5b938152602081019290925260409091015290565b606081016008851061273457fe5b600f93840b81529190920b6020820152604081019190915260600190565b60208082526025908201527f455243323042726964676553616d706c65722f494e56414c49445f544f4b454e60408201527f5f50414952000000000000000000000000000000000000000000000000000000606082015260800190565b6000604082526127e560408301855161255c565b60208401516127f7606084018261255c565b50604084015161280a608084018261255c565b50606084015161281d60a084018261255c565b50608084015160c083015260a084015160e083015260c0840151610100818185015260e086015191506101208281860152818701519250610140915082828601528087015192505061016082818601528187015192506101c09150610180828187015261288e610200870185612576565b8289015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc092506101a08388830301818901526128cd8287612576565b838b015196508489820301868a01526128e68188612576565b955050808a0151955050505080858303016101e0860152506129088183612576565b848103602086015261291a8187612576565b979650505050505050565b90815260200190565b60405181810167ffffffffffffffff8111828210171561294d57600080fd5b604052919050565b600067ffffffffffffffff82111561296b578081fd5b5060209081020190565b60005b83811015612990578181015183820152602001612978565b8381111561299f576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146129c757600080fd5b5056fea365627a7a7231582034e7eab64809a5ab7420c524f487ac0ca03a80f2b355b2d12a392dde2df0522e6c6578706572696d656e74616cf564736f6c63430005100040"
|
|
},
|
|
"deployedBytecode": {
|
|
"object": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c806368be3cf2116100815780639f76ad351161005b5780639f76ad35146101a7578063a2c28d4b146101ba578063c7f7142e146101cd576100d4565b806368be3cf2146101615780636dd6b78d146101815780638b123a0214610194576100d4565b806359f515d0116100b257806359f515d01461012857806360ee052a1461013b57806364ee6ade1461014e576100d4565b8063354152a3146100d95780634703a7e6146101025780634cb8e25314610115575b600080fd5b6100ec6100e736600461237c565b6101ed565b6040516100f991906126e3565b60405180910390f35b6100ec61011036600461231c565b6103be565b6100ec61012336600461231c565b61059a565b6100ec610136366004612426565b61088a565b6100ec61014936600461231c565b610933565b6100ec61015c36600461231c565b610bf3565b61017461016f3660046123ba565b610db9565b6040516100f99190612665565b6100ec61018f36600461231c565b610ef8565b6100ec6101a2366004612426565b6111a0565b6100ec6101b53660046122a9565b611468565b6100ec6101c83660046122a9565b61166d565b6101e06101db36600461225f565b611859565b6040516100f991906125ec565b60606000825190508060405190808252806020026020018201604052801561021f578160200160208202803883390190505b50915060005b818110156103b457600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff166307211ef7905060e01b8a8a8a888151811061027c57fe5b602002602001015160405160240161029693929190612756565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161031f91906125d0565b6000604051808303818686fa925050503d806000811461035b576040519150601f19603f3d011682016040523d82523d6000602084013e610360565b606091505b5090925090506000821561038957818060200190516103829190810190612544565b9050610391565b5050506103b4565b8086858151811061039e57fe5b6020908102919091010152505050600101610225565b5050949350505050565b60606103ca8385611994565b81516040805182815260208084028201019091528180156103f5578160200160208202803883390190505b50915060005b81811015610591576000606061040f611a07565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663ff1fd974905060e01b8a8a8a888151811061045957fe5b602002602001015160405160240161047393929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516104fc91906125d0565b6000604051808303818686fa925050503d8060008114610538576040519150601f19603f3d011682016040523d82523d6000602084013e61053d565b606091505b50909250905060008215610566578180602001905161055f9190810190612544565b905061056e565b505050610591565b8086858151811061057b57fe5b60209081029190910101525050506001016103fb565b50509392505050565b60606105a68385611994565b60006105b0611a1f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146105e857846105fe565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b9050600061060a611a1f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146106425784610658565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b9050600061066587611a37565b60ff169050600061067587611a37565b60ff169050600086519050806040519080825280602002602001820160405280156106aa578160200160208202803883390190505b50955060005b8181101561087d57600060606106c4611a48565b73ffffffffffffffffffffffffffffffffffffffff166216e360600073ffffffffffffffffffffffffffffffffffffffff1663809a9e55905060e01b8a8a8e888151811061070e57fe5b602002602001015160405160240161072893929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107b191906125d0565b6000604051808303818686fa925050503d80600081146107ed576040519150601f19603f3d011682016040523d82523d6000602084013e6107f2565b606091505b5090925090506000821561081b57818060200190516108149190810190612544565b9050610823565b50505061087d565b670de0b6b3a764000087600a0a87600a0a8d878151811061084057fe5b60200260200101518402028161085257fe5b048161085a57fe5b048a858151811061086757fe5b60209081029190910101525050506001016106b0565b5050505050509392505050565b606061089683836111a0565b905060005b835181101561092c578181815181106108b057fe5b60200260200101516000146109245761090b8282815181106108ce57fe5b60200260200101518583815181106108e257fe5b602002602001015160a001518684815181106108fa57fe5b602002602001015160800151611a60565b82828151811061091757fe5b6020026020010181815250505b60010161089b565b5092915050565b606061093f8385611994565b815160408051828152602080840282010190915281801561096a578160200160208202803883390190505b5091506000610977611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146109b7576109b286611aa2565b6109ba565b60005b905060006109c6611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610a0657610a0186611aa2565b610a09565b60005b905060005b83811015610be8576001610a20611a1f565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415610ab7578651610a969085907f2640f62c00000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b6020026020010151611b34565b878481518110610aa257fe5b60200260200101819350828152505050610bd4565b610abf611a1f565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415610b28578651610a969084907f59e9486200000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b8651600090610b619085907f59e9486200000000000000000000000000000000000000000000000000000000908b9087908110610a8957fe5b925090508015610bb757610b96857f2640f62c0000000000000000000000000000000000000000000000000000000083611b34565b888581518110610ba257fe5b60200260200101819450828152505050610bd2565b6000878481518110610bc557fe5b6020026020010181815250505b505b80610bdf5750610be8565b50600101610a0e565b505050509392505050565b6060610bff8385611994565b8151604080518281526020808402820101909152818015610c2a578160200160208202803883390190505b50915060005b818110156105915760006060610c44611a07565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663144a2752905060e01b898b8a8881518110610c8e57fe5b6020026020010151604051602401610ca893929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610d3191906125d0565b6000604051808303818686fa925050503d8060008114610d6d576040519150601f19603f3d011682016040523d82523d6000602084013e610d72565b606091505b509092509050600082156105665781806020019051610d949190810190612544565b905080868581518110610da357fe5b6020908102919091010152505050600101610c30565b604080518281526020808402820101909152606090828015610def57816020015b6060815260200190600190039081610dda5790505b50905060005b80831461092c576000606030868685818110610e0d57fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe136849003018112610e4757600080fd5b9091016020810191503567ffffffffffffffff811115610e6657600080fd5b36819003821315610e7657600080fd5b604051610e849291906125c0565b600060405180830381855afa9150503d8060008114610ebf576040519150601f19603f3d011682016040523d82523d6000602084013e610ec4565b606091505b509150915081610ed657805160208201fd5b80848481518110610ee357fe5b60209081029190910101525050600101610df5565b6060610f048385611994565b8151604080518281526020808402820101909152818015610f2f578160200160208202803883390190505b5091506000610f3c611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f7c57610f7786611aa2565b610f7f565b60005b90506000610f8b611a1f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610fcb57610fc686611aa2565b610fce565b60005b905060005b83811015610be8576001610fe5611a1f565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561106f57865161104e9085907f95b68fe700000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b87848151811061105a57fe5b6020026020010181935082815250505061118c565b611077611a1f565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614156110e057865161104e9084907fcd7724c300000000000000000000000000000000000000000000000000000000908a9086908110610a8957fe5b86516000906111199086907f95b68fe700000000000000000000000000000000000000000000000000000000908b9087908110610a8957fe5b92509050801561116f5761114e847fcd7724c30000000000000000000000000000000000000000000000000000000083611b34565b88858151811061115a57fe5b6020026020010181945082815250505061118a565b600087848151811061117d57fe5b6020026020010181815250505b505b806111975750610be8565b50600101610fd3565b606082516040519080825280602002602001820160405280156111cd578160200160208202803883390190505b50905060005b8351811461092c578281815181106111e757fe5b60200260200101515160001480611215575083818151811061120557fe5b6020026020010151608001516000145b80611237575083818151811061122757fe5b602002602001015160a001516000145b1561125b57600082828151811061124a57fe5b602002602001018181525050611460565b60006060611267611c7d565b73ffffffffffffffffffffffffffffffffffffffff166207a120611289611c7d565b5087517fe77286eb00000000000000000000000000000000000000000000000000000000908990879081106112ba57fe5b60200260200101518887815181106112ce57fe5b60200260200101516040516024016112e79291906127d1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161137091906125d0565b6000604051808303818686fa925050503d80600081146113ac576040519150601f19603f3d011682016040523d82523d6000602084013e6113b1565b606091505b5091509150816113dc5760008484815181106113c957fe5b6020026020010181815250505050611460565b6113e4611f5b565b600080838060200190516113fb91908101906124d7565b9194509250905060038351600681111561141157fe5b14158061141c575080155b1561144057600087878151811061142f57fe5b60200260200101818152505061145a565b8187878151811061144d57fe5b6020026020010181815250505b50505050505b6001016111d3565b60606000825190508060405190808252806020026020018201604052801561149a578160200160208202803883390190505b50915060006114aa878787611859565b905073ffffffffffffffffffffffffffffffffffffffff81166114cf57506116659050565b60005b8281101561166157600060608373ffffffffffffffffffffffffffffffffffffffff1662030d40600073ffffffffffffffffffffffffffffffffffffffff1663343fbcdd905060e01b8b8b8b888151811061152957fe5b602002602001015160405160240161154393929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516115cc91906125d0565b6000604051808303818686fa925050503d8060008114611608576040519150601f19603f3d011682016040523d82523d6000602084013e61160d565b606091505b50909250905060008215611636578180602001905161162f9190810190612544565b905061163e565b505050611661565b8087858151811061164b57fe5b60209081029190910101525050506001016114d2565b5050505b949350505050565b60606000825190508060405190808252806020026020018201604052801561169f578160200160208202803883390190505b50915060006116af878787611859565b905073ffffffffffffffffffffffffffffffffffffffff81166116d457506116659050565b60005b8281101561166157600060608373ffffffffffffffffffffffffffffffffffffffff1662030d40600073ffffffffffffffffffffffffffffffffffffffff166345060eb0905060e01b8b8b8b888151811061172e57fe5b602002602001015160405160240161174893929190612634565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516117d191906125d0565b6000604051808303818686fa925050503d806000811461180d576040519150601f19603f3d011682016040523d82523d6000602084013e611812565b606091505b5090925090506000821561163657818060200190516118349190810190612544565b90508087858151811061184357fe5b60209081029190910101525050506001016116d7565b6040516000906060907f153f59970000000000000000000000000000000000000000000000000000000090611894908690869060240161260d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608673ffffffffffffffffffffffffffffffffffffffff168360405161191c91906125d0565b600060405180830381855afa9150503d8060008114611957576040519150601f19603f3d011682016040523d82523d6000602084013e61195c565b606091505b509150915081801561196f575080516020145b156119895761197f81600c611c95565b935050505061198d565b5050505b9392505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90612774565b60405180910390fd5b5050565b73794e6e91555438afc3ccf1c5076a74f42133d08d90565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000611a4282611cda565b92915050565b73818e6fecd516ecc3849daf6845e3ec868087b75590565b600061166583611a96611a7a82600163ffffffff611dab16565b611a8a888763ffffffff611dca16565b9063ffffffff611dfb16565b9063ffffffff611e1716565b6000611aac611e41565b73ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b8152600401611ae491906125ec565b60206040518083038186803b158015611afc57600080fd5b505afa158015611b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a429190810190612243565b60008073ffffffffffffffffffffffffffffffffffffffff8516611b5757611c75565b60608573ffffffffffffffffffffffffffffffffffffffff16620249f08686604051602401611b869190612925565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611c0f91906125d0565b6000604051808303818686fa925050503d8060008114611c4b576040519150601f19603f3d011682016040523d82523d6000602084013e611c50565b606091505b5090925090508115611c735780806020019051611c709190810190612544565b92505b505b935093915050565b7374134cf88b21383713e096a5ecf59e297dc7f54790565b60008160140183511015611cbb57611cbb611cb66004855185601401611e59565b611efe565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b600060129050600060608373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600481526020017f313ce56700000000000000000000000000000000000000000000000000000000815250604051611d3e91906125d0565b600060405180830381855afa9150503d8060008114611d79576040519150601f19603f3d011682016040523d82523d6000602084013e611d7e565b606091505b5091509150818015611d91575080516020145b15611da457611da1816000611f06565b92505b5050919050565b600082821115611dc457611dc4611cb660028585611f12565b50900390565b600082611dd957506000611a42565b82820282848281611de657fe5b041461198d5761198d611cb660018686611f12565b60008282018381101561198d5761198d611cb660008686611f12565b600081611e2d57611e2d611cb660038585611f12565b6000828481611e3857fe5b04949350505050565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9590565b6060632800659560e01b848484604051602401611e7893929190612748565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b600061198d8383611f31565b606063e946c1bb60e01b848484604051602401611e7893929190612726565b60008160200183511015611f5257611f52611cb66005855185602001611e59565b50016020015190565b6040805160608101909152806000815260006020820181905260409091015290565b8035611a42816129a5565b600082601f830112611f98578081fd5b8135611fab611fa682612955565b61292e565b8181529150602080830190840160005b83811015611fe857611fd3876020843589010161205b565b83526020928301929190910190600101611fbb565b5050505092915050565b600082601f830112612002578081fd5b8135612010611fa682612955565b81815291506020808301908481018184028601820187101561203157600080fd5b60005b8481101561205057813584529282019290820190600101612034565b505050505092915050565b600082601f83011261206b578081fd5b813567ffffffffffffffff811115612081578182fd5b6120b260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161292e565b91508082528360208285010111156120c957600080fd5b8060208401602084013760009082016020015292915050565b8035600f81900b8114611a4257600080fd5b60006101c0808385031215612107578182fd5b6121108161292e565b91505061211d8383611f7d565b815261212c8360208401611f7d565b602082015261213e8360408401611f7d565b60408201526121508360608401611f7d565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156121b257600080fd5b6121be8683870161205b565b838501526101609250828501359150808211156121da57600080fd5b6121e68683870161205b565b8385015261018092508285013591508082111561220257600080fd5b61220e8683870161205b565b838501526101a092508285013591508082111561222a57600080fd5b506122378582860161205b565b82840152505092915050565b600060208284031215612254578081fd5b815161198d816129a5565b600080600060608486031215612273578182fd5b833561227e816129a5565b9250602084013561228e816129a5565b9150604084013561229e816129a5565b809150509250925092565b600080600080608085870312156122be578081fd5b84356122c9816129a5565b935060208501356122d9816129a5565b925060408501356122e9816129a5565b9150606085013567ffffffffffffffff811115612304578182fd5b61231087828801611ff2565b91505092959194509250565b600080600060608486031215612330578283fd5b833561233b816129a5565b9250602084013561234b816129a5565b9150604084013567ffffffffffffffff811115612366578182fd5b61237286828701611ff2565b9150509250925092565b60008060008060808587031215612391578182fd5b843561239c816129a5565b93506123ab86602087016120e2565b92506122e986604087016120e2565b600080602083850312156123cc578182fd5b823567ffffffffffffffff808211156123e3578384fd5b81850186601f8201126123f4578485fd5b8035925081831115612404578485fd5b8660208085028301011115612417578485fd5b60200196919550909350505050565b60008060408385031215612438578182fd5b823567ffffffffffffffff8082111561244f578384fd5b81850186601f820112612460578485fd5b80359250612470611fa684612955565b83815260208082019190838101885b878110156124a8576124968c8484358901016120f4565b8552938201939082019060010161247f565b509197508801359450505050808211156124c0578283fd5b506124cd85828601611f88565b9150509250929050565b600080600083850360a08112156124ec578182fd5b60608112156124f9578182fd5b50612504606061292e565b845160078110612512578283fd5b81526020858101519082015260408086015190820152606085015160808601519194509250801515811461229e578182fd5b600060208284031215612555578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845261258e816020860160208601612975565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b600082516125e2818460208701612975565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156126d6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526126c4858351612576565b9450928501929085019060010161268a565b5092979650505050505050565b602080825282518282018190526000918401906040840190835b8181101561271b5783518352602093840193909201916001016126fd565b509095945050505050565b606081016004851061273457fe5b938152602081019290925260409091015290565b606081016008851061273457fe5b600f93840b81529190920b6020820152604081019190915260600190565b60208082526025908201527f455243323042726964676553616d706c65722f494e56414c49445f544f4b454e60408201527f5f50414952000000000000000000000000000000000000000000000000000000606082015260800190565b6000604082526127e560408301855161255c565b60208401516127f7606084018261255c565b50604084015161280a608084018261255c565b50606084015161281d60a084018261255c565b50608084015160c083015260a084015160e083015260c0840151610100818185015260e086015191506101208281860152818701519250610140915082828601528087015192505061016082818601528187015192506101c09150610180828187015261288e610200870185612576565b8289015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc092506101a08388830301818901526128cd8287612576565b838b015196508489820301868a01526128e68188612576565b955050808a0151955050505080858303016101e0860152506129088183612576565b848103602086015261291a8187612576565b979650505050505050565b90815260200190565b60405181810167ffffffffffffffff8111828210171561294d57600080fd5b604052919050565b600067ffffffffffffffff82111561296b578081fd5b5060209081020190565b60005b83811015612990578181015183820152602001612978565b8381111561299f576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146129c757600080fd5b5056fea365627a7a7231582034e7eab64809a5ab7420c524f487ac0ca03a80f2b355b2d12a392dde2df0522e6c6578706572696d656e74616cf564736f6c63430005100040"
|
|
}
|
|
}
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "soljson-v0.5.16+commit.9c3226ce.js",
|
|
"settings": {
|
|
"optimizer": {
|
|
"enabled": true,
|
|
"runs": 1000000,
|
|
"details": { "yul": true, "deduplicate": true, "cse": true, "constantOptimizer": true }
|
|
},
|
|
"outputSelection": {
|
|
"*": {
|
|
"*": [
|
|
"abi",
|
|
"devdoc",
|
|
"evm.bytecode.object",
|
|
"evm.bytecode.sourceMap",
|
|
"evm.deployedBytecode.object",
|
|
"evm.deployedBytecode.sourceMap"
|
|
]
|
|
}
|
|
},
|
|
"evmVersion": "istanbul"
|
|
}
|
|
},
|
|
"chains": {}
|
|
}
|