synthetix
Version:
The smart contracts which make up the Synthetix system. (synthetix.io)
996 lines • 1.2 MB
JSON
{
"targets": {
"SafeDecimalMath": {
"name": "SafeDecimalMath",
"address": "0x905c5ff75c58213d6e873D5BE576e3479456c9f4",
"source": "SafeDecimalMath",
"link": "https://goerli.etherscan.io/address/0x905c5ff75c58213d6e873D5BE576e3479456c9f4",
"timestamp": "2020-09-25T00:15:35.572Z",
"txn": "",
"network": "goerli"
},
"Math": {
"name": "Math",
"address": "0x5F010E3010d46cBdE975e65D97Ec3C12bB83D1ae",
"source": "Math",
"link": "https://goerli.etherscan.io/address/0x5F010E3010d46cBdE975e65D97Ec3C12bB83D1ae",
"timestamp": "2020-09-25T00:15:35.855Z",
"txn": "",
"network": "goerli"
},
"AddressResolver": {
"name": "AddressResolver",
"address": "0xCDe046E1c635d2D9F69E2081d46732d249c8465F",
"source": "AddressResolver",
"link": "https://goerli.etherscan.io/address/0xCDe046E1c635d2D9F69E2081d46732d249c8465F",
"timestamp": "2020-09-25T00:15:36.613Z",
"txn": "",
"network": "goerli"
},
"ReadProxyAddressResolver": {
"name": "ReadProxyAddressResolver",
"address": "0x5f3D814ccA40b364c38655E30aE94905146c938D",
"source": "ReadProxy",
"link": "https://goerli.etherscan.io/address/0x5f3D814ccA40b364c38655E30aE94905146c938D",
"timestamp": "2020-09-25T00:15:36.841Z",
"txn": "",
"network": "goerli"
},
"FlexibleStorage": {
"name": "FlexibleStorage",
"address": "0x541A50739e35078aBF4Ce890DBE887e75A8B5Db4",
"source": "FlexibleStorage",
"link": "https://goerli.etherscan.io/address/0x541A50739e35078aBF4Ce890DBE887e75A8B5Db4",
"timestamp": "2020-09-25T00:15:37.748Z",
"txn": "",
"network": "goerli"
},
"SystemSettings": {
"name": "SystemSettings",
"address": "0xF3B9E277095eacB82Fc565AF41fa334F422f1cc8",
"source": "SystemSettings",
"link": "https://goerli.etherscan.io/address/0xF3B9E277095eacB82Fc565AF41fa334F422f1cc8",
"timestamp": "2020-10-13T21:40:35.835Z",
"txn": "",
"network": "goerli"
},
"SystemStatus": {
"name": "SystemStatus",
"address": "0xEeF008BFEC2E89FA833F764059442Cc06a006903",
"source": "SystemStatus",
"link": "https://goerli.etherscan.io/address/0xEeF008BFEC2E89FA833F764059442Cc06a006903",
"timestamp": "2020-09-25T00:15:38.375Z",
"txn": "",
"network": "goerli"
},
"ExchangeRates": {
"name": "ExchangeRates",
"address": "0xaDA5F96e7fc44523E4d1c14DF7D79e3A9708dBc6",
"source": "ExchangeRates",
"link": "https://goerli.etherscan.io/address/0xaDA5F96e7fc44523E4d1c14DF7D79e3A9708dBc6",
"timestamp": "2020-11-20T16:16:10.675Z",
"txn": "",
"network": "goerli"
},
"RewardEscrow": {
"name": "RewardEscrow",
"address": "0xD5290dad339b7e6e05Fe3B93BAd20480d84e7a43",
"source": "RewardEscrow",
"link": "https://goerli.etherscan.io/address/0xD5290dad339b7e6e05Fe3B93BAd20480d84e7a43",
"timestamp": "2020-09-25T00:15:39.267Z",
"txn": "",
"network": "goerli"
},
"SynthetixEscrow": {
"name": "SynthetixEscrow",
"address": "0x7E9E608a8167aC07BfDBb871B3eF59356c72B3d9",
"source": "SynthetixEscrow",
"link": "https://goerli.etherscan.io/address/0x7E9E608a8167aC07BfDBb871B3eF59356c72B3d9",
"timestamp": "2020-09-25T00:15:39.495Z",
"txn": "",
"network": "goerli"
},
"SynthetixState": {
"name": "SynthetixState",
"address": "0x15Bd1F44324c9A6960CA286e4F985D6109063B08",
"source": "SynthetixState",
"link": "https://goerli.etherscan.io/address/0x15Bd1F44324c9A6960CA286e4F985D6109063B08",
"timestamp": "2020-09-25T00:15:39.754Z",
"txn": "",
"network": "goerli"
},
"ProxyFeePool": {
"name": "ProxyFeePool",
"address": "0xc0c03aC23ee7E4aB81C4b8ccC32e5EA2e247709E",
"source": "Proxy",
"link": "https://goerli.etherscan.io/address/0xc0c03aC23ee7E4aB81C4b8ccC32e5EA2e247709E",
"timestamp": "2020-09-25T00:15:39.950Z",
"txn": "",
"network": "goerli"
},
"DelegateApprovalsEternalStorage": {
"name": "DelegateApprovalsEternalStorage",
"address": "0x86cC20E50BeC265E43855389b5BC5B95CB065668",
"source": "EternalStorage",
"link": "https://goerli.etherscan.io/address/0x86cC20E50BeC265E43855389b5BC5B95CB065668",
"timestamp": "2020-09-25T00:15:40.349Z",
"txn": "",
"network": "goerli"
},
"DelegateApprovals": {
"name": "DelegateApprovals",
"address": "0x299A0df558B16B31d7E911651637f4C8109CCdb0",
"source": "DelegateApprovals",
"link": "https://goerli.etherscan.io/address/0x299A0df558B16B31d7E911651637f4C8109CCdb0",
"timestamp": "2020-09-25T00:15:40.572Z",
"txn": "",
"network": "goerli"
},
"Liquidations": {
"name": "Liquidations",
"address": "0x26C8b55fFa1f1bE8b44c971C78d666715Ab876e4",
"source": "Liquidations",
"link": "https://goerli.etherscan.io/address/0x26C8b55fFa1f1bE8b44c971C78d666715Ab876e4",
"timestamp": "2020-09-25T00:15:41.362Z",
"txn": "",
"network": "goerli"
},
"EternalStorageLiquidations": {
"name": "EternalStorageLiquidations",
"address": "0x3c1ec450eEE19F0374D9025421645845cF9bF28c",
"source": "EternalStorage",
"link": "https://goerli.etherscan.io/address/0x3c1ec450eEE19F0374D9025421645845cF9bF28c",
"timestamp": "2020-09-25T00:15:41.595Z",
"txn": "",
"network": "goerli"
},
"FeePoolEternalStorage": {
"name": "FeePoolEternalStorage",
"address": "0x4160D670f33D6a45bFb4009C8E958004651dfCA6",
"source": "FeePoolEternalStorage",
"link": "https://goerli.etherscan.io/address/0x4160D670f33D6a45bFb4009C8E958004651dfCA6",
"timestamp": "2020-09-25T00:15:42.646Z",
"txn": "",
"network": "goerli"
},
"FeePool": {
"name": "FeePool",
"address": "0xDD130ed8644E42D7f961711543D6601c07a291B7",
"source": "FeePool",
"link": "https://goerli.etherscan.io/address/0xDD130ed8644E42D7f961711543D6601c07a291B7",
"timestamp": "2020-09-25T00:15:42.999Z",
"txn": "",
"network": "goerli"
},
"FeePoolState": {
"name": "FeePoolState",
"address": "0x6D4Cb3495739DA23edC585f9dd91343641Ac1940",
"source": "FeePoolState",
"link": "https://goerli.etherscan.io/address/0x6D4Cb3495739DA23edC585f9dd91343641Ac1940",
"timestamp": "2020-09-25T00:15:43.925Z",
"txn": "",
"network": "goerli"
},
"RewardsDistribution": {
"name": "RewardsDistribution",
"address": "0x557c7C8d97526E65D007262267d6F25F35489c1D",
"source": "RewardsDistribution",
"link": "https://goerli.etherscan.io/address/0x557c7C8d97526E65D007262267d6F25F35489c1D",
"timestamp": "2020-09-25T00:15:44.721Z",
"txn": "",
"network": "goerli"
},
"ProxyERC20": {
"name": "ProxyERC20",
"address": "0x4093eB7D7DeF2dcaE3e53555fc99CE46C8E458B1",
"source": "ProxyERC20",
"link": "https://goerli.etherscan.io/address/0x4093eB7D7DeF2dcaE3e53555fc99CE46C8E458B1",
"timestamp": "2020-09-25T00:15:45.022Z",
"txn": "",
"network": "goerli"
},
"TokenStateSynthetix": {
"name": "TokenStateSynthetix",
"address": "0xc449ce6cd726c0bf7373ecf4888E5f6Ee6dB5aF4",
"source": "TokenState",
"link": "https://goerli.etherscan.io/address/0xc449ce6cd726c0bf7373ecf4888E5f6Ee6dB5aF4",
"timestamp": "2020-09-25T00:15:45.657Z",
"txn": "",
"network": "goerli"
},
"Synthetix": {
"name": "Synthetix",
"address": "0xa1Ad2d2Bcc5bDf8c48840e11a71297B15F610Fe1",
"source": "MintableSynthetix",
"link": "https://goerli.etherscan.io/address/0xa1Ad2d2Bcc5bDf8c48840e11a71297B15F610Fe1",
"timestamp": "2020-11-20T16:16:13.885Z",
"txn": "",
"network": "goerli"
},
"ProxySynthetix": {
"name": "ProxySynthetix",
"address": "0x86272D814a997a46EB21fF56DBfE21921b2C0406",
"source": "Proxy",
"link": "https://goerli.etherscan.io/address/0x86272D814a997a46EB21fF56DBfE21921b2C0406",
"timestamp": "2020-09-25T00:15:46.796Z",
"txn": "",
"network": "goerli"
},
"Exchanger": {
"name": "Exchanger",
"address": "0x1c1335475Aa4Ad3d937c5df4954E4f3677Da48a6",
"source": "Exchanger",
"link": "https://goerli.etherscan.io/address/0x1c1335475Aa4Ad3d937c5df4954E4f3677Da48a6",
"timestamp": "2020-11-20T16:16:18.613Z",
"txn": "",
"network": "goerli"
},
"ExchangeState": {
"name": "ExchangeState",
"address": "0x75EbcFA47ABE47b012061D045c53017E55b94C6e",
"source": "ExchangeState",
"link": "https://goerli.etherscan.io/address/0x75EbcFA47ABE47b012061D045c53017E55b94C6e",
"timestamp": "2020-09-25T00:15:48.079Z",
"txn": "",
"network": "goerli"
},
"Issuer": {
"name": "Issuer",
"address": "0xF45B14ddaBF0F0e275E215b94dD24Ae013a27F12",
"source": "Issuer",
"link": "https://goerli.etherscan.io/address/0xF45B14ddaBF0F0e275E215b94dD24Ae013a27F12",
"timestamp": "2020-11-20T16:16:22.674Z",
"txn": "",
"network": "goerli"
},
"TradingRewards": {
"name": "TradingRewards",
"address": "0x45602503BF457df5D206e9E800Da4B786d6BC5dc",
"source": "TradingRewards",
"link": "https://goerli.etherscan.io/address/0x45602503BF457df5D206e9E800Da4B786d6BC5dc",
"timestamp": "2020-09-25T00:15:49.929Z",
"txn": "",
"network": "goerli"
},
"EscrowChecker": {
"name": "EscrowChecker",
"address": "0x48364120c2330e780678ACb6da7C98B6842C5679",
"source": "EscrowChecker",
"link": "https://goerli.etherscan.io/address/0x48364120c2330e780678ACb6da7C98B6842C5679",
"timestamp": "2020-09-25T00:15:50.451Z",
"txn": "",
"network": "goerli"
},
"SupplySchedule": {
"name": "SupplySchedule",
"address": "0x159B105D8f9F1341C7aAAafF19aFb569c17297F3",
"source": "FixedSupplySchedule",
"link": "https://goerli.etherscan.io/address/0x159B105D8f9F1341C7aAAafF19aFb569c17297F3",
"timestamp": "2020-09-25T00:15:51.485Z",
"txn": "",
"network": "goerli"
},
"TokenStatesUSD": {
"name": "TokenStatesUSD",
"address": "0xc081FB7104e7eC62bfdaE4983A782b110b162C39",
"source": "TokenState",
"link": "https://goerli.etherscan.io/address/0xc081FB7104e7eC62bfdaE4983A782b110b162C39",
"timestamp": "2020-09-25T00:15:52.920Z",
"txn": "",
"network": "goerli"
},
"ProxysUSD": {
"name": "ProxysUSD",
"address": "0xd5cCFDD54E82E2aceFF1cF5479a925228380a503",
"source": "ProxyERC20",
"link": "https://goerli.etherscan.io/address/0xd5cCFDD54E82E2aceFF1cF5479a925228380a503",
"timestamp": "2020-09-25T00:15:53.118Z",
"txn": "",
"network": "goerli"
},
"ProxyERC20sUSD": {
"name": "ProxyERC20sUSD",
"address": "0x85a02d90B62c454d69eE1F3660BA5c2135Da0cd2",
"source": "ProxyERC20",
"link": "https://goerli.etherscan.io/address/0x85a02d90B62c454d69eE1F3660BA5c2135Da0cd2",
"timestamp": "2020-09-25T00:15:53.419Z",
"txn": "",
"network": "goerli"
},
"SynthsUSD": {
"name": "SynthsUSD",
"address": "0xF0DCA25941c5Fd1D440868a41a5581898e6d6d07",
"source": "Synth",
"link": "https://goerli.etherscan.io/address/0xF0DCA25941c5Fd1D440868a41a5581898e6d6d07",
"timestamp": "2020-09-25T00:15:53.654Z",
"txn": "",
"network": "goerli"
},
"EtherCollateral": {
"name": "EtherCollateral",
"address": "0x02831AFf776e03aD633E518f167c21a0d9d587fC",
"source": "EmptyEtherCollateral",
"link": "https://goerli.etherscan.io/address/0x02831AFf776e03aD633E518f167c21a0d9d587fC",
"timestamp": "2020-09-25T00:15:55.605Z",
"txn": "",
"network": "goerli"
},
"EtherCollateralsUSD": {
"name": "EtherCollateralsUSD",
"address": "0x1b022bA8333d6b942FC02917D86564855Bd5F3B9",
"source": "EmptyEtherCollateral",
"link": "https://goerli.etherscan.io/address/0x1b022bA8333d6b942FC02917D86564855Bd5F3B9",
"timestamp": "2020-09-25T00:15:55.796Z",
"txn": "",
"network": "goerli"
},
"SynthUtil": {
"name": "SynthUtil",
"address": "0xa88f384F338f7d80510faf1e35B2633719f51289",
"source": "SynthUtil",
"link": "https://goerli.etherscan.io/address/0xa88f384F338f7d80510faf1e35B2633719f51289",
"timestamp": "2020-09-25T00:15:56.289Z",
"txn": "",
"network": "goerli"
},
"DappMaintenance": {
"name": "DappMaintenance",
"address": "0x2cab1E6f4c055EF765724165c85eAEA6Fc8725cc",
"source": "DappMaintenance",
"link": "https://goerli.etherscan.io/address/0x2cab1E6f4c055EF765724165c85eAEA6Fc8725cc",
"timestamp": "2020-09-25T00:15:56.588Z",
"txn": "",
"network": "goerli"
},
"DebtCache": {
"name": "DebtCache",
"address": "0xa6e5DA838D3b8338783E0710E1D5F6C8e8E998CE",
"source": "RealtimeDebtCache",
"link": "https://goerli.etherscan.io/address/0xa6e5DA838D3b8338783E0710E1D5F6C8e8E998CE",
"timestamp": "2020-11-20T16:16:16.436Z",
"txn": "",
"network": "goerli"
},
"SynthetixBridgeToBase": {
"name": "SynthetixBridgeToBase",
"address": "0x5A081fa7e3483504385e7C804AB1509499e2A408",
"source": "SynthetixBridgeToBase",
"link": "https://goerli.etherscan.io/address/0x5A081fa7e3483504385e7C804AB1509499e2A408",
"timestamp": "2020-12-03T00:26:12.697Z",
"txn": "",
"network": "goerli"
}
},
"sources": {
"SafeDecimalMath": {
"bytecode": "61013b610056600b82828239805160001a60731461001957fe5b5a63996d79a5598160e01b8152602081600483336000905af180610043576040513d6000823e3d81fd5b81519350505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af18061003e576040513d6000823e3d81fd5b815193505050501460806040526004361061009c5760003560e01c8063313ce567146100a1578063864029e7146100bf578063907af6c0146100d95780639d8e2177146100e1578063d5e5e6e6146100e9578063def4419d146100f1575b600080fd5b6100a96100f9565b60405160ff909116815260200160405180910390f35b6100c76100fe565b60405190815260200160405180910390f35b6100c761010e565b6100c761011a565b6100c7610126565b6100a9610136565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156",
"abi": [
{
"constant": true,
"inputs": [],
"name": "PRECISE_UNIT",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x864029e7"
},
{
"constant": true,
"inputs": [],
"name": "UNIT",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x9d8e2177"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x313ce567"
},
{
"constant": true,
"inputs": [],
"name": "highPrecisionDecimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0xdef4419d"
},
{
"constant": true,
"inputs": [],
"name": "preciseUnit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function",
"signature": "0xd5e5e6e6"
},
{
"constant": true,
"inputs": [],
"name": "unit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function",
"signature": "0x907af6c0"
}
],
"source": {
"keccak256": "0xbcc09d9e0a315788c29a9c5800737f6a4743b938f04628056a2640a63cb47715",
"urls": [
"bzz-raw://694e78fb8d5c57be39da4d8252801bbbe1fa76e00ba4002083878208e78709d0",
"dweb:/ipfs/QmapHe8ZjoSx9PJvCBqxVHZaL5UyCJhch6hh7cYBECEsF8"
]
},
"metadata": {
"compiler": {
"version": "0.5.16+commit.ff18a1b2"
},
"language": "Solidity",
"settings": {
"compilationTarget": {
"SafeDecimalMath.sol": "SafeDecimalMath"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"SafeDecimalMath.sol": {
"keccak256": "0xbcc09d9e0a315788c29a9c5800737f6a4743b938f04628056a2640a63cb47715",
"urls": [
"bzz-raw://694e78fb8d5c57be39da4d8252801bbbe1fa76e00ba4002083878208e78709d0",
"dweb:/ipfs/QmapHe8ZjoSx9PJvCBqxVHZaL5UyCJhch6hh7cYBECEsF8"
]
}
},
"version": 1
}
},
"Math": {
"bytecode": "604f610055600b82828239805160001a60731461001857fe5b5a63996d79a5598160e01b8152602081600483336000905af180610042576040513d6000823e3d81fd5b81519350505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af180603d576040513d6000823e3d81fd5b81519350505050146080604052600080fd",
"abi": [],
"source": {
"keccak256": "0xa613ae2a85dbfbbad71e4b441b6c801f012a9e6690fd7dd7c2f9684ccd644799",
"urls": [
"bzz-raw://0727d0a172c6202350c9d489e84e9776f3240160684db318e6412b2e117b9266",
"dweb:/ipfs/QmWDXTz8P6L5G52j4Wv8LQX4BQ276aV71LB8S3X6ACdKBv"
]
},
"metadata": {
"compiler": {
"version": "0.5.16+commit.ff18a1b2"
},
"language": "Solidity",
"settings": {
"compilationTarget": {
"Math.sol": "Math"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"Math.sol": {
"keccak256": "0xa613ae2a85dbfbbad71e4b441b6c801f012a9e6690fd7dd7c2f9684ccd644799",
"urls": [
"bzz-raw://0727d0a172c6202350c9d489e84e9776f3240160684db318e6412b2e117b9266",
"dweb:/ipfs/QmWDXTz8P6L5G52j4Wv8LQX4BQ276aV71LB8S3X6ACdKBv"
]
}
},
"version": 1
}
},
"AddressResolver": {
"bytecode": "608060405234801561001057600080fd5b50604051610b05380380610b058339818101604052602081101561003357600080fd5b8101908080519250829150506001600160a01b0381166100995760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390fd5b8060006001816100a761011a565b816001600160a01b0302191690836001600160a01b03160217906100c9610152565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061018c565b6320966208598160e01b8152836004820152602081602483336000905af180610149576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af180610187576040513d6000823e3d81fd5b505050565b61096a8061019b6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806353a47bb71161006657806353a47bb71461013357806379ba50971461013b5780638da5cb5b14610143578063ab0b8f771461014b578063dacb2d011461020d57610093565b80631627540c14610098578063187f7935146100c057806321f8a721146100f95780635145606114610116575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610284565b005b6100dd600480360360208110156100d657600080fd5b50356102fe565b6040516001600160a01b03909116815260200160405180910390f35b6100dd6004803603602081101561010f57600080fd5b503561032b565b6100dd6004803603602081101561012c57600080fd5b503561035b565b6100dd610478565b6100be610484565b6100dd6105fe565b6100be6004803603604081101561016157600080fd5b81019060208101813564010000000081111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460208302840111640100000000831117156101b057600080fd5b9193909290916020810190356401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184602083028401116401000000008311171561020257600080fd5b509092509050610609565b6100dd6004803603604081101561022357600080fd5b8135919081019060408101602082013564010000000081111561024557600080fd5b82018360208201111561025757600080fd5b8035906020019184600183028401116401000000008311171561027957600080fd5b5090925090506106ef565b61028c610777565b80600180806102996107eb565b816001600160a01b0302191690836001600160a01b03160217906102bb610823565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b6002602052806000526040600020600091506103186107eb565b906101000a90046001600160a01b031681565b60008181526002602052604081206000906103446107eb565b906101000a90046001600160a01b03169050919050565b6524b9b9bab2b960d11b60009081526002602052806040812060009061037f6107eb565b6001600160a01b036101009290920a9004169050806103e45760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015260640160405180910390fd5b806001600160a01b03166332608039846040516001600160e01b031960e084901b16815260048101919091526024016020604051808303818680610426610858565b15801561043257600080fd5b505a61043c610887565b5050505050158015610452573d6000803e3d6000fd5b505050506040513d602081101561046857600080fd5b8101908080519695505050505050565b600060016103186107eb565b600060016104906107eb565b906101000a90046001600160a01b03166001600160a01b03165a6104b26108dc565b6001600160a01b0316146104f75760405162461bcd60e51b81526004018080602001828103825260358152602001806109066035913960400191505060405180910390fd5b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806105236107eb565b906101000a90046001600160a01b031660016000906105406107eb565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161057f6107eb565b906101000a90046001600160a01b03166000806101000a8161059f6107eb565b816001600160a01b0302191690836001600160a01b03160217906105c1610823565b5050506000600160006101000a816105d76107eb565b816001600160a01b0302191690836001600160a01b03160217906105f9610823565b505050565b6000806103186107eb565b610611610777565b8281146106645760405162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015260640160405180910390fd5b60005b838110156106e85782828281811061067b57fe5b905060200201356001600160a01b03166002600087878581811061069b57fe5b9050602002013581526020019081526020016000206001816106bb6107eb565b816001600160a01b0302191690836001600160a01b03160217906106dd610823565b505050600101610667565b5050505050565b6000838152600260205280604081206000906107096107eb565b6001600160a01b036101009290920a900416905083838261076c5760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152601f01601f19169091019450604093505050505180910390fd5b509095945050505050565b6000806107826107eb565b906101000a90046001600160a01b03166001600160a01b03165a6107a46108dc565b6001600160a01b0316146107e95760405162461bcd60e51b815260040180806020018281038252602f81526020018061093b602f913960400191505060405180910390fd5b565b6320966208598160e01b8152836004820152602081602483336000905af18061081a576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af1806105f9576040513d6000823e3d81fd5b63c3382d0f598160e01b8152836004820152602081602483336000905af18061081a576040513d6000823e3d81fd5b63fbb0f79d598160e01b815284600482015260005b878110156108b757808701518282016024015260200161089c565b5088888860240183336000905af1806108d6576040513d6000823e3d81fd5b98505050565b6373509064598160e01b8152602081600483336000905af18061081a576040513d6000823e3d81fdfe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor",
"signature": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerChanged",
"type": "event",
"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerNominated",
"type": "event",
"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
},
{
"constant": false,
"inputs": [],
"name": "acceptOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function",
"signature": "0x79ba5097"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
}
],
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x21f8a721"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
}
],
"name": "getSynth",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x51456061"
},
{
"constant": false,
"inputs": [
{
"internalType": "bytes32[]",
"name": "names",
"type": "bytes32[]"
},
{
"internalType": "address[]",
"name": "destinations",
"type": "address[]"
}
],
"name": "importAddresses",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function",
"signature": "0xab0b8f77"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "nominateNewOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function",
"signature": "0x1627540c"
},
{
"constant": true,
"inputs": [],
"name": "nominatedOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x53a47bb7"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x8da5cb5b"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "repository",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x187f7935"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "requireAndGetAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0xdacb2d01"
}
],
"source": {
"keccak256": "0x9c12bd129e71f48aaea820e7617a561571ea25b10c6a90d69f9614bfb05556b3",
"urls": [
"bzz-raw://8478a08eeab609d91834bb3ea2562b3b528adb9167caeceb41299caf4746b0d2",
"dweb:/ipfs/QmdE6Eemm6bwxRaQnaqxGMo8dajJ4FSHBAVMPHk4iLByEn"
]
},
"metadata": {
"compiler": {
"version": "0.5.16+commit.ff18a1b2"
},
"language": "Solidity",
"settings": {
"compilationTarget": {
"AddressResolver.sol": "AddressResolver"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"AddressResolver.sol": {
"keccak256": "0x9c12bd129e71f48aaea820e7617a561571ea25b10c6a90d69f9614bfb05556b3",
"urls": [
"bzz-raw://8478a08eeab609d91834bb3ea2562b3b528adb9167caeceb41299caf4746b0d2",
"dweb:/ipfs/QmdE6Eemm6bwxRaQnaqxGMo8dajJ4FSHBAVMPHk4iLByEn"
]
}
},
"version": 1
}
},
"ReadProxy": {
"bytecode": "608060405234801561001057600080fd5b506040516107433803806107438339818101604052602081101561003357600080fd5b8101908080519250829150506001600160a01b0381166100995760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390fd5b8060006001816100a761011a565b816001600160a01b0302191690836001600160a01b03160217906100c9610152565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061018c565b6320966208598160e01b8152836004820152602081602483336000905af180610149576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af180610187576040513d6000823e3d81fd5b505050565b6105a88061019b6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631627540c1461009957806353a47bb7146100c1578063776d1a01146100e557806379ba50971461010b5780638da5cb5b14610113578063d4b839921461011b575b36600080376000803660006002610077610458565b5a610080610490565b50505050503d6000803e80610094573d6000fd5b3d6000f35b6100bf600480360360208110156100af57600080fd5b50356001600160a01b0316610123565b005b6100c961019d565b6040516001600160a01b03909116815260200160405180910390f35b6100bf600480360360208110156100fb57600080fd5b50356001600160a01b03166101bc565b6100bf610253565b6100c96103cd565b6100c96103d8565b61012b6103e4565b8060018080610138610458565b816001600160a01b0302191690836001600160a01b031602179061015a6104e5565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600060016101a9610458565b906101000a90046001600160a01b031681565b6101c46103e4565b8060026001816101d2610458565b816001600160a01b0302191690836001600160a01b03160217906101f46104e5565b5050507f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e6002600090610225610458565b906101000a90046001600160a01b03166040516001600160a01b03909116815260200160405180910390a150565b6000600161025f610458565b906101000a90046001600160a01b03166001600160a01b03165a61028161051a565b6001600160a01b0316146102c65760405162461bcd60e51b81526004018080602001828103825260358152602001806105446035913960400191505060405180910390fd5b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806102f2610458565b906101000a90046001600160a01b0316600160009061030f610458565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161034e610458565b906101000a90046001600160a01b03166000806101000a8161036e610458565b816001600160a01b0302191690836001600160a01b03160217906103906104e5565b5050506000600160006101000a816103a6610458565b816001600160a01b0302191690836001600160a01b03160217906103c86104e5565b505050565b6000806101a9610458565b600060026101a9610458565b6000806103ef610458565b906101000a90046001600160a01b03166001600160a01b03165a61041161051a565b6001600160a01b0316146104565760405162461bcd60e51b815260040180806020018281038252602f815260200180610579602f913960400191505060405180910390fd5b565b6320966208598160e01b8152836004820152602081602483336000905af180610487576040513d6000823e3d81fd5b81519450505050565b63fbb0f79d598160e01b815284600482015260005b878110156104c05780870151828201602401526020016104a5565b5088888860240183336000905af1806104df576040513d6000823e3d81fd5b98505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af1806103c8576040513d6000823e3d81fd5b6373509064598160e01b8152602081600483336000905af180610487576040513d6000823e3d81fdfe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor",
"signature": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerChanged",
"type": "event",
"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerNominated",
"type": "event",
"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "newTarget",
"type": "address"
}
],
"name": "TargetUpdated",
"type": "event",
"signature": "0x814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e"
},
{
"payable": false,
"stateMutability": "nonpayable",
"type": "fallback"
},
{
"constant": false,
"inputs": [],
"name": "acceptOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function",
"signature": "0x79ba5097"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "nominateNewOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function",
"signature": "0x1627540c"
},
{
"constant": true,
"inputs": [],
"name": "nominatedOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x53a47bb7"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0x8da5cb5b"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_target",
"type": "address"
}
],
"name": "setTarget",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function",
"signature": "0x776d1a01"
},
{
"constant": true,
"inputs": [],
"name": "target",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function",
"signature": "0xd4b83992"
}
],
"source": {
"keccak256": "0xd2601016da827c10373daaf03fd5a2f07227cccc4db763a5165909c6d3cd56a9",
"urls": [
"bzz-raw://81fe1fce1c17ec640fd7ed214fe9e578af63a5c78e35c47780c5d8c8ac4f7922",
"dweb:/ipfs/QmaN7DtNSjEmvU1ELaNqDfxs26JEZ4GdDWE9EyhtNQzXL4"
]
},
"metadata": {
"compiler": {
"version": "0.5.16+commit.ff18a1b2"
},
"language": "Solidity",
"settings": {
"compilationTarget": {
"ReadProxy.sol": "ReadProxy"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"ReadProxy.sol": {
"keccak256": "0xd2601016da827c10373daaf03fd5a2f07227cccc4db763a5165909c6d3cd56a9",
"urls": [
"bzz-raw://81fe1fce1c17ec640fd7ed214fe9e578af63a5c78e35c47780c5d8c8ac4f7922",
"dweb:/ipfs/QmaN7DtNSjEmvU1ELaNqDfxs26JEZ4GdDWE9EyhtNQzXL4"
]
}
},
"version": 1
}
},
"FlexibleStorage": {
"bytecode": "60806040523480156200001157600080fd5b5060405162002fb538038062002fb5833981810160405260208110156200003757600080fd5b810190808051925082915081905060006001816200005462000083565b816001600160a01b0302191690836001600160a01b031602179062000078620000bc565b5050505050620000f7565b6320966208598160e01b8152836004820152602081602483336000905af180620000b3576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af180620000f2576040513d6000823e3d81fd5b505050565b612eae80620001076000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c5578063f7833c5d146109fc578063f9c39d2f14610a1f578063fdfc4c1314610ae4576101c3565b8063c89eb562146108ba578063d658d2e91461097f578063d71a9b011461099c576101c3565b8063ab15985d116100d3578063ab15985d146106e8578063b67fa7ed146107ad578063c13a2b0c14610822578063c4f610ed14610897576101c3565b80638ca0adaf1461062d5780638f6b95a3146106a25780639ee5955a146106c5576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105375780635bda91e2146105695780636a59e495146105945780638408a5e5146105b8576101c3565b806335ab2708146104245780633bd6ad89146104475780633f28a6fc1461050c576101c3565b80631625e3ef116101a25780631625e3ef1461038057806318f662ed146103a35780631d5b277f146103c657806323257c2b146103ef576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b07565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610c35565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610dde565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561036c578082015183820152602001610354565b505050509050019250505060405180910390f35b6101f16004803603604081101561039657600080fd5b5080359060200135610e99565b6101f1600480360360408110156103b957600080fd5b50803590602001356110a4565b6101f1600480360360608110156103dc57600080fd5b5080359060208101359060400135611288565b6104126004803603604081101561040557600080fd5b50803590602001356113af565b60405190815260200160405180910390f35b6101f16004803603604081101561043a57600080fd5b50803590602001356113f4565b6101f16004803603606081101561045d57600080fd5b81359190810190604081016020820135600160201b81111561047e57600080fd5b82018360208201111561049057600080fd5b803590602001918460208302840111600160201b831117156104b157600080fd5b919390929091602081019035600160201b8111156104ce57600080fd5b8201836020820111156104e057600080fd5b803590602001918460208302840111600160201b8311171561050157600080fd5b5090925090506115b0565b6101f16004803603606081101561052257600080fd5b50803590602081013590604001351515611758565b6101f16004803603606081101561054d57600080fd5b50803590602081013590604001356001600160a01b031661187f565b6101f16004803603606081101561057f57600080fd5b508035906020810135906040013515156119a6565b61059c611bcd565b6040516001600160a01b03909116815260200160405180910390f35b61032d600480360360408110156105ce57600080fd5b81359190810190604081016020820135600160201b8111156105ef57600080fd5b82018360208201111561060157600080fd5b803590602001918460208302840111600160201b8311171561062257600080fd5b509092509050611beb565b61032d6004803603604081101561064357600080fd5b81359190810190604081016020820135600160201b81111561066457600080fd5b82018360208201111561067657600080fd5b803590602001918460208302840111600160201b8311171561069757600080fd5b509092509050611c9b565b6101f1600480360360408110156106b857600080fd5b5080359060200135611d6b565b61059c600480360360408110156106db57600080fd5b5080359060200135611f80565b6101f1600480360360608110156106fe57600080fd5b81359190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460208302840111600160201b8311171561075257600080fd5b919390929091602081019035600160201b81111561076f57600080fd5b82018360208201111561078157600080fd5b803590602001918460208302840111600160201b831117156107a257600080fd5b509092509050611fd9565b61032d600480360360408110156107c357600080fd5b81359190810190604081016020820135600160201b8111156107e457600080fd5b8201836020820111156107f657600080fd5b803590602001918460208302840111600160201b8311171561081757600080fd5b509092509050612178565b61032d6004803603604081101561083857600080fd5b81359190810190604081016020820135600160201b81111561085957600080fd5b82018360208201111561086b57600080fd5b803590602001918460208302840111600160201b8311171561088c57600080fd5b509092509050612228565b610412600480360360408110156108ad57600080fd5b50803590602001356122ea565b6101f1600480360360608110156108d057600080fd5b81359190810190604081016020820135600160201b8111156108f157600080fd5b82018360208201111561090357600080fd5b803590602001918460208302840111600160201b8311171561092457600080fd5b919390929091602081019035600160201b81111561094157600080fd5b82018360208201111561095357600080fd5b803590602001918460208302840111600160201b8311171561097457600080fd5b509092509050612303565b6104126004803603602081101561099557600080fd5b50356124a2565b6101f1600480360360608110156109b257600080fd5b50803590602081013590604001356124bd565b6109e8600480360360408110156109db57600080fd5b50803590602001356125e4565b604051901515815260200160405180910390f35b61041260048036036040811015610a1257600080fd5b5080359060200135612637565b6101f160048036036060811015610a3557600080fd5b81359190810190604081016020820135600160201b811115610a5657600080fd5b820183602082011115610a6857600080fd5b803590602001918460208302840111600160201b83111715610a8957600080fd5b919390929091602081019035600160201b811115610aa657600080fd5b820183602082011115610ab857600080fd5b803590602001918460208302840111600160201b83111715610ad957600080fd5b509092509050612650565b6101f160048036036040811015610afa57600080fd5b50803590602001356127f1565b8260008080610b14612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680610b7e612d50565b158015610b8a57600080fd5b505a610b94612d7f565b5050505050158015610baa573d6000803e3d6000fd5b505050506040513d6020811015610bc057600080fd5b81019080805193505050505a610bd4612dd4565b6001600160a01b0316816001600160a01b031614610c235760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b610c2e8585856129ad565b5050505050565b8460008080610c42612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680610cac612d50565b158015610cb857600080fd5b505a610cc2612d7f565b5050505050158015610cd8573d6000803e3d6000fd5b505050506040513d6020811015610cee57600080fd5b81019080805193505050505a610d02612dd4565b6001600160a01b0316816001600160a01b031614610d515760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b848314610d925760405162461bcd60e51b81526020600482015260186024820152600080516020612e8e833981519152604482015260640160405180910390fd5b60005b85811015610dd457610dcc88888884818110610dad57fe5b90506020020135878785818110610dc057fe5b90506020020135612a31565b600101610d95565b5050505050505050565b60608082604051908082528060200260200182016040528015610e0b578160200160208202803883390190505b506000868152600160205290915060038160408120610e28612d18565b8152602001908152602001600020905060005b84811015610e8e57816000878784818110610e5257fe5b905060200201358152602001908152602001600020610e6f612d18565b838281518110610e7b57fe5b6020908102919091010152600101610e3b565b509095945050505050565b8160008080610ea6612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680610f10612d50565b158015610f1c57600080fd5b505a610f26612d7f565b5050505050158015610f3c573d6000803e3d6000fd5b505050506040513d6020811015610f5257600080fd5b81019080805193505050505a610f66612dd4565b6001600160a01b0316816001600160a01b031614610fb55760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b6000848152600160205260058160408120610fce612d18565b8152602001908152602001600020600085815260209190915260409020600090610ff6612d18565b906101000a900460ff1690507f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c858583604051928352602083019190915215156040808301919091526060909101905180910390a16000858152600160205260059060408120611064612d18565b815260200190815260200160002060008581526020919091526040902060018161108c612d18565b9060ff0219169061109b612dfd565b50505050505050565b81600080806110b1612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e386028913960400192505050602060405180830381868061111b612d50565b15801561112757600080fd5b505a611131612d7f565b5050505050158015611147573d6000803e3d6000fd5b505050506040513d602081101561115d57600080fd5b81019080805193505050505a611171612dd4565b6001600160a01b0316816001600160a01b0316146111c05760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b60008481526001602052600281604081206111d9612d18565b81526020019081526020016000206000858152602091909152604090206111fe612d18565b90507f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d466285858360405180848152602001838152602001828152602001935050505060405180910390a16000858152600160205260029060408120611260612d18565b815260200190815260200160002060008581526020919091526040902060009061109b612dfd565b8260008080611295612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e38602891396040019250505060206040518083038186806112ff612d50565b15801561130b57600080fd5b505a611315612d7f565b505050505015801561132b573d6000803e3d6000fd5b505050506040513d602081101561134157600080fd5b81019080805193505050505a611355612dd4565b6001600160a01b0316816001600160a01b0316146113a45760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b610c2e858585612a31565b60008281526001602052600281604081206113c8612d18565b81526020019081526020016000206000838152602091909152604090206113ed612d18565b9392505050565b8160008080611401612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e386028913960400192505050602060405180830381868061146b612d50565b15801561147757600080fd5b505a611481612d7f565b5050505050158015611497573d6000803e3d6000fd5b505050506040513d60208110156114ad57600080fd5b81019080805193505050505a6114c1612dd4565b6001600160a01b0316816001600160a01b0316146115105760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b6000848152600160205260068160408120611529612d18565b815260200190815260200160002060008581526020919091526040902061154e612d18565b90507f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd9385858360405180848152602001838152602001828152602001935050505060405180910390a16000858152600160205260069060408120611260612d18565b84600080806115bd612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680611627612d50565b15801561163357600080fd5b505a61163d612d7f565b5050505050158015611653573d6000803e3d6000fd5b505050506040513d602081101561166957600080fd5b81019080805193505050505a61167d612dd4565b6001600160a01b0316816001600160a01b0316146116cc5760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b84831461170d5760405162461bcd60e51b81526020600482015260186024820152600080516020612e8e833981519152604482015260640160405180910390fd5b60005b85811015610dd4576117508888888481811061172857fe5b9050602002013587878581811061173b57fe5b905060200201356001600160a01b0316612ab5565b600101611710565b8260008080611765612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e38602891396040019250505060206040518083038186806117cf612d50565b1580156117db57600080fd5b505a6117e5612d7f565b50505050501580156117fb573d6000803e3d6000fd5b505050506040513d602081101561181157600080fd5b81019080805193505050505a611825612dd4565b6001600160a