@etherspot/contracts
Version:
Etherspot Solidity contracts
216 lines (215 loc) • 32.8 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ConnextFacet",
"sourceName": "src/bridges/facets/ConnextFacet.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "destination",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "relayerFee",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "transferId",
"type": "bytes32"
}
],
"name": "ConnextEthSwap",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "connext",
"type": "address"
},
{
"indexed": true,
"internalType": "uint32",
"name": "domainId",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "weth",
"type": "address"
}
],
"name": "ConnextInitialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "destination",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "relayerFee",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "transferId",
"type": "bytes32"
}
],
"name": "ConnextTokenSwap",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_destinationUnwrapper",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "uint32",
"name": "_destinationDomain",
"type": "uint32"
},
{
"internalType": "uint256",
"name": "_slippage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_relayerFee",
"type": "uint256"
}
],
"name": "connextEthTransfer",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "uint32",
"name": "_destinationDomain",
"type": "uint32"
},
{
"internalType": "uint256",
"name": "_slippage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_relayerFee",
"type": "uint256"
}
],
"name": "connextTokenTransfer",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_connext",
"type": "address"
},
{
"internalType": "uint32",
"name": "_domainId",
"type": "uint32"
},
{
"internalType": "address",
"name": "_weth",
"type": "address"
}
],
"name": "initConnext",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50611b37806100206000396000f3fe6080604052600436106100345760003560e01c80633205dc691461003957806351b401b914610062578063da328d541461007e575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b9190611055565b61009a565b005b61007c600480360381019061007791906110de565b61029c565b005b610098600480360381019061009391906110de565b61064f565b005b6100a26109e3565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610108906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906111c8565b60405180910390fd5b600061018a610a7e565b9050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828160000160146101000a81548163ffffffff021916908363ffffffff160217905550818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b60006102a6610aab565b90506000879050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361031c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610313906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361038b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610382906111c8565b60405180910390fd5b610393610ade565b63ffffffff168563ffffffff16036103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061125a565b60405180910390fd5b823414610422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610419906112c6565b60405180910390fd5b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161045e9291906112f5565b602060405180830381865afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611333565b10156104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d7906113d2565b60405180910390fd5b61050d3330898473ffffffffffffffffffffffffffffffffffffffff16610b01909392919063ffffffff16565b61053882888373ffffffffffffffffffffffffffffffffffffffff16610b8a9092919063ffffffff16565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b815260040161058f97969594939291906114a0565b60206040518083038185885af11580156105ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d2919061154c565b90508873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b888660405161063c93929190611588565b60405180910390a4505050505050505050565b6000610659610aab565b90506000610665610cd9565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906111c8565b60405180910390fd5b61074d610ade565b63ffffffff168563ffffffff160361079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061125a565b60405180910390fd5b82876107a691906115ee565b34146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90611694565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b81526004016108889291906116b4565b6020604051808303816000875af11580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb9190611715565b50506000866040516020016108e09190611742565b604051602081830303815290604052905060008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b815260040161093997969594939291906114a0565b60206040518083038185885af1158015610957573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061097c919061154c565b90508773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c961436873488856040516109cf93929190611588565b60405180910390a350505050505050505050565b6109eb610d0c565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a73906117cf565b60405180910390fd5b565b6000807ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90508091505090565b6000610ab5610a7e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610ae8610a7e565b60000160149054906101000a900463ffffffff16905090565b610b84846323b872dd60e01b858585604051602401610b22939291906117ef565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b50505050565b6000811480610c14575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610bd19291906112f5565b602060405180830381865afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190611333565b145b610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90611898565b60405180910390fd5b610cd48363095ea7b360e01b8484604051602401610c729291906116b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b505050565b6000610ce3610a7e565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610d9b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e009092919063ffffffff16565b9050600081511115610dfb5780806020019051810190610dbb9190611715565b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061192a565b60405180910390fd5b5b505050565b6060610e0f8484600085610e18565b90509392505050565b606082471015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e54906119bc565b60405180910390fd5b610e6685610f2c565b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610ece9190611a84565b60006040518083038185875af1925050503d8060008114610f0b576040519150601f19603f3d011682016040523d82523d6000602084013e610f10565b606091505b5091509150610f20828286610f4f565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610f5f57829050610faf565b600083511115610f725782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69190611adf565b60405180910390fd5b9392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fe682610fbb565b9050919050565b610ff681610fdb565b811461100157600080fd5b50565b60008135905061101381610fed565b92915050565b600063ffffffff82169050919050565b61103281611019565b811461103d57600080fd5b50565b60008135905061104f81611029565b92915050565b60008060006060848603121561106e5761106d610fb6565b5b600061107c86828701611004565b935050602061108d86828701611040565b925050604061109e86828701611004565b9150509250925092565b6000819050919050565b6110bb816110a8565b81146110c657600080fd5b50565b6000813590506110d8816110b2565b92915050565b60008060008060008060c087890312156110fb576110fa610fb6565b5b600061110989828a01611004565b965050602061111a89828a016110c9565b955050604061112b89828a01611004565b945050606061113c89828a01611040565b935050608061114d89828a016110c9565b92505060a061115e89828a016110c9565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b60006111b260188361116b565b91506111bd8261117c565b602082019050919050565b600060208201905081810360008301526111e1816111a5565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b600061124460258361116b565b915061124f826111e8565b604082019050919050565b6000602082019050818103600083015261127381611237565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b60006112b060208361116b565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b6112ef81610fdb565b82525050565b600060408201905061130a60008301856112e6565b61131760208301846112e6565b9392505050565b60008151905061132d816110b2565b92915050565b60006020828403121561134957611348610fb6565b5b60006113578482850161131e565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006113bc60218361116b565b91506113c782611360565b604082019050919050565b600060208201905081810360008301526113eb816113af565b9050919050565b6113fb81611019565b82525050565b61140a816110a8565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561144a57808201518184015260208101905061142f565b60008484015250505050565b6000601f19601f8301169050919050565b600061147282611410565b61147c818561141b565b935061148c81856020860161142c565b61149581611456565b840191505092915050565b600060e0820190506114b5600083018a6113f2565b6114c260208301896112e6565b6114cf60408301886112e6565b6114dc60608301876112e6565b6114e96080830186611401565b6114f660a0830185611401565b81810360c08301526115088184611467565b905098975050505050505050565b6000819050919050565b61152981611516565b811461153457600080fd5b50565b60008151905061154681611520565b92915050565b60006020828403121561156257611561610fb6565b5b600061157084828501611537565b91505092915050565b61158281611516565b82525050565b600060608201905061159d6000830186611401565b6115aa6020830185611401565b6115b76040830184611579565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f9826110a8565b9150611604836110a8565b925082820190508082111561161c5761161b6115bf565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b600061167e60298361116b565b915061168982611622565b604082019050919050565b600060208201905081810360008301526116ad81611671565b9050919050565b60006040820190506116c960008301856112e6565b6116d66020830184611401565b9392505050565b60008115159050919050565b6116f2816116dd565b81146116fd57600080fd5b50565b60008151905061170f816116e9565b92915050565b60006020828403121561172b5761172a610fb6565b5b600061173984828501611700565b91505092915050565b600060208201905061175760008301846112e6565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006117b960228361116b565b91506117c48261175d565b604082019050919050565b600060208201905081810360008301526117e8816117ac565b9050919050565b600060608201905061180460008301866112e6565b61181160208301856112e6565b61181e6040830184611401565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061188260368361116b565b915061188d82611826565b604082019050919050565b600060208201905081810360008301526118b181611875565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611914602a8361116b565b915061191f826118b8565b604082019050919050565b6000602082019050818103600083015261194381611907565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006119a660268361116b565b91506119b18261194a565b604082019050919050565b600060208201905081810360008301526119d581611999565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611a12601d8361116b565b9150611a1d826119dc565b602082019050919050565b60006020820190508181036000830152611a4181611a05565b9050919050565b600081905092915050565b6000611a5e82611410565b611a688185611a48565b9350611a7881856020860161142c565b80840191505092915050565b6000611a908284611a53565b915081905092915050565b600081519050919050565b6000611ab182611a9b565b611abb818561116b565b9350611acb81856020860161142c565b611ad481611456565b840191505092915050565b60006020820190508181036000830152611af98184611aa6565b90509291505056fea2646970667358221220f3dc4951c58ae8b44cd9ca16d9356178d872e081900d417184103d3d1d4fc9ed64736f6c63430008110033",
"deployedBytecode": "0x6080604052600436106100345760003560e01c80633205dc691461003957806351b401b914610062578063da328d541461007e575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b9190611055565b61009a565b005b61007c600480360381019061007791906110de565b61029c565b005b610098600480360381019061009391906110de565b61064f565b005b6100a26109e3565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610108906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906111c8565b60405180910390fd5b600061018a610a7e565b9050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828160000160146101000a81548163ffffffff021916908363ffffffff160217905550818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b60006102a6610aab565b90506000879050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361031c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610313906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361038b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610382906111c8565b60405180910390fd5b610393610ade565b63ffffffff168563ffffffff16036103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061125a565b60405180910390fd5b823414610422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610419906112c6565b60405180910390fd5b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161045e9291906112f5565b602060405180830381865afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611333565b10156104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d7906113d2565b60405180910390fd5b61050d3330898473ffffffffffffffffffffffffffffffffffffffff16610b01909392919063ffffffff16565b61053882888373ffffffffffffffffffffffffffffffffffffffff16610b8a9092919063ffffffff16565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b815260040161058f97969594939291906114a0565b60206040518083038185885af11580156105ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d2919061154c565b90508873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b888660405161063c93929190611588565b60405180910390a4505050505050505050565b6000610659610aab565b90506000610665610cd9565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906111c8565b60405180910390fd5b61074d610ade565b63ffffffff168563ffffffff160361079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061125a565b60405180910390fd5b82876107a691906115ee565b34146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90611694565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b81526004016108889291906116b4565b6020604051808303816000875af11580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb9190611715565b50506000866040516020016108e09190611742565b604051602081830303815290604052905060008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b815260040161093997969594939291906114a0565b60206040518083038185885af1158015610957573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061097c919061154c565b90508773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c961436873488856040516109cf93929190611588565b60405180910390a350505050505050505050565b6109eb610d0c565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a73906117cf565b60405180910390fd5b565b6000807ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90508091505090565b6000610ab5610a7e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610ae8610a7e565b60000160149054906101000a900463ffffffff16905090565b610b84846323b872dd60e01b858585604051602401610b22939291906117ef565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b50505050565b6000811480610c14575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610bd19291906112f5565b602060405180830381865afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190611333565b145b610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90611898565b60405180910390fd5b610cd48363095ea7b360e01b8484604051602401610c729291906116b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b505050565b6000610ce3610a7e565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610d9b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e009092919063ffffffff16565b9050600081511115610dfb5780806020019051810190610dbb9190611715565b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061192a565b60405180910390fd5b5b505050565b6060610e0f8484600085610e18565b90509392505050565b606082471015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e54906119bc565b60405180910390fd5b610e6685610f2c565b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610ece9190611a84565b60006040518083038185875af1925050503d8060008114610f0b576040519150601f19603f3d011682016040523d82523d6000602084013e610f10565b606091505b5091509150610f20828286610f4f565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610f5f57829050610faf565b600083511115610f725782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69190611adf565b60405180910390fd5b9392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fe682610fbb565b9050919050565b610ff681610fdb565b811461100157600080fd5b50565b60008135905061101381610fed565b92915050565b600063ffffffff82169050919050565b61103281611019565b811461103d57600080fd5b50565b60008135905061104f81611029565b92915050565b60008060006060848603121561106e5761106d610fb6565b5b600061107c86828701611004565b935050602061108d86828701611040565b925050604061109e86828701611004565b9150509250925092565b6000819050919050565b6110bb816110a8565b81146110c657600080fd5b50565b6000813590506110d8816110b2565b92915050565b60008060008060008060c087890312156110fb576110fa610fb6565b5b600061110989828a01611004565b965050602061111a89828a016110c9565b955050604061112b89828a01611004565b945050606061113c89828a01611040565b935050608061114d89828a016110c9565b92505060a061115e89828a016110c9565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b60006111b260188361116b565b91506111bd8261117c565b602082019050919050565b600060208201905081810360008301526111e1816111a5565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b600061124460258361116b565b915061124f826111e8565b604082019050919050565b6000602082019050818103600083015261127381611237565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b60006112b060208361116b565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b6112ef81610fdb565b82525050565b600060408201905061130a60008301856112e6565b61131760208301846112e6565b9392505050565b60008151905061132d816110b2565b92915050565b60006020828403121561134957611348610fb6565b5b60006113578482850161131e565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006113bc60218361116b565b91506113c782611360565b604082019050919050565b600060208201905081810360008301526113eb816113af565b9050919050565b6113fb81611019565b82525050565b61140a816110a8565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561144a57808201518184015260208101905061142f565b60008484015250505050565b6000601f19601f8301169050919050565b600061147282611410565b61147c818561141b565b935061148c81856020860161142c565b61149581611456565b840191505092915050565b600060e0820190506114b5600083018a6113f2565b6114c260208301896112e6565b6114cf60408301886112e6565b6114dc60608301876112e6565b6114e96080830186611401565b6114f660a0830185611401565b81810360c08301526115088184611467565b905098975050505050505050565b6000819050919050565b61152981611516565b811461153457600080fd5b50565b60008151905061154681611520565b92915050565b60006020828403121561156257611561610fb6565b5b600061157084828501611537565b91505092915050565b61158281611516565b82525050565b600060608201905061159d6000830186611401565b6115aa6020830185611401565b6115b76040830184611579565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f9826110a8565b9150611604836110a8565b925082820190508082111561161c5761161b6115bf565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b600061167e60298361116b565b915061168982611622565b604082019050919050565b600060208201905081810360008301526116ad81611671565b9050919050565b60006040820190506116c960008301856112e6565b6116d66020830184611401565b9392505050565b60008115159050919050565b6116f2816116dd565b81146116fd57600080fd5b50565b60008151905061170f816116e9565b92915050565b60006020828403121561172b5761172a610fb6565b5b600061173984828501611700565b91505092915050565b600060208201905061175760008301846112e6565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006117b960228361116b565b91506117c48261175d565b604082019050919050565b600060208201905081810360008301526117e8816117ac565b9050919050565b600060608201905061180460008301866112e6565b61181160208301856112e6565b61181e6040830184611401565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061188260368361116b565b915061188d82611826565b604082019050919050565b600060208201905081810360008301526118b181611875565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611914602a8361116b565b915061191f826118b8565b604082019050919050565b6000602082019050818103600083015261194381611907565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006119a660268361116b565b91506119b18261194a565b604082019050919050565b600060208201905081810360008301526119d581611999565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611a12601d8361116b565b9150611a1d826119dc565b602082019050919050565b60006020820190508181036000830152611a4181611a05565b9050919050565b600081905092915050565b6000611a5e82611410565b611a688185611a48565b9350611a7881856020860161142c565b80840191505092915050565b6000611a908284611a53565b915081905092915050565b600081519050919050565b6000611ab182611a9b565b611abb818561116b565b9350611acb81856020860161142c565b611ad481611456565b840191505092915050565b60006020820190508181036000830152611af98184611aa6565b90509291505056fea2646970667358221220f3dc4951c58ae8b44cd9ca16d9356178d872e081900d417184103d3d1d4fc9ed64736f6c63430008110033",
"linkReferences": {},
"deployedLinkReferences": {}
}